常用的adb命令

乙醇 创建于 6 months 之前

最后更新: 6 months 之前

阅读数: 349

值得收藏

Android Debug Bridge是我们比较常用的命令行工具,该工具可以在Android 设备上执行不同的操作,例如安装或卸载应用程序、输入文本、捕获屏幕截图等,下面是一些常用的adb命令及使用场景。

*列出连接的设备*

adb devices

上面的命令可以列出设备的序列号和状态,如果连接了许多设备并且我们想将它们区分开来,我们可以运行带有-l选项的命令以列出有关设备的更多详细信息。

adb devices -l

此命令向我们显示设备、型号等。

*安装应用程序*

通过提供.apk文件的路径,可以在设备上安装应用程序

adb install <path_to_apk>.apk

如果连接了多个设备,直接运行上面的命令是会报错的,这时应使用-s选项指定目标设备的序列号。

adb -s <serial_number> install <path_to_apk>.apk

这里的-s是一个常用选项,用于指定具体的设备,会在adb命令中大量使用到。

*列出package*

adb shell 中的包管理器(package manager)工具可用于列出设备上安装的所有包

adb shell pm list packages

后面接grep命令可以实现更为精确的过滤

adb shell pm list package | grep what_you_want

启动*Activity*

可以用下面的命令来找到指定的package中的某个activity

adb shell dumpsys package | grep <package_name> | grep Activity

然后下面的命令可以启动activity

adb shell am start <package_name>/<activity_name>

比如下面的命令可以启动google map

adb shell am start com.google.android.apps.maps/com.google.android.maps.MapsActivity

*在浏览器中打开URL*

这里要用到工具是活动管理器am,activity manager

adb shell am start -a android.intent.action.VIEW -d "<some_url>"

比如下面的例子

adb shell am start -a android.intent.action.VIEW -d "https://developer.android.com/docs"

输入文字

在文本框中输入并focus文本

adb shell input text "<some_input>"

一些特殊字符!&(,是需要用反斜杠(\)转义的

adb shell input text "\!\&\(\)\<\>\*\|"

点击Home按钮

KEYCODE_HOME事件可以用来模拟点击Home按钮的效果

adb shell input keyevent KEYCODE_HOME

干掉应用

可以通过模拟按钮的方式来终止应用

adb shell input keyevent KEYCODE_APP_SWITCH
adb shell input keyevent KEYCODE_DPAD_DOWN
adb shell input keyevent DEL

清除应用数据

adb shell pm clear <package_name>

在这个例子里Google Chrome 浏览器打开了 4 个tab。当应用数据被清除并再次启动Activity时,显示Terms of Service页面(首次启动时显示的页面)并表明应用缓存和数据被清除。

屏幕截图

截图并拉回本地

adb shell screencap /sdcard/<screenshot_name>.png
adb pull /sdcard/<screenshot_name>.png

录屏

adb shell screenrecord /sdcard/<some_video_name>.mp4

注意: 命令执行之后,需要按下ctrl+c来停止录屏

最后把视频拉回到本地

adb pull /sdcard/<some_video_name>.mp4

查看应用程序日志

adb logcat

访问应用程序的data目录

这时候需要用到adb shell

adb shell
run-as <package_name>

卸载应用

adb uninstall <package_name>

https://lavanyamohan.hashnode.dev/common-adb-commands-i-use-while-testing?utm_campaign=Software%2BTesting%2BWeekly&utm_medium=email&utm_source=Software_Testing_Weekly_114

0