Android测试 adb常用命令

移动端的Android测试总是少不了一些adb命令的操作,稍微总结一下自己经常用到的命令。

例如:adb无法安装debug包,提示Failure [INSTALL_FAILED_TEST_ONLY],怎么办?莫慌,加个-t参数即可

$ adb install -t debug.apk

这一点在adb的说明中有明确的提示, -t 即表示允许test package
$ adb
......
app installation:
 install [-lrtsdg] PACKAGE
 install-multiple [-lrtsdpg] PACKAGE...
     push package(s) to the device and install them
     -l: forward lock application
     -r: replace existing application
     -t: allow test packages
     -s: install application on sdcard
     -d: allow version code downgrade (debuggable packages only)
     -p: partial application install (install-multiple only)
     -g: grant all runtime permissions

设备信息相关

1、设备名

$ adb devices
List of devices attached
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
b33aa57c    device

如果连接的是模拟器的话,需要先connect一下,例如:
夜神模拟器连接adb:adb connect 127.0.0.1:62001
海马玩模拟器连接adb:adb connect 127.0.0.1:53001

2、获取设备的一些信息:$ adb shell cat /system/build.prop

# 例如
$ adb shell cat /system/build.prop |grep ro.product.model
ro.product.model=MI 5

$ adb shell cat /system/build.prop |grep ro.build.version.release
ro.build.version.release=6.0.1

$ adb shell cat /system/build.prop |grep ro.product.cpu.abi
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=arm64-v8a

常用方法

1、获取当前最上层activity

$ adb shell dumpsys activity | grep "mFocusedActivity"
  mFocusedActivity: ActivityRecord{5bef6d8 u0 com.miui.home/.launcher.Launcher t1803}

2、通过adb获取设备IMEI:iphonesubinfo

$ adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
872429031076264

3、自动化中可能应用到输入法设置

# 列出当前安装的输入法
$ adb shell ime list

# 当前默认的输入法
$ adb shell settings get secure default_input_method

# 设置输入法
$ adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME

4、截图、截视频

# 截图
$ adb shell /system/bin/screencap -p /sdcard/screenshot.png

# 录制是视频
$ adb shell screenrecord /sdcard/demo.mp4

5、获取分辨率

$ adb shell wm size
Physical size: 1080x1920

$ adb shell dumpsys window displays |head -n 3
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1020-1920x1860

6、获取帧数据,这部分的详细内容可以看我的另一篇分析:
Android FPS流畅度测试

$ adb shell dumpsys gfxinfo PackageName
$ adb shell dumpsys gfxinfo PackageName framestats

7、简单的广播操作:

广播 - 改变wifi状态
$ adb shell am broadcast -a android.net.wifi.WIFI_STATE_CHANGED -ei disable

广播 - 改变电量,level代表电量
$ adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei plugged 0 --ei temperature 2 --ei status 3 --ei level 4

广播 - 刷新media库单个文件。有时候我们push图片等到设备中不会立即被识别,这时候需要手动刷新一下
$ adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/yourpic.jpg
eg:....SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/yourpic.jpg

广播 - 刷新media库文件夹。有时候我们push图片等到设备中不会立即被识别,这时候需要手动刷新一下
$ adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d yourPath
eg:....SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/

8、有的MIUI开发板获得完整root权限。
这个至少要在Android 6.0以上,较新adb版本。背景是,MIUI开发板已经获得了root权限,但还是不能对system目录进行读写。这时候可以试试security中的disable-verity,作用是disable dm-verity checking on userdebug builds。

$ adb root
$ adb disable-verity
$ adb reboot

# 重新开启也很简单
$ adb enable-verity

9、APK相关

# 安装、卸载
$ adb install PackageName
$ adb uninstall PackageName

# 查看安装包信息
$ aapt dump badging PackageName

# 强制停止某个应用
$ adb shell am force-top PackageName

# 清除某个应用的数据(相当于新安装)
$ adb shell pm clear PackageName

# 启动应用
$ adb shell am start -D -n packageName/activity

10、动态调试需要用到forward

# 使用IDA进行动态调试,需要端口转发
$ adb forward tcp:23946 tcp:23946

# smali动态调试
$ adb forward tcp:8800 jdwp:21683

11、改变手机网络状态:adb shell svc

$ adb shell svc
Available commands:
    help     Show information about the subcommands
    power    Control the power manager
    data     Control mobile data connectivity
    wifi     Control the Wi-Fi manager
    usb      Control Usb state
    nfc      Control NFC functions

这里用wifi作为例子:其他的书输入help即可查看

$ adb shell svc wifi help
Control the Wi-Fi manager

usage: svc wifi [enable|disable]
         Turn Wi-Fi on or off.

# 使用方法
$ adb root
$ adb shell svc wifi disable/enable

12、跑跑monkey

#示例
$ adb shell monkey -p PackageName --throttle 600 --pct-trackball 44 --pct-touch 44 --pct-appswitch 2 --pct-motion 10 -v 1000

adb的命令还有很多,光是dumpsys、am和pm就有很多可讲的。它们都是有具体的应用场景,后面会在单独的文章中进行介绍。
官网的介绍:
https://developer.android.com/studio/command-line/adb.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容