A. 常用的adb命令
android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互,被称为Android 调试桥。
它是一种客户端-服务器程序,包括以下三个组件:
adb shell 命令
adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下
monkey命令
当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试 (位于 开发者选项 下)。
在搭载 Android 4.2 及更高版本的设备上,“开发者选项”屏幕默认情况下处于隐藏状态。如需将其显示出来,请依次转到 设置 > 关于手机 ,然后点按 版本号 七次。返回上一屏幕,在底部可以找到 开发者选项 。
在某些设备上,“开发者选项”屏幕所在的位置或名称可能有所不同。
执行 adb devices 验证设备是否已连接。如果已连接,您将看到设备名称以“设备”形式列出。
一般情况下,adb 通过 USB 与设备进行通信,但您也可以在通过 USB 完成一些初始设置后,通过 WLAN 使用 adb,如下所述。
如果 adb 连接断开:
如果有多个设备在运行,您在发出 adb 命令时必须指定目标设备。为此,请使用 devices 命令获取目标设备的序列号。获得序列号后,请结合使用 -s 选项与 adb 命令来指定序列号。如果您要发出很多 adb 命令,可以将 $ANDROID_SERIAL 环境变量设为包含序列号。如果您同时使用 -s 和 $ANDROID_SERIAL , -s 会替换 $ANDROID_SERIAL 。
$ adb -s emulator-5555 install helloWorld.apk
注意 :如果您在多个设备可用时发出命令但未指定目标设备,adb 会生成错误。
如果有多个可用设备,但只有一个是模拟器,请使用 -e 选项将命令发送至该模拟器。同样,如果有多个设备,但只连接了一个硬件设备,请使用 -d 选项将命令发送至该硬件设备。
使用 forward 命令设置任意端口转发,将特定主机端口上的请求转发到设备上的其他端口。以下示例设置了主机端口 6100 到设备端口 7100 的转发:
>adb forward tcp:6100 tcp:7100
您可以使用 pull 和 push 命令将文件复制到设备或从设备复制文件。与 install 命令(仅将 APK 文件复制到特定位置)不同,使用 pull 和 push 命令可将任意目录和文件复制到设备中的任何位置。
如需从设备中复制某个文件或目录(及其子目录),请使用以下命令:
adb pull remote local
如需将某个文件或目录(及其子目录)复制到设备,请使用以下命令:
adb push loca remote
adb kill-server
您可以使用 shell 命令通过 adb 发出设备命令,也可以启动交互式 shell。如需发出单个命令,请使用 shell 命令,如下所示:
adb [-d |-e | -s shell shell_command
在 adb shell 中,您可以使用 Activity 管理器 ( am ) 工具发出命令以执行各种系统操作,如启动 Activity、强行停止进程、广播 intent、修改设备屏幕属性,等等。在 shell 中,相应的语法为:
您也可以直接从 adb 发出 Activity 管理器命令,无需进入远程 shell。例如:
adb shell am start -a android.intent.action.VIEW
B. 常用的adb命令
在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。
一.概要
1.什么是adb?
adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。
2.adb工作原理
不是很理解?那就来看看它的工作原理吧。
上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。
(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb
Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb
Client发来的命令。
(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到
了adb
daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。
3.adb的作用
借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
二.常用命令
这个部分主要介绍adb的使用方法和一些常用的命令。
设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。
1. adb devices
查看当前连接的设备(连接计算机的Android设备或者模拟器)。
2.adb install
adb install <apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。
几个参数:
-r 强制安装
-d(真机,多个设备中只有一个真机时适用)
-e(模拟器,多个设备中只有一个模拟器时适用)
-s(指定设备,后接序列号)
adb –s 44a188f9 install –r test.apk(其中44a188f9即序列号,通过adb devices可获取)
3.adb uninstall
adb uninstall <apk包名>
adb uninstall –k <apk包名>
-k参数为卸载软件时保留配置和缓存文件
4.adb reboot
重启android设备
5.adb shell
通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个linux shell中,我们就可以执行各种Linux命令了。
如果只想执行一条shell命令,就可以采用:adb shell [shell_command]
在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。
6.adb shell su
前提手机已经root。获取adb shell的root权限。
使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。
7.adb shell ps/top
查看当前终端中的进程信息,如pid等。
8.adb shell am/pm
am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。
如:adb shell am start <apk包名>/<activityName>:启动一个activity。
pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。
如:adb shell pm list packages
列出当前设备所有已安装的程序的包名。
说明:
管道符“|”:可以把标准的输入流与标准的输出流进行合并,或者把某个命令的标准输出流作为另一个命令的标准输入流。
exit退出shell。
由于grep为linux命令,运行单条adb shell 时并没有进入linux
shell环境,并不能用grep等其他linux命令,只能用window cmd的命令。在这里可以用findstr来代替grep,使用方法为
findstr/grep [keyword]
更详细的内容可查看 参考文献3 和 参考文献4 。
对于常用的linux命令和常用的windows 控制台命令,以后再作总结。
9.adb pull 和 adb push
adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。
adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。
这里还涉及到一个权限的问题,在后续的博文中再作介绍。
10.adb shell mpsys
Android提供的mpsys工具用于查看感兴趣的系统服务信息与状态。
参考下表:
11.adb shell monkey
跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android
app的稳定性。
如下为测试腾讯新闻apk的一个简单实例:
说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。
-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。
--throttle <毫秒数> 指定用户操作(事件)间的时延。
--ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。
--ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。
第2个-s,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。
最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。
>输出测试结果到D:\monkeylog.txt
更详细的参数可查看 参考文献5 。
部分测试结果如下:
对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:
1)ANR(Application Not
Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的trace.txt文件导出,用来定位分析问题。使用>adb
pull /data/anr/trace.txt d:\ 将trace.txt文件导出到d盘。
2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。
3)崩溃问题:通过搜索Exception关键词来定位。
4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。
12.kill
kill用来中止一个进程。
比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill <monkey进程PID>
说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。
参考文献:
1.Android调试桥: http://www.iteye.com/topic/260042
2.Android性能分析工具mpsys的使用: http://www.open-open.com/lib/view/open1405061994872.html
3.adb shell 中的am pm命令: http://www.android100.org/html/201312/09/4957.html
4.adb shell 启动应用程序的方法: http://blog.chinaunix.net/uid-26997997-id-3350449.html
5.Monkey压力测试详解: http://blog.csdn.net/huangbiao86/article/details/8490743
C. 如何利用adb命令修改系统文件内容
方法和操作步骤如下:
1、第一步,打开电脑,在电脑中找到adb,然后单击以用鼠标打开,如下图所示,然后进入下一步。
D. ADB 命令
查询设备
adb devices
查询手机中的用户
adb shell pm list users
查看设备上的应用包名:
adb shell pm list packages
adb shell pm list packages 打印设备/模拟器上的所有软件包
adb shell pm list packages -f 输出包和包相关联的文件
adb shell pm list packages -d 只输出禁用的包。由于本机禁用没有,输出为空。
adb shell pm list packages -e 只输出启用的包。
adb shell pm list packages -s 只输出系统的包。
adb shell pm list packages -3 只输出第三方的包。
adb shell pm list packages -i 只输出包和安装信息(安装来源)。
adb shell pm list packages -u 只输出包和未安装包信息(安装来源)
adb shell pm list packages -u -3 -e 组合使用
查询带有test的包名
adb shell pm list packages | findstr test
查询安装包路径
adb shell pm path [PackageName]
查询包对应的启动activity
adb shell pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER [PackageName]
启动应用
adb shell am start -n "[PackageName]/[ActivityName]" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如:adb shell am start -n "com.example.test/com.example.test.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
卸载应用
adb shell pm uninstall -k --user 0 [PackageName] -k 表示保存数据 --user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0
如 adb shell pm uninstall com.example.test 对所有用户卸载com.example.test且不保存数据
停用应用
adb shell pm disable [PackageName]
启用应用
adb shell pm enable [PackageName]
清除应用数据
adb shell pm clear [PackageName]
设置应用安装位置
adb shell pm set-install-location
--[0/auto]:默认为自动
--[1/internal]:默认为安装在手机内部
--[2/external]:默认安装在外部存储
获取应用安装位置
adb shell pm get-install-location
查询操作过程中输出的日志
adb logcat > d:\log.txt
E. 什么是adb命令行
adb命令行是androidsdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机),它的主要功能有:
1、运行设备的shell(命令行)
2、管理模拟器或设备的端口映射
3、计算机和设备之间上传/下载文件
4、将本地apk软件安装至模拟器或android设备
ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备。
(5)更改系统语言的adb命令扩展阅读:
常用命令
1. 查看设备 *adbdevices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
2. 安装软件
*adbinstall <apk文件路径>
这个命令将指定的apk文件安装到设备上
3. 卸载软件
*adbuninstall <软件名>
*adbuninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
4. 登录设备shell
*adbshell
*adbshell <command命令>
这个命令将登录设备的shell。
后面加<command命令>将是直接运行设备命令,相当于执行远程命令。
5. 从电脑上发送文件到设备
*adbpush <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)。
F. ADB是什么 ADB常用命令介绍
adb是windows系统通过usb或者无线连接Android手机的一个接口
adb 常用命令大全
1. 显示系统中全部Android平台:
android list targets
2. 显示系统中全部AVD(模拟器):
android list avd
3. 创建AVD(模拟器):
android create avd --name 名称 --target 平台编号
4. 启动模拟器:
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
5. 删除AVD(模拟器):
android delete avd --name 名称
6. 创建SDCard:
mksdcard 1024M ~/名称.img
7. AVD(模拟器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 启动DDMS:
ddms
9. 显示当前运行的全部模拟器:
adb devices
10. 对某一模拟器执行命令:
abd -s 模拟器编号 命令
11. 安装应用程序:
adb install -r 应用程序.apk
12. 获取模拟器中的文件:
adb pull <remote> <local>
13. 向模拟器中写文件:
adb push <local> <remote>
14. 进入模拟器的shell模式:
adb shell
15. 启动SDK,文档,实例下载管理器:
android
16. 缷载apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令帮助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 标签名
19. adb shell后面跟的命令主要来自:
源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。
20. 删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)。
adb shell
cd system/app
rm *.apk
21. 获取管理员权限:
adb root
22. 启动Activity:
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
23、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
24、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push
<source>
<destination></destination></source>
如:adb
push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb
pull <source>
<destination></destination></source>
如:adb
pull /addroid/lib/libwebcore.so .
25、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
26、查看bug报告:
adb bugreport
27、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
28、获取设备的ID和序列号:
adb get-proct
adb get-serialno
29、访问数据库SQLite3
adb shell
sqlite3
#cd system/sd/data //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
G. ADB命令如何换语言
你可以试试下面的
setprop persist.sys.language FR; setprop persist.sys.country CA; setprop ctl.restart
H. 常用的安卓手机adb命令总结
很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括
心中一句NND,怎么可以写的这么详细,瞬间没了想写这篇文章的欲望,如果你点了链接发现确实很全,那么恭喜你可以关掉这篇了,哈哈哈。
我就不这么想的,虽然很全,但不是我常用的,因人而异,所以我就权当记笔记+替这哥们宣传了。
– adb devices , 获取设备列表及设备状态
设备的状态有 3 种
device , 设备连接正常
offline , 设备离线,连接出现异常
unauthorized 设备为进行授权,需要在设备上是否允许调试对话框进行授权
offline情况解决办法,先执行adb kill-server 命令,再执行adb start-server 命令,再尝试adb devices 查看列表,如果还是offline,来来来,使用必杀技,重启大法。
当电脑连接多个android设备并可用时,所有的adb命令都需要指定设备后执行(当然你也可以移除多余的设备)
adb -s <设备名称> install/uninstall/shell/pull/push等命令
– adb install app在pc硬盘路径,选中app直接拖入即可
常见的错误情况
INSTALL_FAILED_TEST_ONLY, 安装的app的debug版本的,未签名,adb install -t 路径即可安装
INSTALL_FAILED_DUPLICATE_PACKAGE, 已经安装相同包名的app, 先卸载再安装
– adb uninstall app的包名,卸载app
adb pull 将 Android 设备上的文件或者文件夹复制到本地
adb pull sdcard/Android/111.txt E:\
小技巧,可以将本地路径指定为桌面,方便查看, 在桌面按住shift键,鼠标右键选择在此处打开命令行窗口,直接输入adb pull sdcard/Android/111.txt 执行,就可将111.txt复制到桌面。
前提是设备已经获取root权限
adb root
adb remount
adb push 将pc上文件复制到android设备中,修改room原生应用时比较频繁使用,如settings.apk, launcher3.apk
– adb shell pm 命令
adb shell pm list package 列出android设备上的所有app
adb shell pm list package -s 列出android设备上的系统级别app
adb shell pm list package -3 列出android设备上的第三方app(用户安装的)
adb shell pm list package -f 列出app包名及对应的apk名及存放位置
adb shell pm list package -i 列出app包名及其安装来源(应用市场名称)
adb shell pm mp app包名 列出app的相关信息,类似获取Manifest文件内容
-查看前台 Activity
adb shell mpsys activity activities “| grep mFocusedActivity”
-adb shell am 命令
最常用的就是启动指定的activity和发送指定的广播
启动指定的activity
操作指令 adb shell am start -n 包名/类名
注:如果启动activity时,出现如下错误
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 > > cmp=com.mediatek.engineermode/.io.Gpio } from null (pid=3083, uid=2000) not exported from uid 1001
解决办法,1、如果是你自己可控的app,那么找到你要调用的activity在manifest.xml中,增加
1
配置即可, android:name="" 可以为空字符串。
2、如果是不可控的app,例如我调用的系统原生app,那么你就洗洗睡吧,别折腾了,除非你修改源码和上边一样操作,重新push替换原来的app。
启动默认浏览器打开一个网页
adb shell am start -a android.intent.action.VIEW -d * ********
先停止目标应用,再启动
adb shell am start -s com.android.camera/.Camera
启动相机
adb shell am start -n com.android.camera/.Camera
启动设置
adb shell am start -n com.android.settings/com.android.settings.Settings
启动Wifi设置
adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings
启动蓝牙设置
adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings
其它的类似只要你能在manifest中找到配置的,都可以通过这种方法来调用
发送指定的广播
操作指令 adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
–ei integer 值
–es String 值
–ez boolean 值
–ef float 值
–el long 值
例如之前写的
Android6.0 源码修改之Setting列表配置项动态添加和静态添加, 当中就通过发送广播来接收增加配置列表项
adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location “0-2” --es title “红” --es intent “com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING”
-adb shell input keycode 指令
HOME 键 adb shell input keycode 3
返回键 adb shell input keycode 4
打开浏览器 adb shell input keycode 64
-adb shell wm 指令
屏幕分辨率 adb shell wm size
屏幕密度 adb shell wm density
adb shell wm density 320/480/640 可修改屏幕密度查看效果,对应Launcher图标会缩放
adb shell ifconfig 命令
IP 地址 adb shell ifconfig “| grep Mask”
WIFI 地址 adb shell ifconfig wlan0
状态栏和导航栏的显示隐藏
命令:
adb shell settings put global policy_control
可由如下几种键及其对应的值组成,格式为 key1=value1:key2=value2。
key 含义
immersive.full 同时隐藏
immersive.status 隐藏状态栏
immersive.navigation 隐藏导航栏
immersive.preconfirms 同时显示
这些键对应的值可则如下值用逗号组合:
value 含义
apps 所有应用
所有界面
packagename 指定应用
packagename 排除指定应用
例如:
adb shell settings put global policy_control immersive.full=*
表示设置在所有界面下都同时隐藏状态栏和导航栏。(重启也不会失效,恢复需调用下面的命令)
adb shell settings put global policy_control immersive.preconfirms=*
表示恢复显示
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
表示设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏
adb shell am force-stop app 关闭APP
adb shell pm clear APP app进程被杀死,且会清楚所有数据
1:查找手机安装应用的包名:adb shell pm list packages -f
2:查看系统盘符:adb shell df
3:查看Log 1:adb shell 2: logcat | grep "abc"
4:删除应用:1:adbremount 2:adb shell 3:cdsystem/app 4:rm *.apk
5:安装APK: adbinstall -r *.apk 或者 adb push*.apk /system/app
6:查看APP启动的时间指令
adb shell am start -W -ncom.android.dialer/.DialtactsActivity (W是大写)执行命令后APP会自 动启动,其中ThisTime即是本次 App启动所花费的时间。
7:查看包名中当前所在进程信息:adb shell ps | grep +包名
8:查看Activity运行的任务栈:adb shell mpsys activity
9:查看键值:adb logcat | grep intercep -i
10:查看模块所占有的CPU资源:adb shell top -d 2 -m 10
11:查看可用系统的权
$ adb shell
# pm list permissions
12:模拟按键的输入:adb shell input keyevent + 键值
eg: adb shell input keyevent 82 表示menu
adb shell input keyevent 3 表示home
adb shell input keyevent 19 表示up
adb shell input keyevent 20 表示down
adb shell input keyevent 21 表示left
adb shell input keyevent 22 表示right
adb shell input keyevent 66 表示enter
adb shell input keyevent 4 表示back
13:模拟滑动输入:adb shell input touchscreen <x1> <y1> <x2> <y2>
eg: adb shell input touchscreen swipe 18 665 18 350
14:启动一个Activity : adb shell am start -n 包名+类名
15:录制屏幕:adb shell screenrecord /sdcard/demo.mp4
16:重新启动:adb reboot
17:Monkey的基本用法下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:
$ adb shell monkey -p your.package.name -v 500
如果跑桌面或者systemUi的monkey的话:
adb shell monkey -v -v -p 桌面包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000
18:查找第三方应用的详细信息:
adb shell mpsys package +第三方包名(com.txznet.webchat)