详解android adb常见用法

时间:2021-05-19

ADB,即 Android Debug Bridge,是 Android 开发/测试人员不可替代的强大工具。

adb与应用的连接

1.启动/停止

启动 adb server 命令:

adb start-server

(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)

停止 adb server 命令:

adb kill-server

2.查看 adb 版本

命令:

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

3.查看已连接设备

adb devices

输出为:

C:\WINDOWS\system32>adb devices
List of devices attached
CVH7N16A12000234 device

显示屏参数

1.android_id

adb shell settings get secure android_id

2.android系统版本

adb shell getprop ro.build.version.release

3.分辨率

adb shell wm size

输出为:

C:\WINDOWS\system32>adb shell wm size
Physical size: 1440x2560

4.密度

adb shell wm density

输出为:

Physical density: 560

5.显示屏参数

adb shell dumpsys window displays

其中 mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键

adb与应用交互

1.查看前台 Activity

adb shell dumpsys activity | findstr "mFocusedActivity"

获取完整路径:

adb shell dumpsys window | findstr mCurrentFocus

2.查看正在运行的Services

adb shell dumpsys activity services [packagename]

3查看应用详细信息

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、启动广播和服务等

4.启动应用

adb shell am start xx

举例:

C:\WINDOWS\system32>adb shell am start -W com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivityStarting: 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 frontStatus: okActivity: com.tencent.mobileqq/.activity.SplashActivityThisTime: 2916TotalTime: 2916WaitTime: 2936Complete

5.启动Service

adb shell am startservice "com.example.crime/com.example.crime.MyService"

6.停止Service

adb shell am stopservice [options] <INTENT>

7.发送广播

adb shell am broadcast -a "our.specified.action"

8.强制停止应用

adb shell am force-stop com.qihoo360.mobilesafe

9.查看应用安装路径

adb shell pm path (PACKAGE)

举例:

C:\WINDOWS\system32>adb shell pm path com.tencent.mobileqqpackage:/data/app/com.tencent.mobileqq-xt0XnDpe7yq8Z5YGef0iEA==/base.apk

10.查看手机应用

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 tencentpackage:com.tencent.mmpackage:com.tencent.qqlivei18npackage:com.tencent.mobileqq

当然也可以用管道符来过滤:

C:\WINDOWS\system32>adb shell pm list packages | findstr tencentpackage:com.tencent.mmpackage:com.tencent.qqlivei18npackage:com.tencent.mobileqq

11.安装apk

adb install xx.apk

允许覆盖安装:

adb install -r xx.apk

12.卸载apk

adb uninstall com.tencent.mobileqq

卸载并保留数据:

adb uninstall -k com.tencent.mobileqq

13.指定adb server的网络端口

adb -P <port> start-server

文件管理

1.复制设备里的文件到电脑

adb pull <设备里的文件路径> [电脑上的目录]

其中 电脑上的目录 参数可以省略,默认复制到当前目录。

2.复制电脑里的文件到设备

adb push <电脑上的文件路径> <设备里的目录>

事件输入

1.模拟按键操作

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

2.滑动屏幕

adb shell input swipe x1 y1 x2 y2

参数分别表示:起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标

3.输入文本

adb shell input text 123

4.模拟屏幕点击事件

adb shell input tap 500 500

事件输出

1.日志信息:

使用adb logcat可以显示日志信息

2.dumpsys:

dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务。
列举几个:
查看电池信息

adb shell dumpsys battery

查看闹钟信息

adb shell dumpsys alarm

3.截屏

adb shell screencap /imgpath/screen.png

4.录屏

adb shell screenrecord /imgpath/demo.mp4

imgpath可以根据自己相册里面的照片路径信息获取

以上就是详解android adb常见用法的详细内容,更多关于android adb用法的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章