常用 ADB

  1. 查看设备屏幕分辨率、density
adb shell dumpsys displays
adb shell wm size
adb shell wm density
  1. 查看CPU 信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
  1. 查看栈顶的activity
# 查看appInfo
adb shell dumpsys package packageName

# 打印顶层Activity信息
adb shell dumpsys activity top
adb shell dumpsys activity top | findstr ACTIVITY

# 查看当前界面的Activity
adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
# 根据上一行查询出的package,查找该App的launcher Activity
adb shell "dumpsys package com.gitvdemo.video | grep -A 4 'MAIN'"

# 查看当前界面的Fragment
adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"
  1. 查看所有在运行的任务栈
adb shell dumpsys activity activities

# 查看Activity任务栈(仅适用android11以及以上)
adb shell "dumpsys activity activities | grep '* ActivityRecord{'"
  1. 查看正在运行的 Services
adb shell dumpsys activity -p com.xx.xxx
#指定 package 的所有state
adb shell dumpsys activity package com.xx.xxx

adb shell dumpsys activity -p com.xx.xxx s[ervices]
adb shell dumpsys activity b[roadcasts]  com.xx.xxx
#service state
adb shell dumpsys activity s[ervices] [COMP_SPEC ...]
#service client-side state
adb shell dumpsys activity service [COMP_SPEC]
  1. 查看所有的系统service
adb shell service list
  1. 获取通知信息
adb shell dumpsys notification
  1. 获得手机里面某个apk的应用信息、版本信息
adb shell dumpsys package <packagename>

adb shell dumpsys deviceidle whitelist
  1. 查看wifi密码,root权限
adb shell cat /data/misc/wifi/*.conf
  1. 读取系统的各种文件配置信息,比如/data/anr/traces.txt
adb shell cat /system/build.prop
adb shell getprop

比如:

  • adb shell getprop ro.product.model //获取设备型号
  • adb shell getprop ro.build.version.release //系统版本
  • adb shell getprop ro.product.board //CPU型号
  • adb shell getprop ro.serialno //序列号
  1. 列出所有安装的APP
adb shell pm list packages
adb shell pm list packages -s     //系统应用
adb shell pm list packages -3     //第三方应用
adb shell pm list packages | grep qq   //过滤查找qq应用
  1. 查看设备连接IP地址
adb shell ifconfig wlan0
adb shell netcfg
  1. 关闭USB debug模式
adb shell settings put global adb_enabled 0

打开的话,[设置」-「开发者选项」-「Android 调试」

  1. ANDROID_ID
adb shell settings get secure android_id
  1. IMEI
    Android 4.4 : adb shell dumpsys iphonesubinfo
    Android 5.0+: adb shell service call iphonesubinfo 1
    windows执行
adb shell "service call iphonesubinfo 1 | grep -o '[0-9a-f]\{8\} ' | tail -n+3 | while read a; do echo -n \\u${a:4:4}\\u${a:0:4}; done"

linux执行

adb shell 'service call iphonesubinfo 1 | grep -o "[0-9a-f]\{8\} " | tail -n+3 | while read a; do echo -n "\u${a:4:4}\u${a:0:4}"; done'
  1. 模拟按键和输入

adb shell input --help

  • 电源键: adb shell input keyevent 26
  • HOME 键: adb shell input keyevent 3
  • 返回键: adb shell input keyevent 4
  • 点亮屏幕: adb shell input keyevent 224
  • 熄灭屏幕: adb shell input keyevent 223
  • 输入文本: adb shell input text xxxxx
keycode 含义
3 HOME 键
4 返回键
5 打开拨号应用
6 挂断电话
24 增加音量
25 降低音量
26 电源键
27 拍照(需要在相机应用里)
64 打开浏览器
82 菜单键
85 播放/暂停
86 停止播放
87 播放下一首
88 播放上一首
122 移动光标到行首或列表顶部
123 移动光标到行末或列表底部
126 恢复播放
127 暂停播放
164 静音
176 打开系统设置
187 切换应用
207 打开联系人
208 打开日历
209 打开音乐
210 打开计算器
220 降低屏幕亮度
221 提高屏幕亮度
223 系统休眠
224 点亮屏幕
231 打开语音助手
276 如果没有 wakelock 则让系统休眠
  1. 截屏
adb exec-out screencap -p >  C:\Users\Administrator\Desktop\face\aaa.png
  1. adb shell am start
#启动activity component
adb shell am start -n com.xx.xxx/com.xx.xxx.xxActivity

# 启动 系统  <设置>
adb shell am start -a  android.settings.SETTINGS

# 1:打开 开发者选项 0: 关闭开发者选项
adb shell settings put global development_settings_enabled 1

# -a action_str -d uri
# 开发者模式 设置 
adb shell am start -a android.settings.APPLICATION_DEVELOPMENT_SETTINGS 
# package为com.xx.xxx的详细设置 
adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:com.xx.xxx

#example:权限管理设置
adb shell am start -a android.settings.action.MANAGE_OVERLAY_PERMISSION -d package:com.xx.xxx

# 电池优化 白名单
adb shell am start -a android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS
# 查看电池优化白名单
adb shell dumpsys deviceidle whitelist

#存储空间管理
adb shell am start -a android.os.storage.action.MANAGE_STORAGE

# 启动service 
adb shell am startservice -n com.some.package/.someService
  1. adb shell am broadcast 模拟广播
    adb shell am broadcast

[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]

adb shell am broadcast -a android.intent.action.EDIT --es test_string  "this is test string" --ei test_int 100 --ez test_boolean true

//刷新 媒体库,注意:有时必须指定 {file_name},否则有时无效
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/Camera/{file_name}

// 递归 刷新 媒体库
adb shell "find /sdcard/Video/ | while read f; do \ 
    am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE \ 
    -d \"file://${f}\"; done" 
  1. adb shell am kill
/* 关闭package指定的应用程序 */
adb shell am force-stop com.some.package

