android常用adb命令大全,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值