更多内容请关注个人博客:blog.csdn.net/mtx_03/article/details/69382209
作为一名Android开发的同学,还是测试开发者,adb命令都是工作中必备的技能,今天主要梳理一下adb的初级使用技能。
adb是什么?,我们来看看Google官方给它的解释:
adb (android debug bridge) 是一个通用命令行工具,其允许你与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
adb是一个强大的命令行工具,我们通过它可以去操作我们的设备,adb的位置一般在android sdk的platform-tools目录下。我们看看adb强大的命令。
1.adb devices
devices命令可以检测当前电脑上连接了那些设备,它的输出方式为
List of devices attached
serial_number state
serial_number :由adb创建的序列号,用来标示一个设备
state:状态号,它有三种状态
offline — 实例未连接到 adb 或不响应。
device — 实例现在已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动且可以运行,因为在此实例连接到 adb 时系统仍在启动。不过,在启动后,这将是模拟器/设备实例的正常运行状态。
no device — 未连接模拟器/设备。
2.adb [-d|-e|-s serial_number] <子命令> 向特定的设备发送命令
如果只有一个设备或者模拟跟电脑相连,adb默认会将命令发送到该设备上,实际工作中我们的工作机上可能不止连接了一台设备,那如何向一台特定的设备发送命令呢
-d 将命令发送到真实的android设备上
-e 将命令发送到android的模拟器
-s 设备或者模拟器的序列号
3. install [options] path 安装应用:例如在一个手机上装一个apk,adb -d -s 39ad65 install test.apk
path:安装应用的绝对路径名称
[options]:可选项,已有以下几个:
-l:安装具有转发锁定功能的软件包。
-r:重新安装现有应用,保留其数据。
-t:允许安装测试 APK。
-i installer_package_name:指定安装程序软件包名称。
-s:在共享的大容量存储(如 sdcard)上安装软件包。
-f:在内部系统内存上安装软件包。
-d:允许版本代码降级。
-g:授予应用清单文件中列出的所有权限。
4 uninstall [options] package 卸载应用
默认卸载应用时删除应用缓存,options 可选参数为-K表示卸载应用后保留数据和缓存目录,卸载应用的时候指定应用包名即可。
5.adb pull/adb push 命令
adb pull remote local 从设备或者模拟器复制文件到本地
adb push local remote 将文件复制到设备或者模拟器
local 和 remote 指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径。例如:adb push test.txt /sdcard/test.txt
6.adb forward 端口转发命令
这个命令也是超级实用的一个命令,这个命令和其他工具配合实用,就可以是实现实时抓取android手机的网络请求数据
adb forward tcp:8888 tcp:9999 表示从当前主机的8888端口到设备的9999端口的转发
7.adb kill-server adb start-server
为啥这个两个命令放到一起说呢,因为一般它们都是配合实用的,这一对命令使用频率非常高,adb kill-server 杀掉adb进程,当我的手机连接到电脑上,发现adb启动不了,我们可以先用kill-server命令,再使用adb start-server命令来启动adb进程。
二.adb shell 命令;
进入adb shell命令也非常简单,直接在指定的设备上执行adb shell即可
pm命令
install [options] path 安装应用程序,pm install path 在root手机root情况下可以实现静默安装,
-l:安装具有转发锁定功能的软件包。
-k:移除软件包后保留数据和缓存目录。
-r:重新安装现有应用,保留其数据。
-t:允许安装测试 APK。
-i installer_package_name:指定安装程序软件包名称。
-s:在共享的大容量存储(如 sdcard)上安装软件包。
-f:在内部系统内存上安装软件包。
-d:允许版本代码降级。
-g:授予应用清单文件中列出的所有权限。
uninstall [options] package 卸载一个应用
-k:移除软件包后保留数据和缓存目录
2.clear package 清除目标应用的所有数据
3. am start 命令 例如启动一个Activity
adb shell am start -n 包名/包名.类名
4. force-stop package
强行停止与 package(应用的包名称)关联的所有应用
5. kill [options] package
终止与 package(应用的包名称)关联的所有进程。此命令仅终止可安全终止且不会影响用户体验的进程。
–user user_id | all | current:指定将终止其进程的用户;如果未指定,则终止所有用户的进
6.ps 命令 获取进程信息
输出格式:
USER PID PPID VSIZE RSS WCHAN PC NAME
USER : 进程的当前用户;
PID : process ID的缩写,也就进程号;
PPID : process parent ID,父进程ID
VSIZE : virtual size,进程虚拟地址空间大小;
RSS : 进程正在使用的物理内存的大小;
WCHAN : 进程如果处于休眠状态的话,在内核中的地址;
PC : program counter,
NAME : process name,进程的名称