分享免费的编程资源和教程

网站首页 > 技术教程 正文

实用adb命令 adb命令干什么用的

goqiw 2024-10-04 22:09:10 技术教程 43 ℃ 0 评论

笔者从事OEM手机开发,如下是比较常用的命令,后面会持续更新

1. 指定特定连接设备

$ adb devices

List of devices attached

cf264b8f device

emulator-5554 device

在有多个设备连接的情况下,adb devices会列出所有已连接设备,通过adb -s 序列号可以指定特定设备,比如adb -s cf264b8f shell wm size 命令表示获取序列号为 cf264b8f这台设备的分辨率

2. 启动/停止 adb

adb start-server

adb kill-server

adb kill-server 这个命令经常会用到,此时可以执行再执行adb相关命令。笔者这个命令执行完毕后最常用的的是adb remount。adb start-server这个命令一般不需要执行,当运行adb 命令时如果adb server 还未启动会自动调起。

3. 获取手机上安装的应用列表

adb shell pm list packages

这个命令会列出当前设备上安装的所有应用,后面可以跟参数,比如后面追加-s表示列出系统应用,-3表示列出三方应用,-f表示列出应用关联的APK

或者追加一个字符串,表示列出包含该字符串的包名

adb shell pm list packages test

这个命令即表示列出包名中含有test的应用,其效果等价于adb shell pm list packages | grep test

4. 安装/卸载 应用

adb install APK的路径

adb uninstall APK的包名

这个命令也是经常会用到,adb install 后面可以追加不同参数,笔者用过追加 -r 表示覆盖安装,-s表示安装到sd卡

5. 清除APK的数据

adb shell pm clear 包名

比如adb shell pm clear com.android.test 表示清除test这个应用的数据和缓存,效果等同于手动去设置中的清除缓存和数据按钮。

6. 列出前台 Activity

adb shell dumpsys activity activities | grep mFocusedActivity

这个命令可以迅速定位到当前界面所在的包名以及类名

7.调起指定的Activity/Service,发送指定广播

adb shell am start -n com.tencent.mm/.ui.LauncherUI

如上命令表示调起LauncherUI这个界面,同样调起指定service把start改为startservice即可

发送指定的广播稍稍复杂点,举个例子如下

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.lee.test/.CompleteReceiver

表示向 com.lee.test/.CompleteReceiver 发送一个 BOOT_COMPLETED 广播,这个命令实用也很频繁,经常是用在调试时候,执行这个命令发送指定广播来debug,特别是一些广播的场景很难制作的情景

8. 强行停止应用

adb shell am force-stop -n 包名

比如adb shell am force-stop -n com.android.test,表示停止com.android.test这个应用的一切进程与服务

9. PC与手机互传文件

adb pull 手机文件路径 电脑上目录

如上命令表示将手机上指定路径上文件拷贝到电脑上的指定目录,若电脑目录省略则代表当前目录。比如adb pull /sdcard/hello.mp4 /share/ 表示将SD下的hello.mp4 拷贝到电脑share目录下

adb push 电脑上的文件路径 手机目录

这个命令表示将电脑上文件push到手机里,笔者从事手机开发这两个命令每天都会用的很频繁

10.模拟按键/输入

adb shell input keyevent 具体数值

这个具体数值代表不同的含义,比如adb shell input keyevent 85 表示媒体控制中的播放/暂停;adb shell input keyevent 224 点亮屏幕;焦点处于文本框时adb shell input text hello可以代替手动输入hello。keyevent还有很多,可以自行查阅

11. Android 日志

adb logcat [<option>] ... [<filter-spec>] ...

adb logcat后面可以追加不同参数,笔者从事手机开发上层部分,经常使用的是adb logcat -v time >lee.log 抓取上层日志并输出到lee.log文件中,adb logcat -v time后面追加-s 具体TAG名,可以打印具体TAG的日志

12.查看IMEI号

adb shell

su

service call iphonesubinfo 1

输出示例:

Result: Parcel(

0x00000000: 00000000 0000000f 00360038 00390030 '........8.6.0.9.'

0x00000010: 00350035 00320030 00370037 00350038 '5.5.0.2.7.7.8.5.'

0x00000020: 00340030 00000031 '0.4.1... ')

这里的是 860955027785041。

13. adb shell cat /system/build.prop

adb shell cat /system/build.prop

查看系统属性,这个对于像笔者这样从事手机开发一定不会陌生

14.屏幕截图并传到电脑端

adb shell screencap -p /sdcard/hello.png

这一步屏幕截图保存在/sdcard下,紧接着执行

adb pull /sdcard/hello.png 电脑目录

这一步将sdcard下的hello.png拷贝到电脑端,电脑目录省略则拷贝到当前目录

15.录制屏幕

adb shell screenrecord /sdcard/lee.mp4

这一步录制视频并保存到sdcard下,命名为lee

同样的导出到电脑端步骤和上一条截图操作一样,这个命令也是比较常用,特别是和测试同事扯皮时可以录制一个视频证明自己的清白,哈哈

16. 重启机器

adb reboot

17. Monkey 压力测试

adb shell monkey -p 包名 -v 500

这个是最简单的命令,表示向指定应用程序发送 500 个伪随机事件,像是单击、触摸、手势等操作Monkey有很多命令,具体可以自行查阅,笔者曾经只用过两三次,大部分时候都是测试同事测试提供日志过来。

18.查看进程

adb shell ps

还有很多比如查看CPU信息啊,分辨率,Mac 地址,内存信息等等这些不怎么常用的这里就不列出了,本文只列出常用高频命令。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表