ADB实用命令合辑

说明

开发过程中经常遇到一些小问题需要用到adb命令或者shell命令, 但是不常用所以经常会忘记, 每次都要查挺麻烦的, 所以在这里记录一下
命令太多行也麻烦, 所以尽可能压缩成一行, 大家也可以分享一下什么神奇的指令, 丰富这个合辑.

关于压缩成一行有一个小技巧:
while true; do 命令1; 命令2; ...; break; done
这个方式理论上可以把所有命令压缩成一行.

通过 grep 命令匹配的关键字, 可以通过 grep -E 选项配置为正则表达式过滤, 例如: grep -E "aaa|bbb".

部分指令封装为脚本, 已上传 Github

ADB(通用)

  1. 根据关键字查询安装的包:
    adb shell pm list packages |grep 关键字

  2. 获取所有指定包名所有Activity:
    adb shell dumpsys package 包名 |grep Activity

  3. 启动Activity:
    adb shell am start -n '包名/Activity全路径'

  4. 结束指定包名应用的进程:
    adb shell am force-stop `adb shell dumpsys activity activities|grep -E "Run #.*"|awk '{print $5}'|grep 关键字 |awk -F"/" '{print $1}'`

  5. (root权限) 结束指定包名应用的进程:
    adb shell ps -A |grep 包名 |awk '{print $2}' |while read -r pid; do `adb shell kill $pid`; done

  6. 屏幕尺寸信息:

    • 查看尺寸: adb shell wm size
    • 设置尺寸: adb shell wm size 宽x高
    • 还原默认尺寸: adb shell wm size reset
  7. 屏幕像素密度信息:

    • 查看像素密度: adb shell wm density
    • 设置像素密度: adb shell wm density 像素密度
    • 还原默认像素密度: adb shell wm density reset

Unix/Linux bash 适用

  1. (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

  1. (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
  2. (Adb Shell)监听前台Activity:
    while true ; do dumpsys activity activities |grep mResumedActivity |awk '{print $4}' ; sleep 1 ; done
  3. (Adb Shell)批量卸载包名包含关键字的应用
    pm list packages |grep 关键字 |sed 's/^package://' |while read -r package; do echo "uninstalling $package"; eval "pm uninstall -k $package"; done
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。