95ad3a053b204645009e7893df9f1dcb
Android adb 调试工具常用命令


Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell,可用来在模拟器或连接的设备上运行各种命令的访问。(摘自 developer.android.com)

<!--more-->

开启和终止 adb 服务

打开多个 adb 程序时,会出现冲突问题。比如同时开启不同 IDE,在加上 QQ 、各种助手等,会占用 adb 端口。这时候需要重新启动服务。

adb kill-server # 杀掉进程
adb start-server # 开启服务

连接和断开

主要用于连接多个设备的时候,方便查看和管理。

adb shell # 自动连接
adb devices # 查看目前连接设备
adb -s XXXX shell # 当存在多个设备,需要制定连接设备名称。
adb disconnect # 断开所有连接设备

无线调试

很多时候,我们并不方便在设备商调试,尤其是穿戴设备、智能硬件等。无线调试可以解决这个问题,当然如果 apk 太大,每次安装需要花费一定的时间,受限于无线的文件传输速度,不过打印日志是无线速度是戳戳有余了。

  1. 开启 USB 调试,打开 5555 端口
    • 这一步有两种方式,一种是连接 USB 数据线,通过命令行开启;
adb tcpip 5555 # 开启 5555 端口
adb shell ip -f inet addr show wlan0 # 查看设备 IP
  • 另外一种,如果机器可以获取 ROOT 权限,直接安装 wifidebu.apk(推荐)
  • 如果你可以编译系统,在 init.rc 文件中加入对应脚本或代码开机开启 5555 端口也可以实现类似效果。
  1. 连接与断开设备
adb connect 192.168.1.XX 
adb disconnect # 断开设备

Activity 相关

  • 调试的时候可以快速确定当前 Activity 名称以便于在代码中定位到要修改的地方;
  • 启动制定的 APP 和指定的 Activity 便于测试。
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 数据库文件

adb pull /file ~/Desktop # 导出文件到电脑桌面
adb push file.txt /sdcard/ # 导入文件到设备 SDCard
mount -o rw,remount /system # 挂载 system 为可读写,用于修改系统文件内容

Package

显示 APP 信息

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 中)

aapt dump badging <path-to-apk> | grep package:\ name

APK 安装、卸载与导出

adb shell pm path your-package-name # 导出 APK 安装文件
adb install path/name.apk # 安装 APK 文件
adb shell pm uninstall com.package.name # 卸载 APK 

Logcat

adb logcat | grep AndroidRuntime # 查看崩溃日志
adb logcat -s "MainActivity" # 根据 TAG 过滤标签

为了能够更好的输出,推荐使用 logcat-color查看日志。类似还有 pidcat

设置 alias logcat = “path/logcat-color”

logcat -d | egrep '(MainActivity | PlayDialogFragment)' # 多个标签过滤日志
logcat -c #清除日志缓存
logcat-color > ~/Desktop/my.log # 输出日志到桌面
adb logcat -v time | grep "D\/Dalvik" # 查看dalvik信息,比如gc

系统相关

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

am broadcast -a android.intent.action.BOOT_COMPLETED # 发送开机广播

驱动相关

lsmod #查看加载情况
insmod hello.ko # 加载驱动

相关文档推荐:https://developer.android.com/studio/command-line/adb.html

© 著作权归作者所有
这个作品真棒,我要支持一下!
- 分享效率工具和生活方式,通过工具和产品提高生活品质; - NAS 解决方案,打造完美的跨平台文件备份、下载、分...
0条评论
top Created with Sketch.