|  |  | @ -13,6 +13,9 @@ Adb,即 [Android Debug Bridge](https://developer.android.com/studio/command-li | 
			
		
	
		
		
			
				
					
					|  |  |  | 	* [卸载应用](#卸载应用) |  |  |  | 	* [卸载应用](#卸载应用) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	* [调起应用](#调起应用) |  |  |  | 	* [调起应用](#调起应用) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	* [查看前台 Activity](#查看前台-activity) |  |  |  | 	* [查看前台 Activity](#查看前台-activity) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | * [文件管理](#文件管理) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	* [复制设备里的文件到电脑](#复制设备里的文件到电脑) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	* [复制电脑里的文件到设备](#复制电脑里的文件到设备) | 
			
		
	
		
		
			
				
					
					|  |  |  | * [调试](#调试) |  |  |  | * [调试](#调试) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	* [查看/过滤日志](#查看过滤日志) |  |  |  | 	* [查看/过滤日志](#查看过滤日志) | 
			
		
	
		
		
			
				
					
					|  |  |  | * [查看设备信息](#查看设备信息) |  |  |  | * [查看设备信息](#查看设备信息) | 
			
		
	
	
		
		
			
				
					|  |  | @ -96,7 +99,7 @@ package:com.android.externalstorage | 
			
		
	
		
		
			
				
					
					|  |  |  | 命令: |  |  |  | 命令: | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  | adb install /path/to/filename.apk |  |  |  | adb install <APK 文件路径> | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | ``` |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 参数: |  |  |  | 参数: | 
			
		
	
	
		
		
			
				
					|  |  | @ -121,20 +124,61 @@ Success | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 而如果状态为 `Failure` 则表示安装失败。常见安装失败输出代码、含义及可能的解决办法如下: |  |  |  | 而如果状态为 `Failure` 则表示安装失败。常见安装失败输出代码、含义及可能的解决办法如下: | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | | 输出                                               | 含义                                             | 解决办法                     | |  |  |  | | 输出                                               | 含义                                                                     | 解决办法                                        | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | |----------------------------------------------------|--------------------------------------------------|------------------------------| |  |  |  | |----------------------------------------------------|--------------------------------------------------------------------------|-------------------------------------------------| | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_ALREADY\_EXISTS                   | 应用已经存在                                     | 使用 `-r` 参数               | |  |  |  | | INSTALL\_FAILED\_ALREADY\_EXISTS                   | 应用已经存在                                                             | 使用 `-r` 参数                                  | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_OLDER\_SDK                        | 设备系统版本低于应用要求                         | 使用高版本 Android 系统      | |  |  |  | | INSTALL\_FAILED\_INVALID\_APK                      | 无效的 APK 文件                                                          |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_INSUFFICIENT\_STORAGE             | 空间不足                                         | 清理空间                     | |  |  |  | | INSTALL\_FAILED\_INVALID\_URI                      | 无效的 APK 文件名                                                        | 确保 APK 文件名里无中文                         | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_MEDIA\_UNAVAILABLE                | 安装位置不可用                                   |                              | |  |  |  | | INSTALL\_FAILED\_INSUFFICIENT\_STORAGE             | 空间不足                                                                 | 清理空间                                        | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_VERSION\_DOWNGRADE                | 已经安装了更高版本                               | 使用 `-d` 参数               | |  |  |  | | INSTALL\_FAILED\_DUPLICATE\_PACKAGE                | 已经存在同名程序                                                         |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_CANCELED\_BY\_USER                        | 应用安装需要在设备上确认,但未操作设备或点了取消 | 在设备上同意安装             | |  |  |  | | INSTALL\_FAILED\_NO\_SHARED\_USER                  | 请求的共享用户不存在                                                     |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_PARSE\_FAILED\_INCONSISTENT\_CERTIFICATES | 已安装该应用,且签名与 APK 文件不一致            | 先卸载手机上的该应用,再安装 | |  |  |  | | INSTALL\_FAILED\_UPDATE\_INCOMPATIBLE              | 已经安装过签名不一样的同名应用,且数据没有移除                           |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | INSTALL\_FAILED\_INVALID\_URI                      | 无效的 APK 文件名                                | 确保 APK 文件名里无中文    | |  |  |  | | INSTALL\_FAILED\_SHARED\_USER\_INCOMPATIBLE        | 请求的共享用户存在但签名不一致                                           |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | Offline                                            | 设备未连接成功                                   | 先将设备与 adb 连接成功      | |  |  |  | | INSTALL\_FAILED\_MISSING\_SHARED\_LIBRARY          | 安装包使用了设备上不可用的共享库                                         |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | error: device not found                            | 没有连接成功的设备                               | 先将设备与 adb 连接成功      | |  |  |  | | INSTALL\_FAILED\_REPLACE\_COULDNT\_DELETE          | 替换时无法删除                                                           |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | protocol failure                                   | 设备已断开连接                                   | 先将设备与 adb 连接成功      | |  |  |  | | INSTALL\_FAILED\_DEXOPT                            | dex 优化验证失败或空间不足                                               |                                                 | | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | | Unknown option: -s                                 | Android 2.2 以下不支持安装到 sdcard              | 不使用 `-s` 参数             | |  |  |  | | INSTALL\_FAILED\_OLDER\_SDK                        | 设备系统版本低于应用要求                                                 |                                                 | | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_CONFLICTING\_PROVIDER             | 设备里已经存在与应用里同名的 content provider                            |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_NEWER\_SDK                        | 设备系统版本高于应用要求                                                 |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_TEST\_ONLY                        | 应用是 test-only 的,但安装时没有指定 `-t` 参数                          |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_CPU\_ABI\_INCOMPATIBLE            | 包含不兼容设备 CPU 应用程序二进制接口的 native code                      |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_MISSING\_FEATURE                  | 应用使用了设备不可用的功能                                               |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_CONTAINER\_ERROR                  | sdcard 访问失败                                                          | 确认 sdcard 可用,或者安装到手机内存            | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_INVALID\_INSTALL\_LOCATION        | 不能安装到指定位置                                                       | 切换安装位置,添加或删除 `-s` 参数              | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_MEDIA\_UNAVAILABLE                | 安装位置不可用                                                           | 一般为 sdcard,确认 sdcard 可用或安装到手机内存 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_VERIFICATION\_TIMEOUT             | 验证安装包超时                                                           |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_VERIFICATION\_FAILURE             | 验证安装包失败                                                           |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_PACKAGE\_CHANGED                  | 应用与调用程序期望的不一致                                               |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_UID\_CHANGED                      | 以前安装过该应用,与本次分配的 UID 不一致                                | 清除以前安装过的残留文件                        | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_VERSION\_DOWNGRADE                | 已经安装了该应用更高版本                                                 | 使用 `-d` 参数                                  | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_PERMISSION\_MODEL\_DOWNGRADE      | 已安装 target SDK 支持运行时权限的同名应用,要安装的版本不支持运行时权限 |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_NOT\_APK                   | 指定路径不是文件,或不是以 `.apk` 结尾                                   |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_BAD\_MANIFEST              | 无法解析的 AndroidManifest.xml 文件                                      |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_UNEXPECTED\_EXCEPTION      | 解析器遇到异常                                                           |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_NO\_CERTIFICATES           | 安装包没有签名                                                           |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_INCONSISTENT\_CERTIFICATES | 已安装该应用,且签名与 APK 文件不一致                                    | 先卸载手机上的该应用,再安装                    | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_CERTIFICATE\_ENCODING      | 解析 APK 文件时遇到 `CertificateEncodingException`                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_BAD\_PACKAGE\_NAME         | manifest 文件里没有或者使用了无效的包名                                  |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_BAD\_SHARED\_USER\_ID      | manifest 文件里指定了无效的共享用户 ID                                   |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_MANIFEST\_MALFORMED        | 解析 manifest 文件时遇到结构性错误                                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_PARSE\_FAILED\_MANIFEST\_EMPTY            | 在 manifest 文件里找不到找可操作标签(instrumentation 或 application)   |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_INTERNAL\_ERROR                   | 因系统问题安装失败                                                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_USER\_RESTRICTED                  | 用户被限制安装应用                                                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_DUPLICATE\_PERMISSION             | 应用尝试定义一个已经存在的权限名称                                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_NO\_MATCHING\_ABIS                | 应用包含设备的应用程序二进制接口不支持的 native code                     |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_CANCELED\_BY\_USER                        | 应用安装需要在设备上确认,但未操作设备或点了取消                         | 在设备上同意安装                                | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | INSTALL\_FAILED\_ACWF\_INCOMPATIBLE                | 应用程序与设备不兼容                                                     |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | does not contain AndroidManifest.xml               | 无效的 APK 文件                                                          |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | is not a valid zip file                            | 无效的 APK 文件                                                          |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | Offline                                            | 设备未连接成功                                                           | 先将设备与 adb 连接成功                         | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | unauthorized                                       | 设备未授权允许调试                                                       |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | error: device not found                            | 没有连接成功的设备                                                       | 先将设备与 adb 连接成功                         | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | protocol failure                                   | 设备已断开连接                                                           | 先将设备与 adb 连接成功                         | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | Unknown option: -s                                 | Android 2.2 以下不支持安装到 sdcard                                      | 不使用 `-s` 参数                                | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | No space left on devicerm                          | 空间不足                                                                 | 清理空间                                        | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | | Permission denied ... sdcard ...                   | sdcard 不可用                                                            |                                                 | | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 参考:[PackageManager.java](https://github.com/android/platform_frameworks_base/blob/master/core%2Fjava%2Fandroid%2Fcontent%2Fpm%2FPackageManager.java) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ### 卸载应用 |  |  |  | ### 卸载应用 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -160,6 +204,42 @@ mFocusedActivity: ActivityRecord{8079d7e u0 com.cyanogenmod.trebuchet/com.androi | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 其中的 `com.cyanogenmod.trebuchet/com.android.launcher3.Launcher` 就是当前处于前台的 Activity。 |  |  |  | 其中的 `com.cyanogenmod.trebuchet/com.android.launcher3.Launcher` 就是当前处于前台的 Activity。 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ## 文件管理 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ### 复制设备里的文件到电脑 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 命令: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | adb pull <设备里的文件路径> [电脑上的目录]  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 其中 `电脑上的目录` 参数可以省略,默认复制到当前目录。 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 例: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | adb pull /sdcard/sr.mp4 ~/tmp/ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | *小技巧:*设备上的文件路径可能需要 root 权限才能访问,如果你的设备已经 root 过,可以先使用 `adb shell` 和 `su` 命令在 adb shell 里获取 root 权限后,先 `cp /path/on/device /sdcard/filename` 将文件复制到 sdcard,然后 `adb pull /sdcard/filename /path/on/pc`。 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ### 复制电脑里的文件到设备 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 命令: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | adb push <电脑上的文件路径> <设备里的目录>  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 例: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | adb push ~/sr.mp4 /sdcard/ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ``` | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | *小技巧:*设备上的文件路径普通权限可能无法直接写入,如果你的设备已经 root 过,可以先 `adb push /path/on/pc /sdcard/filename`,然后 `adb shell` 和 `su` 在 adb shell 里获取 root 权限后,`cp /sdcard/filename /path/on/device`。 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ## 调试 |  |  |  | ## 调试 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ### 查看/过滤日志 |  |  |  | ### 查看/过滤日志 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |