- 查看设备屏幕分辨率、density
adb shell dumpsys displays
adb shell wm size
adb shell wm density
- 查看CPU 信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
- 查看栈顶的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"
# 查看当前界面的Fragment
adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"
- 查看所有在运行的任务栈
adb shell dumpsys activity activities
# 查看Activity任务栈(仅适用android11以及以上)
adb shell "dumpsys activity activities | grep '* ActivityRecord{'"
- 查看正在运行的 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]
- 查看所有的系统service
adb shell service list
- 获取通知信息
adb shell dumpsys notification
- 获得手机里面某个apk的应用信息、版本信息
adb shell dumpsys package
- 查看wifi密码,root权限
adb shell cat /data/misc/wifi/*.conf
- 读取系统的各种文件配置信息,比如/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
//序列号
- 列出所有安装的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应用
- 查看设备连接IP地址
adb shell ifconfig wlan0
adb shell netcfg
- 关闭USB debug模式
adb shell settings put global adb_enabled 0
打开的话,[设置」-「开发者选项」-「Android 调试」
- ANDROID_ID
adb shell settings get secure android_id
- 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'
- 模拟按键和输入
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 则让系统休眠 |
- 截屏
adb exec-out screencap -p > C:\Users\Administrator\Desktop\face\aaa.png
- adb shell am start
#启动activity component
adb shell am start -n com.xx.xxx/com.xx.xxx.xxActivity
# -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 am start -a android.os.storage.action.MANAGE_STORAGE
# 启动service
adb shell am startservice -n com.some.package/.someService
- adb shell am broadcast 模拟广播
adb shell am broadcast
[-a
]
[-d]
[-t]
[-c[-c ] ...]
[-e|--es...]
[--ez...]
[-e|--ei...]
[-n]
[-f] [ ]
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"
- 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
- 查看APP内存限制
/* 单个APP heap size限制 */
adb shell getprop | findstr dalvik.vm.heapgrowthlimit
adb shell cat /system/build.prop | findstr dalvik.vm
-
Packages.xml
应用信息
adb root
# /data/system/
adb pull /data/system/packages.xml C:\Users\Administrator\Desktop
- backup备份
# -apk 应用和数据 -noapk 只有数据
adb backup -f "F:\*.ab" -apk com.xx.xx
#还原
adb restore f:\*.ab
- 查看网络
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.
- 控制台文件描述符stdout和stderr
adb shell stop
adb setprop log.redirect-stdio true
adb shell start
- 普通操作
#拨打电话
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
- Settings
adb shell settings help
#是否自动获取时间
adb shell settings get global auto_time
- 电源、网络、USB控制
adb shell svc
#关机
adb shell svc power shutdown
#关闭 移动数据
adb shell svc data disable
- 获取网口MAC地址
adb shell
cd sys/class/net
#根据networkInterface进入相应的网络接口
cat eth0/address
cat wlan0/address
-
查看进程线程所在的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
: 线程名称
-
-
修改系统时间
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
-
taskset
CPU绑定#查看pid 4069 taskset -p 4069 #把 我们的pid 加入到进程组 echo 347 > /dev/cpuset/foreground/task #修改进程组的background的CPU调度策略 echo 0-3 > /dev/cpuset/background/cpus
-
查看指定进程的内存使用
adb shell dumpsys meminfo $package_name or $pid
-
查看系统内核
uname -a
-
获取IP地址
adb shell ip route | awk '{print $9}'
-
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
-
查看媒体提取器
adb shell dumpsys media.extractor
禁止弹出 沉浸式提示窗口
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
参考1
参考2
https://www.cnblogs.com/JianXu/p/5161179.html
-
Linux 常用ping命令详解 ↩