From f54836c7fb628b088ed8dea3a6009486aaf5eacf Mon Sep 17 00:00:00 2001 From: Zhuang Ma Date: Wed, 20 Jul 2016 13:48:05 +0800 Subject: [PATCH] Add adb install command --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index be8261f..e456c40 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ Adb,即 [Android Debug Bridge](https://developer.android.com/studio/command-li * [卸载应用](#卸载应用) * [调起应用](#调起应用) * [查看前台 Activity](#查看前台-activity) +* [调试](#调试) + * [查看/过滤日志](#查看过滤日志) * [查看设备信息](#查看设备信息) * [查看手机型号](#查看手机型号) * [查看手机电池状况](#查看手机电池状况) @@ -20,6 +22,7 @@ Adb,即 [Android Debug Bridge](https://developer.android.com/studio/command-li * [查看 android\_id](#查看-android_id) * [其它实用功能](#其它实用功能) * [录制屏幕](#录制屏幕) +* [参考链接](#参考链接) ## 设备连接管理 @@ -41,8 +44,25 @@ emulator-5554 device 该输出显示当前已经连接了两台设备/模拟器,`cf264b8f` 与 `emulator-5554` 分别是它们的 SN。从 `emulator-5554` 这个名字可以看出它是一个 Android 模拟器。 +常见异常输出: + +1. 没有设备/模拟器连接成功。 + + ``` + List of devices attached + ``` + +2. 设备/模拟器未连接到 adb 或它无法响应。 + + ``` + List of devices attached + cf264b8f offline + ``` + ### 无线连接 +// TODO + ## 应用管理 ### 查看所有已安装应用 @@ -66,7 +86,9 @@ package:com.android.protips package:com.android.documentsui package:com.android.gallery package:com.android.externalstorage +... // other packages here +... ``` ### 安装 APK @@ -77,12 +99,51 @@ package:com.android.externalstorage adb install /path/to/filename.apk ``` -// TODO: 命令行参数,常见错误输出等 +参数: + +`adb install` 后面可以跟一些参数来控制安装 APK 的行为,常用参数及含义如下: + +| 参数 | 含义 | +|------|-----------------------| +| -r | 允许覆盖安装。 | +| -s | 将应用安装到 sdcard。 | +| -d | 允许降级覆盖安装。 | + +完整参数列表及含义可以直接运行 `adb` 命令然后查看 `adb install [-lrtsdg] ` 一节。 + +如果见到类似如下输出(状态为 `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 命令: @@ -99,6 +160,12 @@ mFocusedActivity: ActivityRecord{8079d7e u0 com.cyanogenmod.trebuchet/com.androi 其中的 `com.cyanogenmod.trebuchet/com.android.launcher3.Launcher` 就是当前处于前台的 Activity。 +## 调试 + +### 查看/过滤日志 + +// TODO + ## 查看设备信息 ### 查看手机型号 @@ -197,8 +264,13 @@ adb pull /sdcard/filename.mp4 `screenrecord` 命令也支持一些参数,可以使用 `adb shell screenrecord --help` 查看,下面是简介: | 参数 | 含义 | -|:--------------------|:------------------------------------------------| +|---------------------|-------------------------------------------------| | --size WIDTHxHEIGHT | 视频的尺寸,比如 `1280x720`,默认是屏幕分辨率。 | | --bit-rate RATE | 视频的比特率,默认是 4Mbps。 | | --time-limit TIME | 录制时长,单位秒。 | | --verbose | 输出更多信息。 | + +## 参考链接 + +* [Android Debug Bridge](https://developer.android.com/studio/command-line/adb.html) +* [ADB Shell Commands](https://developer.android.com/studio/command-line/shell.html)