ADB即Android Debug Bridge,作为Android开发的常用调试工具。
Why
简言之,我用它主要做三件事。
- 安装Apk
- 查看Debug日志
- 大概查看App的内存峰值和初步判断是否存在内存泄漏
Where is ADB
直接下载一个含ADB可执行文件的Zip包,解压到本地目录,再添加可执行文件所在目录到系统PATH。不添加PATH也行,直接在可执行文件后加参数。但,这不符合开发思维,还是别省这个时间(顺便吐槽一下自己)。
- 添加到系统变量的Path之后
- 如果已经启动CMD程序,那么记得重启
- 这时候在任意路径下输入adb或者adb version,能够正确显示 ADB 的版本信息,就说明路径设置成功了。
Android Studio,Mumu模拟器,Unity3D等工具也附带ADB工具,所以可能你的电脑上已经拥有了多个ADB:)。
常用操作
1 查看设备
adb devices
为什么是先查看设备?因为你会忘记你自己曾经连接过什么设备。比如已经连接过模拟器。别重复操作一遍浪费时间。
2 连接设备
移动设备
开启开发者调试模式之后,只要用数据线连接手机,就能自动识别了。
一定确保数据线合格,有的只支持充电功能,如果没有意识到这一点,有时候会折腾的让你怀疑人生。
如果识别到了设备,却提示未授权通过,那么先考虑把数据线接口的灰尘和水汽清理干净。
模拟器
通过connect命令显式操作。
adb connect 127.0.0.1:7555,7555 是mumu模拟器的端口,不同模拟器端口不同,可以Ai一下。
断开设备
移动设备的话直接拔掉数据线,模拟器则把connect替换成disconnect命令。
3 安装APK
单一设备
如果通过adb devices发现只连接着一个设备,那么只需要adb install apkFilePath即可。
多设备则需要显式指定
adb -s 指定设备码install apkFilePath。
卸载APK
adb uninstall com.example.yourapp
adb uninstall -k com.example.yourapp 保留数据和缓存的方式
adb-s 指定设备码uninstall com.example.yourapp
4 查看Log
同理,同时连接多个设备时,需要指定设备:adb logcat-s 指定设备码---。单一设备则直接adb logcat。
过滤
adb logcat -s Unity
-s是只针对标签文本过滤,即只显示含Unity Tag的日志条目。
adb logcat | findstr 关键字
| findstr 即通过关键字过滤,针对所有文本字符。
其他规则请自行Ai。
导出日志
以便到本地分析。
adb logcat -s Unity> D:\logfile.txt
清理旧日志
adb logcat -c
5 查看内存
adb shell dumpsys meminfo com.example.yourapp(包Id)
再看PSS 内存值,是最接近目标的数据。