引言
这篇博客主要整理一些自己在项目中常用到的一些adb命令,目前也就几条,后续如果自己碰到了新的命令会持续补充。
什么是adb
我个人理解adb本质就是一种工具。当我们连接上安卓移动设备时,我们可以通过adb的一些命令来直接管理这台移动设备。例如从设备中拷贝文件或者程序的调试等等。
mac下安装
brew cask install android-platform-tools
直接可以使用adb命令,不用再配置环境变量
adb命令整理
1.adb获取root权限
adb root
2.读写操作
adb remount
3.上传文件到移动设备
把pc端的example.txt文件放入移动设备的/data/sdcard/目录下
adb push c:/buffer/example.txt /data/sdcard/
4.拉取文件到本地
把/data/sdcard/目录下的example.txt 拉取到本地c:/buffer目录下
adb pull /data/sdcard/example.txt c:/buffer/
5.重启移动设备
adb reboot
6.删除某个路径下的文件
adb shell "rm -r /data/sdcard/example.txt"
7.进入交互机器模式
adb shell
8.exit退出shell模式
exit
9.开启烧录模式(一般刷机会先用这个命令)
adb reboot bootloader
10.查看某个算法的log
adb logcat | grep "tag name"
注:这里需要注意的是tag name一般是
__android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
中的LOG_TAG,所以当查找log时,需要知道算法中LOG_TAG具体是怎么定义的。
11.找移动设备中的某个文件路径
adb shell
find / -name "search file name"
12.如何查看崩溃log
首先找到自己pc上ndk-stack的目录,如果找不到直接打开终端输入which ndk-stack,即可看到自己的ndk-stack目录。
然后输入adb logcat | /your/path/to/ndk-stack -sym obj/local/armeabi-v7a 后面的路径是编译库过程中产生的obj目录。
adb logcat | /Users/subowen/WorkDir/SDKDir/NDKDir/android-ndk-r16b/ndk-stack -sym obj/local/armeabi-v7a
如果有崩溃即可看到崩溃在哪个库的第几行。
导致崩溃的原因有很多,比较常见的是:
1.指针没有判空
2.内存泄漏导致乱崩
3.指针多次释放
4.数组越界
以上4条都是亲身的血泪经历…