进行 Android 开发时,不免要用 adb 命令进行调试,一直都是参考《GitHub - mzlogin/awesome-adb: ADB Usage Complete / ADB 用法大全》,但是很多没用到,为避免不必要的查询时间,就整理出常用的 adb 命令行。

// 各种命令行工具,都首倡 help,一个 help 有什么功能都可以查
adb help
// 启动 adb 服务
adb start-server

// 停止 adb 服务
adb kill-server
// 查看已连接设备/模拟器
adb devices
// 安装应用
adb install [-可选] xxx.apk
[-r:允许覆盖安装,既强制安装]
[-d:允许降级覆盖安装]
[-g:允许授予所有运行时权限安装]

// 卸载应用
adb uninstall [-k] <packagename>
[-k:卸载应用但保留数据和缓存目录]
// 查看应用列表
adb shell pm list packages [-可选]
[-s:只显示系统应用]
[-3:只显示第三方应用]
// 查看应用详细信息
adb shell dumpsys package <packagename>
// 复制粘贴文本到 Android 设备
adb shell input text 1234567890
// 实时记录日志【Ctrl+C停止记录】
adb logcat -v time > C:\log.txt
// 加上线程号
adb logcat -v threadtime > C:\log.txt
// 通过setprop动态调整Log输出级别:setprop log.tag.<YOUR_LOG_TAG> <LEVEL>
// 需要注意的是通过这种setprop方式的修改,机器掉电,Level设置就会失效
// 通过ADB方式设置并使其生效的方式如下:adb shell setprop log.tag.<YOUR_LOG_TAG> <LEVEL>,重启APP???
adb shell setprop log.tag.zzq VERBOSE
// 截图保存到电脑 D 盘
adb exec-out screencap -p > d:/sc.png

可以搞一个.bat文件,直接点击运行:《利用bat命令实现adb截屏以及保存》

@echo off
color a
chcp 65001
title 截屏
echo=
rem 按照时间拼接文件名称,因为小时可能只有一位,因此_后面的小时只有一位数.
set YYYYmmdd=%date:~3,4%%date:~8,2%%date:~11,2%
set hmmss=%time:~1,1%%time:~3,2%%time:~6,2%
set "filename=%YYYYmmdd%_%hmmss%.png"
rem 截屏保存在手机的位置
set screen=/sdcard/screen.png
rem adb截屏
adb shell screencap -p %screen%
rem 指定文件夹名称
set dir=C:\Users\ZZQ\Desktop\
rem 创建文件夹
if not exist %dir% (    
    md %dir%
) 
rem adb导出文件
adb pull %screen% %dir%%filename%
echo=
echo=
echo 截屏目录:%dir%   截屏图片:%filename%
echo=
echo=
pause
// 查看设备屏幕分辨率 px * px
adb shell wm size

// 修改设备屏幕分辨率,可用于测试
adb shell wm size 720x1024

// 恢复设备原分辨率
adb shell wm size reset

// 查看设备屏幕密度 dpi
adb shell wm density

// 修改设备屏幕密度,可用于测试
adb shell wm density 160

// 恢复设备原密度
adb shell wm density reset
// 查看前台 Activity
adb shell dumpsys "activity activities | grep mFocusedActivity"
// 查看正在运行的 Services
adb shell dumpsys activity services [<packagename>]

PS: packagename 参数不是必须的,指定 packagename 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。packagename 不一定要给出完整的包名,比如运行 adb shell dumpsys activity services org.mazhuang,那么包名 org.mazhuang.demo1、org.mazhuang.demo2 和 org.mazhuang123 等相关的 Services 都会列出来。

// 发送广播,可用于测试
adb shell am broadcast [-可选] <INTENT>

// 可以向所有组件广播,也可以只向指定组件广播。
// 例如,向所有组件广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
// 又例如,只向 com.xxx.receiver/.BootReceiver 广播 SCREEN_ON:
adb shell am broadcast -a android.intent.action.SCREEN_ON -n com.xxx.receiver/.BootReceiver

INTENT

触发时机

android.net.conn.CONNECTIVITY_CHANGE

网络连接发生变化

android.intent.action.SCREEN_ON

屏幕点亮

android.intent.action.SCREEN_OFF

屏幕熄灭

android.intent.action.BATTERY_LOW

电量低,会弹出电量低提示框

android.intent.action.BATTERY_OKAY

电量恢复了

android.intent.action.BOOT_COMPLETED

设备启动完毕

android.intent.action.DEVICE_STORAGE_LOW

存储空间过低

android.intent.action.DEVICE_STORAGE_OK

存储空间恢复

android.intent.action.PACKAGE_ADDED

安装了新的应用

android.net.wifi.STATE_CHANGE

WiFi 连接状态发生变化

android.net.wifi.WIFI_STATE_CHANGED

WiFi 状态变为启用/关闭/正在启动/正在关闭/未知

android.intent.action.BATTERY_CHANGED

电池电量发生变化

android.intent.action.INPUT_METHOD_CHANGED

系统输入法发生变化

android.intent.action.ACTION_POWER_CONNECTED

外部电源连接

android.intent.action.ACTION_POWER_DISCONNECTED

外部电源断开连接

android.intent.action.DREAMING_STARTED

系统开始休眠

android.intent.action.DREAMING_STOPPED

系统停止休眠

android.intent.action.WALLPAPER_CHANGED

壁纸发生变化

android.intent.action.HEADSET_PLUG

插入耳机

android.intent.action.MEDIA_UNMOUNTED

卸载外部介质

android.intent.action.MEDIA_MOUNTED

挂载外部介质

android.os.action.POWER_SAVE_MODE_CHANGED

省电模式开启


参考文章:

GitHub - mzlogin/awesome-adb: ADB Usage Complete / ADB 用法大全