/* kill与package相关联的所有process */
adb shell am kill com.some.package

/* 杀死所有后台进程process */
adb shell am kill-all 
  1. 查看APP内存限制
/* 单个APP heap size限制 */
adb shell getprop | findstr dalvik.vm.heapgrowthlimit
adb shell cat /system/build.prop | findstr dalvik.vm
  1. Packages.xml应用信息
adb root
# /data/system/ 
adb  pull /data/system/packages.xml C:\Users\Administrator\Desktop
  1. backup备份
# -apk 应用和数据 -noapk 只有数据
adb backup -f "F:\*.ab" -apk com.xx.xx

#还原
adb restore f:\*.ab
  1. 查看网络
    ping[1]
adb shell
# 查看网络接口 wlan0:无线网络接口 rmnet_data:移动网络接口
ls /sys/class/net/

#查看指定网络接口的配置
ifconfig rmnet_data0
#关闭指定网口
ifconfig rmnet_data0 down
#打开指定网口
ifconfig rmnet_data0 up

#查看所有网口的IP地址
ip -f inet  addr
#查看指定网口的IP地址
ip -f inet addr show wlan0

#ping[^note1] 一个地址  4此次
ping -c 4 baidu.com

#查看DNS
getprop | grep dns
#修改DNS,使用上面getprop获得的DNS名称,设置方式飞行模式、开关机失效
setprop net.dns1 223.
  1. 控制台文件描述符stdout和stderr
adb shell stop
adb setprop log.redirect-stdio true
adb shell start
  1. 普通操作
#拨打电话
adb shell am start -a android.intent.action.CALL tel:10010
#打开网页
adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com
  1. Settings
adb shell settings help
#是否自动获取时间
adb shell settings get global auto_time
settings
  1. 电源、网络、USB控制
adb shell svc
#关机
adb shell svc power shutdown
#关闭 移动数据
adb shell svc data disable
image.png
  1. 获取网口MAC地址
adb shell

