Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android
设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix
shell,可用来在模拟器或连接的设备上运行各种命令的访问。(摘自 developer.android.com)
开启和终止 adb 服务
打开多个 adb 程序时,会出现冲突问题。比如同时开启不同 IDE,在加上 QQ 、各种助手等,会占用 adb 端口。这时候需要重新启动服务。
1
2
|
adb kill-server # 杀掉进程
adb start-server # 开启服务
|
连接和断开
主要用于连接多个设备的时候,方便查看和管理。
1
2
3
4
|
adb shell # 自动连接
adb devices # 查看目前连接设备
adb -s XXXX shell # 当存在多个设备,需要制定连接设备名称。
adb disconnect # 断开所有连接的设备
|
无线调试
很多时候,我们并不方便在设备商调试,尤其是穿戴设备、智能硬件等。无线调试可以解决这个问题,当然如果 apk 太大,每次安装需要花费一定的时间,受限于无线的文件传输速度,不过打印日志是无线速度是戳戳有余了。
- 开启 USB 调试,打开 5555 端口
- 这一步有两种方式,一种是连接 USB 数据线,通过命令行开启;
1
2
|
adb tcpip 5555 # 开启 5555 端口
adb shell ip -f inet addr show wlan0 # 查看设备 IP
|
- 另外一种,如果机器可以获取 ROOT 权限,直接安装 wifidebu.apk(推荐)
- 如果你可以编译系统,在 init.rc 文件中加入对应脚本或代码开机开启 5555 端口也可以实现类似效果。
- 连接与断开设备
1
2
|
adb connect 192.168.1.XX
adb disconnect # 断开设备
|
Activity 相关
- 调试的时候可以快速确定当前 Activity 名称以便于在代码中定位到要修改的地方;
- 启动制定的 APP 和指定的 Activity 便于测试。
1
2
3
4
|
am start -n yourpackagename/.activityname # 启动指定 Activity
am start -n com.android.launcher3/.Launcher # 启动 Android 桌面
adb logcat -v time | grep ActivityManager # 查看 Activity 日志
adb shell dumpsys window w |grep \/ |grep name= #显示当前 Activity 名称
|
文件操作
主要用于传输文件到设备或者导出 Sqlite 数据库文件
1
2
3
|
adb pull /file ~/Desktop # 导出文件到电脑桌面
adb push file.txt /sdcard/ # 导入文件到设备 SDCard
mount -o rw,remount /system # 挂载 system 为可读写,用于修改系统文件内容
|
Package
显示 APP 信息
1
2
3
|
adb shell dumpsys package com_package_name # 显示指定包名 APP 信息
adb shell pm list packages # 显示所有安装 APP 列表
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1 # 根据包名启动应用
|
通过 apk 文件查看应用信息(aapt 在 SDK 中)
1
|
aapt dump badging <path-to-apk> | grep package:\ name
|
APK 安装、卸载与导出
1
2
3
|
adb shell pm path your-package-name # 导出 APK 安装文件
adb install path/name.apk # 安装 APK 文件
adb shell pm uninstall com.package.name # 卸载 APK
|
Logcat
1
2
|
adb logcat | grep AndroidRuntime # 查看崩溃日志
adb logcat -s "MainActivity" # 根据 TAG 过滤标签
|
为了能够更好的输出,推荐使用
logcat-color查看日志。类似还有
pidcat
设置 alias logcat = “path/logcat-color”
1
2
3
4
|
logcat -d | egrep '(MainActivity | PlayDialogFragment)' # 多个标签过滤日志
logcat -c #清除日志缓存
logcat-color > ~/Desktop/my.log # 输出日志到桌面
adb logcat -v time | grep "D\/Dalvik" # 查看dalvik信息,比如gc
|
系统相关
1
2
3
|
adb shell su -c 'svc power shutdown' # 关机
adb reboot #重启设备
adb reboot-bootloader # 重启进入 bootloader
|
显示系统信息
- dumpsys activity# 显示Activity信息
- dumpsys meminfo # 内存信息
- dumpsys package # package 信息
- dumpsys window #显示窗口信息
- dumpsys alarm #alarm 信息
Broadcast
1
|
am broadcast -a android.intent.action.BOOT_COMPLETED # 发送开机广播
|
驱动相关
1
2
|
lsmod #查看加载情况
insmod hello.ko # 加载驱动
|
相关文档推荐:
https://developer.android.com/studio/command-line/adb.html
No comments:
Post a Comment