Android adb命令行调试技巧

9 篇文章 0 订阅

调试的时候,需要启动应用或者发送广播,每个操作都写代码执行费时费力,用命令行操作的话就方便多了。

记录下常用的一些操作。

串口环境直接敲命令,adb 环境需要在命令前加上 adb shell

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

未完待续~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值