cd sys/class/net
#根据networkInterface进入相应的网络接口
cat eth0/address
cat wlan0/address
  1. 查看进程线程所在的CPU核心
    ps的命令参数:-t -x,-P,-p,-c [pid|name]

    • -t显示进程下的线程列表
    • -x 显示进程耗费的用户时间和系统时间,单位s
    • -P 显示调度策略,通过是bg or fg ,当获取失败将会un和er比之前打印的内容多出了一列PCY,表示进程的调度等级
      +-p 显示进程的优先级和nice等级
    • -c 显示进程耗费的CPU时间
    • [PID]过滤指定进程PID,[name]过滤指定进程NAME
    adb shell ps -P -t -c -x PID
    

    MTK:

    # 找出自己APP进程的PID, 关键字模糊匹配app的packageName
    adb shell ps | findstr "PID player"
    #查看help,有哪些fields可以被打印
    adb shell ps --help
    # -T  显示线程名, -o 执行显示哪些fields,  我们要显示CPU
    adb shell ps -T -o UID,PID,CPU,%CPU,%MEM,NI,PSR,TIME,CMD -p 2912
    
    • CPU : 线程、进程在哪个cpu processor上执行
    • %CPU: 使用CPU时间的百分比
    • %MEM: 占用物理内存的百分比
    • NI: 线程的nice值,对应线程的优先级设置(static 19 to -20)
    • CMD: 线程名称
      ps-cpu
  2. 修改系统时间
    Windows (PowerShell)

    #Windows (PowerShell)
    $currentDate = Get-Date -Format "MMddHHmmyyyy.ss"
    adb shell "date $currentDate;am broadcast -a android.intent.action.TIME_SET" 
    

    查看Android系统时间

    date +"%Y-%m-%d %H:%M:%S"
    

    批处理

    set dateYYYY=%date:~0,4%
    set dateMM=%date:~5,2%
    set dateDD=%date:~8,2%
    set timeHH=%time:~0,2%
    set timeMM=%time:~3,2%
    set timeSS=%time:~6,2%
    
    adb shell date %dateMM%%dateDD%%timeHH%%timeMM%%dateYYYY%.%timeSS%
    adb shell am broadcast -a android.intent.action.TIME_SET
    
  3. tasksetCPU绑定

    #查看pid 4069 
    taskset -p 4069
    
    #把 我们的pid 加入到进程组
    echo 347 > /dev/cpuset/foreground/task   
    #修改进程组的background的CPU调度策略  
    echo 0-3 > /dev/cpuset/background/cpus
    
    taskset
  4. 查看指定进程的内存使用

    adb shell dumpsys meminfo $package_name or $pid
    
  5. 查看系统内核

    uname -a
    
  6. 获取IP地址

    adb shell ip route | awk '{print $9}'
    
  7. adb授予权限

     adb shell pm grant com.ts.player android.permission.READ_EXTERNAL_STORAGE
     adb shell pm grant com.ts.player android.permission.WRITE_EXTERNAL_STORAGE
    
  8. 查看媒体提取器

     adb shell dumpsys media.extractor
    
  9. 禁止弹出 沉浸式提示窗口
    Viewing full screen. To exit, swipe down from the top

    # 查看 secure namespace 下所有的值
    adb shell settings list secure
    # 是否已确认过
    adb shell settings list secure | findstr immersive
    # 删除此值
    adb shell settings delete secure immersive_mode_confirmations
    # 查看此值
    adb shell settings secure get immersive_mode_confirmations
    # 修改此值 disable 弹窗
    adb shell settings put secure immersive_mode_confirmations confirmed
    
  10. 修改文件访问权限 chmod

      # 修改文件权限
      # chmod [option] filename
    
      # 给文件 加 运行 权限
      chmod ugo+x
    
      # 可以用二进制位表示:3个字节,每个字节代表一个用户组,每个字节的后3位由高到低代表 r、w、x,读写权限 rw= 100 | 010 = 110 = 6
      chmod 777 
    

    📝[option]表示各种权限选项:

    • r(或4100):读取权限
    • w(或2010):写入权限
    • x(或1001):执行权限

    📝还可以指定权限的获取者,三个部分的左中右:

    • u:文件所有者
    • g:文件所有者所在的组的用户
    • o:其他组的用户

    权限的授予可采用操作符“+”,而“-”表示收回权限:

    # 给其他组用户赋予read权限
    chmod o+r
    
  11. 此用户无法使用开发者选项

    adb shell settings put secure user_setup_complete 1
    adb shell settings put global device_provisioned 1
    

参考1
参考2
https://www.cnblogs.com/JianXu/p/5161179.html
https://github.com/onlyloveyd/awesome-adb


  1. Linux 常用ping命令详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容