Android 开发常用命令集合

98 阅读4分钟

注意,mac和linux下使用grep,window下使用需要将grep换成findstr

AMS相关

Activity相关

AMS所有信息adb shell dumpsys activity
Activity相关信息adb shell dumpsys activity activities
查看当前前台焦点页面adb shell dumpsys activity a | grep mFocusedApp
查看当前可见页面adb shell dumpsys activity a | grep mResumedActivity
查看top页面的详细信息adb shell dumpsys activity top-resumed
查看当前容器层级信息adb shell dumpsys activity containers
上次启动的Activity信息adb shell dumpsys activity starter
查看SleepToken信息adb shell dumpsys activity processes | grep SleepToken
Service组件信息adb shell dumpsys activity services
广播组件信息adb shell dumpsys activity broadcasts
广播统计信息adb shell dumpsys activity broadcast-stats
ContentProvider组件信息adb shell dumpsys activity providers
PendingIntent信息adb shell dumpsys activity intents
查看当前系统耗时消息(MIUI)adb shell dumpsys activity loopers
查看binder代理相关信息adb shell dumpsys activity binder-proxies
查看用户空间相关信息adb shell dumpsys activity users
权限相关信息adb shell dumpsys activity permissions

进程相关

  1. 在app进程启动之前断点

作用命令
开启调试模式adb shell am set-debug-app -w pkn
清除调试模式adb shell am clear-debug-app -w pkn
  1. 进程信息相关

查看进程所有信息adb shell dumpsys activity processes
查看某个进程信息adb shell dumpsys activity p processName
查看ams进程lru列表adb shell dumpsys activity lru
  1. 进程查杀相关

miui的保活名单查看adb shell dumpsys ProcessManager
lowmemorykiller查杀级别数量记录adb shell dumpsys activity lmk
查看进程死亡记录adb shell dumpsys activity exit-info
强杀进程adb shell am force-stop pkn
普通查杀进程adb shell kill -9 pkn
  1. 进程优先级查看

查看进程的procState和adjadb shell dumpsys activity oom

其它

查看桌面的widgetadb shell dumpsys appwidget
打开AMS的debug开关adb shell dumpsys activity loggingadb shell am logging enable-text XXX

WMS相关

基本命令

查看窗口的信息adb shell dumpsys window w
查看UI绘制的各个层级信息adb shell dumpsys SurfaceFlinger
查看当前焦点窗口adb shell dumpsys activity a | grep mCurrentFocus

Debug log 打开

查看可打开的debug logadb shell dumpsys window logging
打开对应的debug log开关adb shell wm logging enable-text groups

PMS相关

列出相关package信息

列出所有的应用adb shell pm list package
列出系统应用adb shell pm list package -s
列出第三方应用adb shell pm list package -3
列出应用包名及对应的apk名及存放位置adb shell pm list package -f
列出应用包名及其安装来源adb shell pm list package -i
只显示disabled包名adb shell pm list package -d

其它

disable 某个appadb shell pm disable pkn
disbale某个组件adb shell pm disable com.google.android.setupwizard com.google.android.setupwizard.util.WebDialogActivity
查看所有的权限组adb shell pm list permission-groups

日常开发相关

编译相关

刷机相关

查看当前连接设备adb devicesfastboot devices(fastboot模式下)
进入bootloader模式刷机adb reboot bootloader./flash_all.sh
进入fastboot模式push imageadb reboot fastbootadb flash super super.img
进入recovery模式adb reboot recovery

adb查看log

查看所有log(级别大于Warning)adb logcat -b all *:W
查看event logadb logcat -b events
查看system logadb logcat -v time
查看main logadb logcat -b main
抓取完整bugreportadb bugreport
查看crashadb logcat -b crash

查看手机相关属性

变量命令示例
查看android first apiadb shell getprop ro.product.first_api_level
查看设备上的输入法adb shell ime list -s
Build.DEVICEadb shell getprop ro.product.devicedipper
Build.VERSION.RELEASEadb shell getprop ro.build.version.release12
Build.MODELadb shell getprop ro.product.model
Build.VERSION.INCREMENTALadb shell getprop ro.build.version.incremental版本号
Build.VERSION.SDK_INTadb shell getprop ro.build.version.sdk31
Build.TYPEadb shell getprop ro.build.typeuser
Build.TAGSadb shell getprop ro.build.tagstest-keys

开发调试相关

手机挂载// 第一次执行如下两条adb disable-verityadb reboot// 正常只需执行下面adb rootadb remount
查看某个apk的详细信息aapt dump badging apkName

其它

内存信息查看

查看ams内存信息process+oom+category+totaladb shell dumpsys meminfo
输出指定包名的进程,可能包含多个进程adb shell dumpsys meminfo --package "packagename"
输出指定pid的某一进程adb shell dumpsys meminfo "pid"
查看手机详细的内存信息adb shell cat /proc/meminfo
查看cpu和内存占用情况adb shell top

Binder相关

查看binder transaction信息adb shell cat /sys/kernel/debug/binder/transaction_log

稳定性相关

查看上次anr信息adb shell dumpsys activity lastanr
查看上次anr traces信息adb shell dumpsys activity lastanr-traces

Power相关

让设备进入idle状态adb shell dumpsys battery unplugadb shell dumpsys deviceidle step 执行四遍
查看Alarm相关信息adb shell dumpsys alarm
查看电池信息adb shell dumpsys battery
获取当前系统的亮度值adb shell settings get system screen_brightness
更改亮度值adb shell settings put system screen_brightness 150
查看对应的jobadb shell dumpsys jobscheduler pkg
触发jobadb shell cmd jobscheduler run -f pkgName jobId

底层相关

查看sensor相关信息adb shell dumpsys sensorservice
查看内核logadb shell dmesg -w
抓取native进程tracesadb shell debuggerd -b pid

Selinux相关

放开权限校验adb shell setenforce 0
恢复权限校验adb shell setenforce 1
编译该模块make selinux_policy -j4

录屏截图相关

截图adb shell screencap -p /sdcard/screen.png
录屏(指定时间为10s)adb shell screenrecord --time-limit 10 sdcard/record.mp4