|  |  |  | @ -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] <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 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 命令: | 
			
		
	
	
		
			
				
					|  |  |  | @ -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) | 
			
		
	
	
		
			
				
					|  |  |  | 
 |