进行 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 用法大全》