时间:2021-11-20 16:23:10 | 栏目:Android代码 | 点击:次
ADB,即 Android Debug Bridge,是 Android 开发/测试人员不可替代的强大工具。
启动 adb server 命令:
adb start-server
(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)
停止 adb server 命令:
adb kill-server
命令:
adb version
输出为:
C:\WINDOWS\system32>adb version
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as E:\program\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools\adb.exe
adb devices
输出为:
C:\WINDOWS\system32>adb devices
List of devices attached
CVH7N16A12000234 device
adb shell settings get secure android_id
adb shell getprop ro.build.version.release
adb shell wm size
输出为:
C:\WINDOWS\system32>adb shell wm size
Physical size: 1440x2560
adb shell wm density
输出为:
Physical density: 560
adb shell dumpsys window displays
其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键
adb shell dumpsys activity | findstr "mFocusedActivity"
获取完整路径:
adb shell dumpsys window | findstr mCurrentFocus
adb shell dumpsys activity services [packagename]
adb shell dumpsys package [packagename]
command | 用途 |
---|---|
start [options] | 启动 Activity |
startservice [options] | 启动 Service |
broadcast [options] | 发送广播 |
force-stop | 停止进程 |
用于决定intent对象的选项如下:
参数 | 作用 |
---|---|
-a | 指定action,比如 android.intent.action.VIEW |
-c | 指定 category,比如 android.intent.category.APP_CONTACTS |
-n | 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity |
-W | 输出完整的打开应用过程 |
am(Activity Manager)命令来启动一个APP、启动Activity、启动广播和服务等
adb shell am start xx
举例:
C:\WINDOWS\system32>adb shell am start -W com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqq/.activity.SplashActivity } Warning: Activity not started, its current task has been brought to the front Status: ok Activity: com.tencent.mobileqq/.activity.SplashActivity ThisTime: 2916 TotalTime: 2916 WaitTime: 2936 Complete
adb shell am startservice "com.example.crime/com.example.crime.MyService"
adb shell am stopservice [options] <INTENT>
adb shell am broadcast -a "our.specified.action"
adb shell am force-stop com.qihoo360.mobilesafe
adb shell pm path (PACKAGE)
举例:
C:\WINDOWS\system32>adb shell pm path com.tencent.mobileqq package:/data/app/com.tencent.mobileqq-xt0XnDpe7yq8Z5YGef0iEA==/base.apk
adb shell pm list packages
可在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
参数 | 显示列表 |
---|---|
无 | 所有应用 |
-f | 显示应用关联的apk文件 |
-d | 只显示disabled的应用 |
-e | 只显示enabled的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
举例:
1.打印第三方应用的列表
adb shell pm list package -3
输出为:
C:\WINDOWS\system32>adb shell pm list package -3
package:com.quark.browser
package:com.safervpn.android
package:de.blinkt.openvpn
package:com.zhiliaoapp.musically.go
package:net.ivpn.client
package:com.networkprotect.ultravpn
package:com.google.android.apps.docs.editors.docs
package:com.expressvpn.vpn
package:com.sharpvpn.freefast_ipchanger
package:com.whatsapp
package:com.google.android.apps.docs.editors.sheets
package:com.google.android.apps.docs.editors.slides
package:com.digitanlabs.apps.supervpn
package:com.gaditek.purevpnics
package:com.speedify.speedifyandroid
package:net.hideman.free
package:net.safemove.android.cip
package:com.securitykiss.android
package:im.zpn
2.包名含有某字符的应用
C:\WINDOWS\system32>adb shell pm list packages tencent package:com.tencent.mm package:com.tencent.qqlivei18n package:com.tencent.mobileqq
当然也可以用管道符来过滤:
C:\WINDOWS\system32>adb shell pm list packages | findstr tencent package:com.tencent.mm package:com.tencent.qqlivei18n package:com.tencent.mobileqq
adb install xx.apk
允许覆盖安装:
adb install -r xx.apk
adb uninstall com.tencent.mobileqq
卸载并保留数据:
adb uninstall -k com.tencent.mobileqq
adb -P <port> start-server
adb pull <设备里的文件路径> [电脑上的目录]
其中 电脑上的目录 参数可以省略,默认复制到当前目录。
adb push <电脑上的文件路径> <设备里的目录>
adb shell input keyevent < keycode >
不同的 keycode 能实现不同的功能,列表如下:
keycode: 含义 3 HOME 键 4 返回键 5 打开拨号应用 6 挂断电话 24 增加音量 25 降低音量 26 电源键 27 拍照(需要在相机应用里) 64 打开浏览器 82 菜单键 85 播放/暂停 86 停止播放 87 播放下一首 88 播放上一首 122 移动光标到行首或列表顶部 123 移动光标到行末或列表底部 126 恢复播放 127 暂停播放 164 静音 176 打开系统设置 187 切换应用 207 打开联系人 208 打开日历 209 打开音乐 210 打开计算器 220 降低屏幕亮度 221 提高屏幕亮度 223 系统休眠 224 点亮屏幕 231 打开语音助手 276 如果没有 wakelock 则让系统休眠
亮屏熄屏:
adb shell input keyevent 26
adb shell input swipe x1 y1 x2 y2
参数分别表示:起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标
adb shell input text 123
adb shell input tap 500 500
使用adb logcat可以显示日志信息
dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务。
列举几个:
查看电池信息
adb shell dumpsys battery
查看闹钟信息
adb shell dumpsys alarm
adb shell screencap /imgpath/screen.png
adb shell screenrecord /imgpath/demo.mp4
imgpath可以根据自己相册里面的照片路径信息获取