You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
awesome-adb/README.md

7.5 KiB

Adb 用法大全

Adb,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 手机玩家的好玩具。

目录

设备连接管理

查询已连接设备/模拟器

命令:

adb devices

输出示例:

List of devices attached
cf264b8f	device
emulator-5554	device

该输出显示当前已经连接了两台设备/模拟器,cf264b8femulator-5554 分别是它们的 SN。从 emulator-5554 这个名字可以看出它是一个 Android 模拟器。

常见异常输出:

  1. 没有设备/模拟器连接成功。

    List of devices attached
    
  2. 设备/模拟器未连接到 adb 或它无法响应。

    List of devices attached
    cf264b8f	offline
    

无线连接

// TODO

应用管理

查看所有已安装应用

命令:

adb shell pm list packages

输出示例:

package:com.android.smoketest
package:com.example.android.livecubes
package:com.android.providers.telephony
package:com.google.android.googlequicksearchbox
package:com.android.providers.calendar
package:com.android.providers.media
package:com.android.protips
package:com.android.documentsui
package:com.android.gallery
package:com.android.externalstorage
...
// other packages here
...

安装 APK

命令:

adb install /path/to/filename.apk

参数:

adb install 后面可以跟一些参数来控制安装 APK 的行为,常用参数及含义如下:

参数 含义
-r 允许覆盖安装。
-s 将应用安装到 sdcard。
-d 允许降级覆盖安装。

完整参数列表及含义可以直接运行 adb 命令然后查看 adb install [-lrtsdg] <file> 一节。

如果见到类似如下输出(状态为 Success)代表安装成功:

12040 KB/s (22205609 bytes in 1.801s)
        pkg: /data/local/tmp/SogouInput_android_v8.3_sweb.apk
Success

而如果状态为 Failure 则表示安装失败。常见安装失败输出代码、含义及可能的解决办法如下:

输出 含义 解决办法
INSTALL_FAILED_ALREADY_EXISTS 应用已经存在 使用 -r 参数
INSTALL_FAILED_OLDER_SDK 设备系统版本低于应用要求 使用高版本 Android 系统
INSTALL_FAILED_INSUFFICIENT_STORAGE 空间不足 清理空间
INSTALL_FAILED_MEDIA_UNAVAILABLE 安装位置不可用
INSTALL_FAILED_VERSION_DOWNGRADE 已经安装了更高版本 使用 -d 参数
INSTALL_CANCELED_BY_USER 应用安装需要在设备上确认,但未操作设备或点了取消 在设备上同意安装
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 已安装该应用,且签名与 APK 文件不一致 先卸载手机上的该应用,再安装
INSTALL_FAILED_INVALID_URI 无效的 APK 文件名 确保 APK 文件名里无中文
Offline 设备未连接成功 先将设备与 adb 连接成功
error: device not found 没有连接成功的设备 先将设备与 adb 连接成功
protocol failure 设备已断开连接 先将设备与 adb 连接成功
Unknown option: -s Android 2.2 以下不支持安装到 sdcard 不使用 -s 参数

卸载应用

// TODO

调起应用

// TODO

查看前台 Activity

命令:

adb shell dumpsys activity activities | grep mFocusedActivity

输出示例:

mFocusedActivity: ActivityRecord{8079d7e u0 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher t42}

其中的 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher 就是当前处于前台的 Activity。

调试

查看/过滤日志

// TODO

查看设备信息

查看手机型号

命令:

adb shell getprop ro.product.model

输出示例:

Nexus 5

查看手机电池状况

命令:

adb shell dumpsys battery

输入示例:

Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  status: 2
  health: 2
  present: true
  level: 44
  scale: 100
  voltage: 3872
  temperature: 280
  technology: Li-poly

其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 44% 的电量。

查看手机分辨率

命令:

adb shell dumpsys window displays

输出示例:

WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=1080x1920 480dpi cur=1080x1920 app=1080x1776 rng=1080x1005-1794x1701
    deferred=false layoutNeeded=false
    ...
    // some other output here
    ...

查看 android_id

命令:

adb shell settings get secure android_id

输出示例:

51b6be48bac8c569

其它实用功能

录制屏幕

录制屏幕以 mp4 格式保存到 /sdcard:

adb shell screenrecord /sdcard/filename.mp4

需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。

如果需要导出到电脑:

adb pull /sdcard/filename.mp4

screenrecord 命令也支持一些参数,可以使用 adb shell screenrecord --help 查看,下面是简介:

参数 含义
--size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。
--bit-rate RATE 视频的比特率,默认是 4Mbps。
--time-limit TIME 录制时长,单位秒。
--verbose 输出更多信息。

参考链接