root权限操作
- 此操作需要root后的手机才可以执行
对手机进行root操作
adb root
挂载读写
adb remount
如果挂载失败 尝试使用 adb disable-verity 命令 然后 adb reboot重启
重启机器
adb reboot
应用信息相关
查看手机安装的应用包名:
adb shell pm list packages
查看手机安装包名,在手机上安装的位置
adb shell pm list packages -f
过滤指定包名的安装位置
adb shell pm list package -f | grep -iE "指定包名"
输出安装包的APK路径
adb shell pm path +包名
清理包名下的数据
adb shell pm clear +包名
查看指定包名版本号:
adb shell dumpsys package 指定包名 | grep version
电脑和手机之间文件传输
把apk推到安卓设备上进行安装
先将apk从电脑C盘推送到手机的data目录下面
adb push D:\SurfaceCamera_d.apk /data/
手机设备指定目录文件发送到计算机指定目录:前面是手机位置,后面是桌面位置,执行代码前需要挂载读写
adb pull /system/framework/SystemUI.apk C:\Users\Administrator\Desktop\systems\
安装卸载操作
常规的安装命令:
adb install +包存储的绝对路径地址
常规的卸载命令:
adb uninstall +包存储的绝对路径地址
安装
adb shell pm install -t /data/SurfaceCamera_d.apk
强制 卸载应用
adb shell pm uninstall --user 0 包名
查看日志
查看log:
adb logcat
清除log缓存:
adb logcat -c
设置logcat 的缓存大小
adb logcat -G 100M
将日志写入文件中,> 后面是保存的文件全路径;
adb logcat > C:\Users\ivy\Desktop\log.txt
只显示需要的输出(白名单),最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。
如只显示标记有MyApp的log 并且将其输出到文本中
adb shell "logcat | grep MyApp">C:\Users\ivy\Desktop\text.txt
最近崩溃的栈日志,这个用于快速定位问题
adb shell dumpsys dropbox --print data_app_crash
抓取 anr 日志
# root 过的设备
adb shell cat /data/anr/traces.txt > /mnt/sdcard/0/traces.txt
exit
adb pull /mnt/sdcard/0/traces.txt .
# 注意某些机型可能文件名改过,需要自行判断
## 未root
# windows 系统 写入文件 bugreport.log
adb shell bugreport > bugreport.log
# linux 系统可以使用 tee 一边输出一边记录
adb shell bugreport | tee bugreport.log
文件操作
adb shell
cd xxx //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx // 删除名字为xxx的文件夹及其里面的所有文件
#rm xxx // 删除文件xxx
#rm dir xxx // 删除xxx的文件夹
#exit 退出
# 查看所有存储设备名
adb shell ls mnt
# 将指定文件(例如电脑中文件)推送到手机指定目录下
adb push local remote //local 代表需要推送的文件全路径 ,remote 推送到手机位置的路径
//例如:
adb push C:\Users\ivy\Desktop\123\xxx.apk system/priv-app/HMDCamera
# 将手机中的文件导出到指定文件(例如电脑的某了路径下)
adb pull remote local //local 代表导出到指定位置的文件全路径 ,remote 导出文件在手机位置的路径
例如:
adb pull /system/priv-app/HMDCamera/xxx.apk C:\Users\ivy\Desktop\123
CPU查看
查看cpu命令:
adb shell top
可以直接使用此命令,查看所有进程下的cpu占用情况, 获取到的cpu 数距只是针对1核来说,现在手机
都是多核的了,那这样的值也不会太准确,如果是多核情况下还需除以cpu的个数。
单核*4 cpu ,退出此功能 方式是按一下q键 就可以退出了
参数说明:
usage: top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-m LINES] [-d SECONDS] [-p PID,] [-u USER,]
Show process activity in real time.
-H Show threads 显示线程
-k Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID)回退排序字段(默认- s,-%CPU,- etime,- pid)
-o Show FIELDS (def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE)显示字段(def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE)
-O Add FIELDS (replacing PR,NI,VIRT,RES,SHR,S from default)添加字段(替换默认的PR、NI、VIRT、RES、SHR、S)
-s Sort by field number (1-X, default 9)按字段号排序
-b Batch mode (no tty)批处理模式
-d Delay SECONDS between each cycle (default 3)刷新间隔时间(默认3秒)
-m Maximum number of tasks to show 最多显示多少
-n Exit after NUMBER iterations 刷新次数
-p Show these PIDs 显示pid
-u Show these USERs 显示user
-q Quiet (no header lines) 没有标题行
表示把获取到的数据保存到本地电脑 d: cpu.txt文件中
adb shell top > d:\cpu.txt
按照指定的进程名称进行过滤,查看cpu 变化,windows使用findstr进程、Mac与Linux使用grep程序
a、(Windows bat)adb shell top | findstr "21879"
b、(Mac 终端)adb shell ps | grep ""
adb shell "top -d 2 | findstr com.yy.huanju" > g:\cpu.txt
查看线程占用变化(显示TID线程 )
adb shell top -H
根据进程PID 定位当前进程CPU占用过高的线程id
adb shell top -H -p 96263
杀死进程
adb shell kill 28456
内存查看
查看当前内存占用:
adb shell cat /proc/meminfo
内存使用情况
adb shell dumpsys meminfo 包名
查看手机是user版本还是userdebug或是eng版本
执行指令:
adb shell getprop ro.build.type
截屏手机生成图片和录制视频
截图保存到电脑桌面文件夹123 文件名sc.png
adb exec-out screencap -p > C:\Users\ivy\Desktop\123\sc.png
# 录制是视频
$ adb shell screenrecord /sdcard/demo.mp4
在windows上使用grep命令进行内容搜索:
- 安装git-bash
- 在需要搜索的目录下,右键打开git-bash即可使用grep命令搜索
从文件内容查找匹配指定字符串信息:
使用命令如下:
grep -rniE "xxx" //xxx代码筛选的关键字
r:指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作
n:在显示符合样式的那一行之前,标示出该行的列数编号
i:忽略字符大小写的差别
E:将样式为延伸的正则表达式来使用
//将查找的数据输出到文件
grep -rinE "CameraApp" > txt.txt //txt.txt 代表着输出的文件全路径,一般直接在查找的目录创建输出文件
获取分辨率
$ adb shell wm size
Physical size: 1080x1920
$ adb shell dumpsys window displays |head -n 3
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1020-1920x1860