说明
开发过程中经常遇到一些小问题需要用到adb命令或者shell命令, 但是不常用所以经常会忘记, 每次都要查挺麻烦的, 所以在这里记录一下
命令太多行也麻烦, 所以尽可能压缩成一行, 大家也可以分享一下什么神奇的指令, 丰富这个合辑.
关于压缩成一行有一个小技巧:
while true; do 命令1; 命令2; ...; break; done
这个方式理论上可以把所有命令压缩成一行.
通过 grep
命令匹配的关键字, 可以通过 grep -E
选项配置为正则表达式过滤, 例如: grep -E "aaa|bbb"
.
部分指令封装为脚本, 已上传 Github
ADB(通用)
根据关键字查询安装的包:
adb shell pm list packages |grep 关键字
获取所有指定包名所有Activity:
adb shell dumpsys package 包名 |grep Activity
启动Activity:
adb shell am start -n '包名/Activity全路径'
结束指定包名应用的进程:
adb shell am force-stop `adb shell dumpsys activity activities|grep -E "Run #.*"|awk '{print $5}'|grep 关键字 |awk -F"/" '{print $1}'`
(root权限) 结束指定包名应用的进程:
adb shell ps -A |grep 包名 |awk '{print $2}' |while read -r pid; do `adb shell kill $pid`; done
-
屏幕尺寸信息:
- 查看尺寸:
adb shell wm size
- 设置尺寸:
adb shell wm size 宽x高
- 还原默认尺寸:
adb shell wm size reset
- 查看尺寸:
-
屏幕像素密度信息:
- 查看像素密度:
adb shell wm density
- 设置像素密度:
adb shell wm density 像素密度
- 还原默认像素密度:
adb shell wm density reset
- 查看像素密度:
Unix/Linux bash 适用
-
(Unix/Linux bash) 扫描指定端口并连接无线 ADB , 适用于有线 ADB 不稳定的情况
for i in {2..255}; do echo ">>> 192.168.1.$i"; cmd="adb connect 192.168.0.$i:端口"; eval $cmd &; sleep 0.5; done
注意: 可以修改端口前的ip地址以适应当前局域网
ADB Shell
- (Adb Shell)监听进程存活:
while true ; i=0 ; do while [ i -le 100 ] ; do let i++ ; echo -e "\n" ; done ; ps -A |head -n 1 ; ps -A |grep 关键字 ; sleep 1 ; done
- (Adb Shell)监听前台Activity:
while true ; do dumpsys activity activities |grep mResumedActivity |awk '{print $4}' ; sleep 1 ; done
- (Adb Shell)批量卸载包名包含关键字的应用
pm list packages |grep 关键字 |sed 's/^package://' |while read -r package; do echo "uninstalling $package"; eval "pm uninstall -k $package"; done