Total Pageviews

Tuesday 6 March 2018

Android的调试工具-adb的常用命令

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 太大,每次安装需要花费一定的时间,受限于无线的文件传输速度,不过打印日志是无线速度是戳戳有余了。
  1. 开启 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. 连接与断开设备
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