Android开发 adb命令简介
来源:互联网 发布:淘宝客关闭返利 编辑:程序博客网 时间:2024/05/18 03:33
Android开发 adb命令简介
adb全称为Android Debug Bridge,安卓调试桥,IDE通过它连接操作手机。在命令行中我们可以使用它进行很多强大而灵活的操作。比如获取手机中安装卸载软件,启动某个Activity,模拟触摸点击等。
adb的采用典型的C/S架构,一手机为服务器,电脑为客户端,通过端口传递信息。(C/S架构确实就是一个广泛而经典的东西)。它的软件构成分三个部分,运行于Android设备的服务端,电脑上的客户端程序(相当如CMD命令行吧),以及电脑端的发送接收命令后台进程(任务管理器中的adb.exe进程),相当于Android服务端的代理吧。然后主要要用到的就是adb下的各种命令。
首先装好adb相关的软件,然后将adb.exe所在目录放到系统环境变量中,再在cmd中输入adb看能否在输出相关命令信息代表设置成功。adb的命令主要分三个部分,adb本身的命令,Android的shell命令,以及linux的命令。
一、adb的命令
1、启动或杀死服务代理进程,即adb.exe,在连接手机或模拟器异常时尝试此命令解决问题。
adb kill/start-server 注意没有空格
3、通过wifi连接手机
adb connect ip 需要在同一个局域网中,并进行一些配置,具体可搜索网上资料
4、查看连接的设备列表,adb可同时控制多台设备
adb devices
5、安装或卸载apk,安装卸载有好多的方式,比如通过shell命令卸载,通过push文件方式安装
adb install 电脑上apk路径
adb uninstall 报名
6、互传文件
adb push 电脑路径 设备路径 将文件传递到设备
adb pull 手机路径 电脑路径 从手机中获取文件
7、重启设备
adb reboot [bootloader|recovery] []内为可选参数,进入引导界面,或者刷机,需要一定权限
8、进入shell命令下,进入之后可直接输入shell命令,如果不进入就的每次在前面加上adb shell
adb shell
9、log相关的命令
logcat 输出所有的log,会一直输出停不下来的,它不仅输出当前的,还输出以前的
adb logcat > c:\test.log //将日志保存到文件test.log
9.1、adb logcat *:X过滤日志输出
每一条日志消息都有一个标记和优先级与其关联。
标记是一个简短的字符串,用于标识原始消息的来源 (例如"View" 来源于显示系统)。
优先级是下面的字符,顺序是从低到高:
V — 明细 (最低优先级)
D — 调试
I — 信息
W — 警告
E — 错误
F — 严重错误
S — 无记载 (最高优先级,没有什么会被记载
9.2、日志消息在标记和优先级之外还有很多元数据字段,这些字段可以通过修改输出格式来控制输出结果, -v 选项加上下面列出的内容可以控制输出字段:
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
9.3、Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用-b 选项,以下是可以指定的缓冲区:
radio — 查看包含在无线/电话相关的缓冲区消息
events — 查看事件相关的消息
main — 查看主缓冲区 (默认缓冲区)
10、端口转发,比较高级的功能了。将电脑发到a端口的数据转发到设备b端口中
adb forword tcp:6000 tcp:7000
二、shell命令
android的shell命令文件放在/system/bin下面,分为不同的类
1、pm相关,即package manager
pm package [-s|-3] [-f] [-i] [过滤字符]
[]类为一组,一组的不能同时出现吗,意义如下 -s系统应用,-3 三方应用,-f显示应用路径,-i显示应用安装来源 过滤字符任意,过滤包名称
pm instrumentation 列出所有含有单元测试的应用
pm dump 包名 显示包名应用的相关信息
pm install 安装存在与手机sd卡中的应用
2、am相关
am start -n 应用包名/activity绝对路径名或.相对应用包路的径名 启动activity -n表示直接启动,还有-s表示停止当前已经启动的在启动。
am start -a action字符串 [-d data 字符串] 用匹配的方式启动,其中action字符串可以使android.action.VIEW等等。
am startservice 启动服务
am broadcast发送广播
am force-stop 包名 强制停止包相关的应用
am monitor 启动anr和crash的监听器
3.input相关
用它模拟各种输入件,如触摸键盘灯
input text xxxx 模拟输入文本 输入法打开时就会获取到该段文本
input keyevent KEYCODE_XXX 模拟某种键盘时间 xxx可以是HOME、BACK、MENU、A、B、、、,它们都有对应的数字,直接输入对应的数字也行
input tap x y 模拟触摸事件 位置x y
input swip x y x1 y1 x2 y2 模拟滑动
利用这些就可以写自动测试的脚本,十分强大。
4、dumpsys 待探究
5、操作sqlite数据库 待探究
三、linux相关命令
这个有很多,具体可查询网上的了。
这里复制了一下别的博客的 :http://www.cnblogs.com/laov/p/3541414.html
常用指令
ls、mkdir、cp、mv、rm、ps、ping、grep等
ls 显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
cd 切换目录
touch 创建空文件
echo 创建带有内容的文件。
cat 查看文件内容
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
pwd 显示当前目录
ln 创建链接文件
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
ctrl+alt+F1 命令行全屏模式
系统管理命令
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 命令不会用了,找男人 如:man ls
clear 清屏
alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
打包压缩相关命令
gzip:
bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
关机/重启机器
shutdown
-r 关机重启
-h 关机不重启
now 立刻关机
halt 关机
reboot 重启
Linux管道
将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:grep -r "close" /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。
Linux软件包管理
dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。
sudo dpkg -i tree_1.5.3-1_i386.deb 安装软件
sudo dpkg -r tree 卸载软件
注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
依然以tree为例
sudo apt-get install tree 安装tree
sudo apt-get remove tree 卸载tree
sudo apt-get update 更新软件
sudo apt-get upgrade
将.rpm文件转为.deb文件
.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
sudo alien abc.rpm
vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
用户及用户组管理
/etc/passwd 存储用户账号
/etc/group 存储组账号
/etc/shadow 存储用户账号的密码
/etc/gshadow 存储用户组账号的密码
useradd 用户名
userdel 用户名
adduser 用户名
groupadd 组名
groupdel 组名
passwd root 给root设置密码
su root
su - root
/etc/profile 系统环境变量
bash_profile 用户环境变量
.bashrc 用户环境变量
su user 切换用户,加载配置文件.bashrc
su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile
更改文件的用户及用户组
sudo chown [-R] owner[:group] {File|Directory}
例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
sudo chown root:root jdk-7u21-linux-i586.tar.gz
文件权限管理
三种基本权限
R 读 数值表示为4
W 写 数值表示为2
X 可执行 数值表示为1
如图所示,jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r--
-rw-rw-r--一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。 所以用数值表示为4+2=6
第八九十个字符“r--”表示其他用户权限。 所以用数值表示为2
所以操作此文件的权限用数值表示为662
更改权限
sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名
例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765
sudo chmod u+x g+w o+r filename
上面的例子可以用数值表示
sudo chmod 765 filename
- Android开发 adb命令简介
- Android开发之adb命令
- Android开发之ADB命令
- Android开发adb命令含义
- Android开发之adb命令
- Android开发工具-adb命令
- android tv开发adb 命令
- android 开发 常用 adb 命令
- Android adb原理与命令简介
- adb命令使用简介
- adb 命令使用简介
- Android开发中常用ADB命令
- Android开发详解之ADB命令
- Android开发执行adb 命令行命令
- Android开发工具—adb shell命令
- Android开发中常用ADB命令总结
- Android开发之adb相关命令
- Android开发中常用adb命令
- 跳跃表
- Java程序包含继承时的子父类执行顺序
- ContentProvider和Cursor以及CursorAdapter三者之间内部链接实现原理 解析
- 小莫的成神之旅(二)纯css3实现翻转效果
- Android 6.0 SystemUI之通知栏下拉时周边全透明
- Android开发 adb命令简介
- hello csdn
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- RabbitMQ linux环境安装
- css控制页面内容不能选中
- 解决Generate Signed APK时出现XXX is not translated in XXX类似问题
- 第九周(Dynamic ProgrammingIII)
- c++实验4【输出星号图】
- 【Unet】unet spwan动态生成 物体