
很早就想整理一下自己平时常用的一些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/111txt E:\
小技巧,可以将本地路径指定为桌面,方便查看, 在桌面按住shift键,鼠标右键选择在此处打开命令行窗口,直接输入adb pull sdcard/Android/111txt 执行,就可将111txt复制到桌面。
前提是设备已经获取root权限
adb root
adb remount
adb push 将pc上文件复制到android设备中,修改room原生应用时比较频繁使用,如settingsapk, launcher3apk
– 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 dump app包名 列出app的相关信息,类似获取Manifest文件内容
-查看前台 Activity
adb shell dumpsys activity activities “| grep mFocusedActivity”
-adb shell am 命令
最常用的就是启动指定的activity和发送指定的广播
启动指定的activity
*** 作指令 adb shell am start -n 包名/类名
注:如果启动activity时,出现如下错误
javalangSecurityException: Permission Denial: starting Intent { flg=0x10000000 > > cmp=commediatekengineermode/ioGpio } from null (pid=3083, uid=2000) not exported from uid 1001
解决办法,1、如果是你自己可控的app,那么找到你要调用的activity在manifestxml中,增加
1
配置即可, android:name="" 可以为空字符串。
2、如果是不可控的app,例如我调用的系统原生app,那么你就洗洗睡吧,别折腾了,除非你修改源码和上边一样 *** 作,重新push替换原来的app。
启动默认浏览器打开一个网页
adb shell am start -a androidintentactionVIEW -d
先停止目标应用,再启动
adb shell am start -s comandroidcamera/Camera
启动相机
adb shell am start -n comandroidcamera/Camera
启动设置
adb shell am start -n comandroidsettings/comandroidsettingsSettings
启动Wifi设置
adb shell am start -n comandroidsettings/comandroidsettingswifiWifiSettings
启动蓝牙设置
adb shell am start -n comandroidsettings/comandroidsettingsbluetoothBluetoothSettings
其它的类似只要你能在manifest中找到配置的,都可以通过这种方法来调用
发送指定的广播
*** 作指令 adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数值 --ei/es/ez 参数名 参数值
–ei integer 值
–es String 值
–ez boolean 值
–ef float 值
–el long 值
例如之前写的
Android60 源码修改之Setting列表配置项动态添加和静态添加, 当中就通过发送广播来接收增加配置列表项
adb shell am broadcast -a cndynamicaddsettingcategoryitem --es location “0-2” --es title “红” --es intent “comandroidsettingsSCHEDULE_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 含义
immersivefull 同时隐藏
immersivestatus 隐藏状态栏
immersivenavigation 隐藏导航栏
immersivepreconfirms 同时显示
这些键对应的值可则如下值用逗号组合:
value 含义
apps 所有应用
所有界面
packagename 指定应用
packagename 排除指定应用
例如:
adb shell settings put global policy_control immersivefull=
表示设置在所有界面下都同时隐藏状态栏和导航栏。(重启也不会失效,恢复需调用下面的命令)
adb shell settings put global policy_control immersivepreconfirms=
表示恢复显示
adb shell settings put global policy_control immersivestatus=compackage1,compackage2:immersivenavigation=apps,-compackage3
表示设置在包名为 compackage1 和 compackage2 的应用里隐藏状态栏,在除了包名为 compackage3 的所有应用里隐藏导航栏
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 pushapk /system/app
6:查看APP启动的时间指令
adb shell am start -W -ncomandroiddialer/DialtactsActivity (W是大写)执行命令后APP会自 动启动,其中ThisTime即是本次 App启动所花费的时间。
7:查看包名中当前所在进程信息:adb shell ps | grep +包名
8:查看Activity运行的任务栈:adb shell dumpsys 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/demomp4
16:重新启动:adb reboot
17:Monkey的基本用法下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:
$ adb shell monkey -p yourpackagename -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 dumpsys package +第三方包名(comtxznetwebchat)
1、安装并配置adb服务
连接手机后
sudo apt-get install android-tools-adb
adb start-server
lsusb
获取类似:
获取2a70和9011 vid:pid
创建设备文件:
下面命令中的名称“70-android”是自定义的,我的这个代表安卓70的意思。
echo0x2a70> ~/android/adb_usbini
touch/etc/udev/rulesd/70-androidrules
nano /etc/udev/rulesd/90-androidrules
文件内容修改:
SUBSYSTEM"usb", ATTRS{idVendor}"2a70", ATTRS{idProduct}=="9011", MODE="0666"
保存
chmod 666 /etc/udev/rulesd/90-androidrules
service udev restart
adb kill-server
adb start-server
adb devices 检查设备是否发现
如果出现adb ¥ADB_VENDOR_KEYS is not set
device unauthorized的未签权情况,需要:
adb keygen ~/android/adbkey
2、安装scrcpy
sudo snap install scrcpy
运行scrcpy即可。
结束投屏
关闭安卓设备窗口即可
回到HOME/返回/进入后台
分别是:鼠标中键、鼠标右键、Ctrl + s
全屏/回到合适尺寸
Ctrl + f、Ctrl + x
展开通知栏/折叠通知栏
Ctrl + n、Ctrl + Shift + n
安卓设备与电脑相互复制粘贴
在安卓设备复制后,粘贴到电脑上,粘贴的快捷键是:
在安卓设备上正常复制,随后再按Ctrl + c,在电脑上粘贴即可。
在电脑复制后,粘贴到安卓设备上,粘贴的快捷键是:
在电脑上正常复制后,在安卓设备上粘贴 前 ,按Ctrl + Shift + v,然后再在安卓设备上正常粘贴。
安装apk文件
直接拖动一个apk文件到安卓设备窗口即可完成安装,终端将打印出相应信息
其他
至于文件互传功能,我觉得直接在电脑上通过文件资源管理器更方便;
至于录屏功能,我觉得手机录屏工具更方便;
1adb shell dumpsys power|grep -i wake
查看占用wakelock的应用
2adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
查看task中的activity
3 adb shell dumpsys activity | grep -i run
查看task中的app
4adb shell dumpsys window -d enable a
打开系统所有log
5adb shell dumpsys window -d disable a
关闭系统所有log
6adb shell dumpsys activity services | grep [包名]
查看某个应用运行的服务
7adb shell dumpsys package
打印所有安装的app信息
8adb shell dumpsys window | grep mCurrentFocus
查看前台app
9adb shell dumpsys activity o 或者 dumpsys meminfo 或者 dumpsys activity p
这三个指令都可以查看adj
10adb shell dumpsys meminfo 或者 adb shell cat /proc/meminfo
查看应用占用内存大小
11adb shell dumpsys meminfo -a [package name]
[package name]对应查看的应用包名,可以查看当前应用的内存使用情况
12adb shell dumpsys battery set status 1
设置电池非充电状态
13adb shell dumpsys battery set status 2
设置电池为充电状态
14adb shell dumpsys battery set ac/usb/wireless 1
设置为AC/USB/Wireless充电
15adb shell dumpsys battery unplug
模拟拔出充电器
16adb shell dumpsys battery reset
设置电池复位
17adb shell service list
列出所有可以dumpsys的服务
18adb shell stop 和 adb shell start
这两个命令配合使用可以让系统重启,应用:重新打开系统log需要重启才生效,可以用这两个命令
1adb shell pm enable [包名]
解冻应用 需要root
2adb shell pm disable [包名]
冻结应用 需要root
3adb shell pm list packages -d
查看冻结的应用
4adb shell pm clear [包名]
清理应用数据
5adb shell pm list package
显示安装的应用列表
1adb shell am force-stop [包名]
停止应用
2adb shell am start [-n/-a] [(activity/service)/(action)]
通过 -n 加对应的Activity 或者 service 启动,或者通过 -a 加 action 启动
1adb shell ps -A
查询运行中的APP
1adb shell input text "content"
通过text 关键字可以输入文本内容
2adb shell input keyevent [编号]
通过keyevent关键字,再加上编号,可以模拟按键事件
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"#星号
18 --> "KEYCODE_POUND"#井号
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA" #逗号
56 --> "KEYCODE_PERIOD"#句号
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"#左[
72 --> "KEYCODE_RIGHT_BRACKET"#右[
73 --> "KEYCODE_BACKSLASH"#反斜杠\
74 --> "KEYCODE_SEMICOLON"#分号
75 --> "KEYCODE_APOSTROPHE"#'
76 --> "KEYCODE_SLASH"#正斜杠
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
3adb shell input tap [x y]
模拟单次点击事件
4adb shell input swipe [sx sy ex ey]
模拟滑动事件,从sx-sy 滑动到 ex-ey
-E [关键字1|关键字2|]
指定字符串做为查找文件内容的样式,一个可扩展的正则表达式;
-r [关键字]
指定要查找的目录或文件(默认当前目录);
-i [关键字]
忽略字符大小写;
-v [关键字]
显示不包含匹配文本的所有行(剔除);
-l [关键字]
显示符合指定的内容样式的文件名称;
-n [关键字]
显示行数编号
1adb logcat -G [20M]
设置日志缓存大小
2adb logcat -f /sdcard/logtxt
输出log到手机指定路径
3adb logcat -s Systemout
输出指定的Systemout 日志
4adb logcat > log
输出log到电脑当前文件夹中
5adb logcat | grep -i Wifi
忽略大小写输出有WiFi关键字的日志
1adb shell setprop logtag[Log的TAG] [Log 的等级:V,D,I,W,E,A]
开启isLoggable
2adb shell getprop
显示系统所有配置信息
3adb shell screencap -p [/手机路径/保存名字]
截图
4adb disable-verity
使用adb remount指令出错的时候,可以先用这条指令执行一次,再reboot
5adb shell iptables -L -nv
查看防火墙配置
6adb shell settings list global
获取settings的global所有字段信息,global可以替换成system或者secure
7adb shell settings get global [字段]
获取settings的global的字段信息,global可以替换成system或者secure;具体有哪些可以获取,可以通过Settings类获取
8adb shell settings put global [字段] [值]
修改settings的global的字段信息,global可以替换成system或者secure;字段不存在的时候会自动生成
eg:adb shell settings put global test 1
在settings的global里生成一个值为1的test字段。
9adb shell settings delete global [字段]
删除settings的global的字段信息,global可以替换成system或者secure
10adb devices
显示所有连接的设备
11adb -s [device id]
指定 *** 作哪台设备
12adb -d
*** 作真机
13adb -e
*** 作模拟器
在Mac 下配置Android SDK的adb命令添加到环境变量:
1 检查 bash_profile
使用 vim bash_profile 打开该文件,如果该文件存在则直接进入如下第二个步骤,如果该文件不存在,可通过下面命令创建bash_profile:
touch bash_profile
2 编辑 bash_profile
打开bash_profile文件,进行编辑,命令如下:
vim bash_profile
添加如下内容, 以下是我的sdk的路径,具体路径根据自己sdk路径稍作改动即可;
3 保存 bash_profile
按 esc 键后退,然后输入 :wq 后保存退出;
4 更新配置
source bash_profile
(1) 查看当前显示的activity的名字
(2) 查看前台Activity
(3) 查看前台Activity的栈信息
结果如下:
在没有root的手机里想adb pull出里面的东西可以先用这个命令搜出位置,然后在pull出来
将apk后缀改成zip, 然后解压,
Ctrl + C 停止录屏
配置fastboot命令环境变量
fastboot刷机步骤:
持续更新
这个很简单,adb的help文档写的很清楚,重点看swipe命令。
swipe:5个参数,给出起始点、结束点坐标和时间
# 例如 100,502这个坐标500ms,其实就是位置不变的滑动$ adb shell input swipe 100 502 100 502 500$ adb shell input
Usage: input [<source>] <command> [<arg>]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
tmode <tmode>
更多的adb知识可以看我的链接
在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。
一概要
1什么是adb?
adb全称为Android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。
2adb工作原理
不是很理解?那就来看看它的工作原理吧。
上图是一个简单的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连接。
3adb的作用
借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机 *** 作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的 *** 作。
二常用命令
这个部分主要介绍adb的使用方法和一些常用的命令。
设置adb环境:将android sdk工作目录添加到系统环境变量中,则可使用adb命令了。
1 adb devices
查看当前连接的设备(连接计算机的Android设备或者模拟器)。
2adb install
adb install <apk文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。
几个参数:
-r 强制安装
-d(真机,多个设备中只有一个真机时适用)
-e(模拟器,多个设备中只有一个模拟器时适用)
-s(指定设备,后接序列号)
adb –s 44a188f9 install –r testapk(其中44a188f9即序列号,通过adb devices可获取)
3adb uninstall
adb uninstall <apk包名>
adb uninstall –k <apk包名>
-k参数为卸载软件时保留配置和缓存文件
4adb reboot
重启android设备
5adb shell
通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。
如果只想执行一条shell命令,就可以采用:adb shell [shell_command]
在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。
6adb shell su
前提手机已经root。获取adb shell的root权限。
使用su提权,用户命令提示符有$变成#,如果手机没有root,会提示su:permission denied。
7adb shell ps/top
查看当前终端中的进程信息,如pid等。
8adb 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 控制台命令,以后再作总结。
9adb pull 和 adb push
adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。
adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。
这里还涉及到一个权限的问题,在后续的博文中再作介绍。
10adb shell dumpsys
Android提供的dumpsys工具用于查看感兴趣的系统服务信息与状态。
参考下表:
11adb 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:\monkeylogtxt
更详细的参数可查看 参考文献5 。
部分测试结果如下:
对于测试结果的分析,通过搜索关键词来定位错误,主要包括以下四个方面:
1)ANR(Application Not
Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。除了导出日志外,还可以将/data/anr/目录下的tracetxt文件导出,用来定位分析问题。使用>adb
pull /data/anr/tracetxt d:\ 将tracetxt文件导出到d盘。
2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。
3)崩溃问题:通过搜索Exception关键词来定位。
4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。
12kill
kill用来中止一个进程。
比如我们在跑monkey的时候,怎么强制关闭monkey呢,可以用kill <monkey进程PID>
说明:另开启一个cmd,找到monkey的pid号,然后杀掉即可。
参考文献:
1Android调试桥: >
以上就是关于常用的安卓手机adb命令总结全部的内容,包括:常用的安卓手机adb命令总结、ubuntu 下使用adb和scrcpy、adb指令笔记等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)