调试的时候,需要启动应用或者发送广播,每个操作都写代码执行费时费力,用命令行操作的话就方便多了。
记录下常用的一些操作。
串口环境直接敲命令,adb 环境需要在命令前加上 adb shell
。
adb命令行调试技巧
1.am类
am help
可查看完整内容。
1.1 启动Activity
根据目标 Activity 定义的 action 启动,
am start -a activity_action
根据完整的包名类名启动,
am start -n 包名/类名
打开某个应用组件并携带参数
am start -n com.test.tv/.MainActivity -a android.intent.action.VIEW -c android.intent.category.LAUNCHER --es change_source HDMI2 --ei input_type -1
打开 com.test.tv/.MainActivity 组件,
action 是 android.intent.action.VIEW ,
category 是 android.intent.category.LAUNCHER ,
携带 string 类型的参数 , key 是 change_source ,value 是 HDMI2 ,
携带 int 类型的参数 , key 是 input_type ,value 是 -1
1.2 启动service
根据目标service定义的 action 启动,
am startservice -a service_action
根据完整的包名类名启动,
am startservice -n 包名/类名
1.3 发送广播
发送广播,broadcast_action 就是代码里广播的 action ,
am broadcast -a broadcast_action
发送广播,并携带数据
adb shell am broadcast -a broadcast_action --ei state 1
adb shell am broadcast -a broadcast_action --ei state 0
1.4 强制停止某个应用
强制停止某个应用,packageName 是应用的包名
am force-stop packageName
2.pm类
2.1 列出系统应用
列出所有应用,
pm list package
列出所有应用,并显示路径,显示是谁安装的
pm list package -f -i
列出系统应用,
pm list package -s
列出第三方应用,
pm list package -3
2.2 安装应用
安装指定路径的应用,
pm install /mnt/sdcard/my.apk
覆盖安装已安装的应用,上面的命令加个 -r 参数
pm install -r /mnt/sdcard/my.apk
2.3 卸载应用
pm uninstall pkgname
2.4 清理应用缓存
清理应用缓存,和设置里清理应用数据的功能一样。
pm clear pkgname
2.5 获取特权应用的 privapp-permissions 权限
参考 Android 特权应用 privapp-permissions 权限解读
pm get-privapp-permissions TARGET-PACKAGE
3.input类
3.1 模拟发送按键
模拟发送某个按键,
input keyevent KEYCODE_BACK
input keyevent KEYCODE_HOME
模拟发送多个按键,是依次发送的,
input keyevent KEYCODE_8 KEYCODE_2 KEYCODE_0 KEYCODE_2
3.2 模拟输入文本信息
需要输入信息的时候执行,
input text 123456789
3.3 模拟点击
模拟点击 (100, 200)坐标
input tap 100 200
tip :坐标系原点 (0, 0)是屏幕左上角,往右是 X 轴正方向,往下是 Y 轴正方向。
3.4 模拟滑动
模拟从(100,100)滑动到(300,300)
input swipe 100 100 300 300
3.5 模拟长按
其实是模拟滑动的引申,滑动起点和终点是一样的,
模拟从(100,100)滑动到(100,100),用时 3000 毫秒
input swipe 100 100 100 100 3000
4.dumpsys
dumpsys 命令很强大,可以看系统的很多信息。
4.1 查看应用栈
可以查看应用栈,会列出应用栈和栈内信息
dumpsys activity activities
4.2 查看当前栈顶应用
查看当前栈顶应用,也就是前台应用。从上一条命令衍生的,
dumpsys activity activities | grep mResumedActivity
通过 window 判断,
dumpsys window windows | grep mFocusedApp
在安卓 13 上 ,前两个失效,可以用这个,
dumpsys activity activities | grep topResumedActivity
4.3 查看应用信息
查看某个应用的信息,可以看到应用的包名、类名、action 、版本号、支持的SDK版本、安装路径等信息
dumpsys package packageName
4.4 查看电池信息
dumpsys battery
5.查看、修改 Settings 的值
参考 Android 在线查看、修改 Settings 等值的方法
列出 android.provider.Settings.Global 下的值
settings list global
修改 Settings.Global 下 adb_enabled 的值,
效果同 android.provider.Settings.Global.putInt(getContentResolver(), Settings.Global.ADB_ENABLED, 0);
settings put global adb_enabled 0
6.查看系统信息
获取系统时间
date
查看 kernel 版本
cat /proc/version
查看有线mac
cat sys/class/net/eth0/address
查看无线mac
cat sys/class/net/wlan0/address
未完待续~~