Bootstrap

常用adb命令和行为记录

常用 adb 命令记录

一、常用

命令作用
adb reboot重启设备
adb devices查看当前已连接的设备数
adb root使用设备的 root 权限
adb remount重新挂载设备
adb push dir1 dir2将自身文件放入设备中,dir1 为自己文件目录,dir2 为机器目录
adb pull dir2 dir1将设备的文件提取出来,dir 2 为机器目录,dir1 为自己的文件目录
adb shell进入机器的 shell 中,类似linux 命令行界面
adb pm -l查看已安装的文件包
adb install安装 apk 应用程序
adb uninstall卸载 apk 应用程序
adb logcat --pid pid查看进程号为 pid 进程的 log 信息
adb ps -e | grep 模块名查看该模块的进程信息
adb shell pm listpackages查看已安装的包名,看下 apk 安装了没有
adb shell kill -9 进程名杀死进程号的进程,有时候需要单独重启相关进程

二、常用行为
1、本地 logcat 发生 EOF 挂掉,通过命令行查看当前模块的log;或是抓取 log 修改 bug。

#以下可得到该模块的进程号
adb shell ps -e | grep 模块名 
#通过进程号查看 log 信息
adb shell logcat --pid 进程号
#抓取该进程号 log 日志到外部文件
adb shell logcat --pid 进程号 > 保存log的文件
#过滤内容抓取,只抓取包含过滤内容的 log 日志
adb shell logcat "过滤内容" > 保存log的文件

2、把 anr 信息文件输出到当前文件夹

adb pull /data/anr ./

3、设备的系统 apk 需要更换,尽量不使用 install,某些 apk 使用 install 无效。需要使用 push 的方法。设备路径中不允许出现两个. apk 文件,不然报错,所以要先删除再 push。同名的话不用删除,覆盖就行。

#安装之前需要先删除系统内部的 apk 文件

#先获取 root,并重新挂载,防止删除时无权限,显示只读
adb root
adb remount
#进入设备 shell 中
adb shell
su
#进入 apk 具体所在的目录,防止删除错误的 apk,通过模块名确定具体的目录
cd /system/app/具体所在的目录
#只会有一个 apk,直接补位删除就行,记住这个全路径,一会儿 push 需要使用
rm -rf ".apk文件"
#退出设备 shell,第一次退 su 界面,第二次退设备 shell
exit
exit
#push 更换的 .apk 文件
adb push 需要重新安装的.apk文件 刚刚删除了.apk文件的路径
#重启就行了,放在该路径下已经相当于安装了
adb reboot

4、安装非系统的 .apk 文件,别人打包或自己下载的。

#方式1:这种直接强制安装就行了。不想强制安装的话,先 uninstall,再 install,不要使用 -r 强制就行
adb install -r .apk文件
#方式2:使用 pm 进行安装,但是要先 push,别 push 进特殊目录就行
adb push 安装的.apk文件 设备的普通目录
adb shell
su
pm install .apk文件

5、只读没权限

#不明白为什么网上教程没用
#直接 root,然后重新挂载
adb root
adb remount
#解决

6、查看某个 apk 是否安装

//xxx 是 AndroidManifest 中 package 的值,也就是包名
adb pm -l | grep xxx

7、待增

;