最好参考google官方文档:
https://developer.android.com/studio/command-line/adb
- 查看当前activity:
adb shell dumpsys activity | grep mFocusedActivity
或
adb shell dumpsys window | grep mCurrentFocus
2. adb安装apk
adb push install XXX.apk
3. 卸载apk
adb uninstall 包名
4. 启动app
adb shell monkey -p com.youdao.dict.smartisan -c android.intent.category.LAUNCHER 1
5. 获取布局信息
adb shell dumpsys activity top
# 开始: Hierarchy
# 结束: Looper
6. 打开相机
adb shell am start -n com.android.camera2/com.android.camera.CameraLauncher
7. 模拟手机低电量
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level" 3 --ei "scale” 100
8. 屏幕截图
adb -s cadc680a0004 shell screencap /sdcard/demo/1.png
9. 录屏
adb -s cadc680a0004 shell screenrecord /sdcard/demo/v1.mp4
10. 查询Android ID
adb shell settings get secure android_id
11. 查看设备已有的程序列表
adb shell pm list packages
# 查看所有第三方APP
adb shell pm list packages -3
12. 查看app的activity
adb logcat ActivityManager:I *:s | grep com.speed.boost.booster
13. adb清除app数据
adb shell pm clear <packgeName>
14. adb 停止app
adb shell am force-stop <packgeName>
15. adb拨打电话
adb shell am start -a android.intent.action.CALL -d tel:15536057230
16. getprop常用
获取安卓版本号 | adb shell getprop ro.build.version.release |
获取系统api版本 | adb shell getprop ro.build.version.sdk |
获取应用程序版本 | adb shell dumpsys package com.ijinshan.browser_fast | grep versionName |
获取安卓设备机型 | adb shell getprop ro.product.model |
17. 获取手机权限
Adb shell pm
list permission-groups
|
输出所有已知的权限组。
|
list permissions [
options
]
group
|
输出所有已知的权限,或者,仅输出
group
中的权限。
具体选项:
|
18. 给应用授权 adb shell pm
grant 授权时,如果是该机的未知权限,报错:
Bad argument: java.lang.IllegalArgumentException: Unknown permission: com.asus.msa.SupplementaryDID.ACCESS
grant
package_name
permission
|
向应用授予权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。
|
revoke
package_name
permission
|
从应用中撤消权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。
|
19. 生成ART配置文件
从 Android 7.0(API 级别 24)开始,Android Runtime (ART) 会收集已安装应用的执行配置文件,这些配置文件用于优化应用性能。您可能需要检查收集的配置文件,以了解在应用启动期间,系统频繁执行了哪些方法和使用了哪些类。
要生成文本格式的配置文件信息,请使用以下命令:
adb shell cmd package dump-profiles
package
要检索生成的文件,请使用:
adb pull /data/misc/profman/
package
.txt
20. 获取应用相关信息
adb shell dumpsys package pkg_name
requested permissions节点为应用请求的权限,含有granted=true的权限为已授权
21. adb卸载所有第三方应用:
# grep -v 'poco\|stf’ 排除关键字:poco stf
只有一个设备时:
adb shell pm list packages -3 | grep -v 'poco\|stf\|yosemite' | cut -d ':' -f2 | tr '\r' ' ' | xargs -n1 -t adb uninstall
多个设备,需要指定手机时:
adb -s FA69P0314533 shell pm list packages -3 | grep -v 'poco\|stf\|yosemite' | cut -d ':' -f2 | tr '\r' ' ' | xargs -n1 -t adb -s FA69P0314533 uninstall
22. Adb模拟长按电源键
logger.info("长按电源键")
shell("sendevent /dev/input/event0 1 116 1”) # 1表示长按,116表示电源键的十进制值, 1代表按下
shell("sendevent /dev/input/event0 0 0 0")
logger.info("按下电源键")
time.sleep(3) # 长按时长
logger.info("抬起电源键")
shell("sendevent /dev/input/event0 1 116 0")
shell("sendevent /dev/input/event0 0 0 0")
23. adb清空SurfaceFlinger数据:
# 如果该命令返回空,说明硬件支持SurfaceFlinger latency,如果返回很多行结果(像adb shell dumpsys SurfaceFlinger 一样),说明硬件不支持
adb shell dumpsys SurfaceFlinger --latency-clear SurfaceView
安卓6以下获取帧信息:
adb shell dumpsys SurfaceFlinger --latency pkg_name/activity_name
24. getprop和setprop
getprop
命令的作用就是从系统的各种配置文件中读取一些设备的信息,
配置中以
ro
开头的是只读属性
# 查看单个配置信息: adb shell getprop后面加属性名称来输出单个配置信息
读取手机语言系统:adb shell getprop persist.sys.locale
setprop可以对手机一些配置进行设置,当然这些配置必须是可写的
命令格式:setprop [key] [value]
设置GPS:
adb -s 300fb2c2 shell settings put secure location_providers_allowed +network,gps
取消设置GPS:
adb -s 300fb2c2 shell settings put secure location_providers_allowed -gps
查看某一个设置项的值
adb -s 300fb2c2 shell settings get system sound_effects_enabled
# 其中的get system可以根据设置的具体情况改成get global或者get secure
# 如果返回null说明没有这个选项
25. adb连接设备报错: