用了 MBP,一直有个问题,不能像 Windows 一样直接拷贝文件到手机 SD 卡上,Android ADB 好像可以直接拷贝,但由于忙,没有去详细了解,最近刚需,要解决,于是系列学习了 ADB 知识,发现新大陆,没想到 ADB 这么强大,以下是我记录了 ADB 较常用的命令行,还有很多值得您去深掘,去学习。
拷贝文件
Mac 不能像 Windows 一样,直接拷贝文件到手机,要想拷东西或看下 SD 卡东西还是有点束手无策,其实是用 Android ADB 命令行解决这个需求。
从电脑拷贝到 SD 卡
命令格式:
|
|
/Users/wuxiaolong/Desktop/books.db:电脑文件路径
/sdcard/:拷贝到手机 SD 卡路径
从 sd 卡拷贝到电脑
命令格式:
|
|
/sdcard/books.db:手机 SD 卡路径
/Users/wuxiaolong/Desktop/:拷贝到电脑路径,可以省略,默认复制到用户目录。
指定目标设备
如果电脑连接了多台设备,ADB 命令行会报错,提示 error: failed to get feature set: more than one device/emulator。
命令格式:
|
|
如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s <serialNumber>]
这一部分,直接使用 adb <command>
。
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s <serialNumber> |
指定相应 serialNumber 号的设备/模拟器为命令目标 |
1、比如现在拷贝文件到模拟器上:
|
|
2、在多个设备/模拟器连接的情况下较常用的是 -s <serialNumber>
参数,serialNumber 可以通过 adb devices
命令获取。如:
|
|
输出里的 0815f85118631704
和emulator-5554
即为 serialNumber。
继续拷贝文件到指定 emulator-5554
这个设备上:
|
|
又如想给 10.129.164.6:5555
这个设备安装应用(这种形式的 serialNumber 格式为 <IP>:<Port>
,一般为无线连接的设备或 Genymotion 等第三方 Android 模拟器):
|
|
安装 APK
命令格式:
|
|
参数:
adb install
后面可以跟一些可选参数来控制安装 APK 的行为,可用参数及含义如下:
参数 | 含义 |
---|---|
-l | 将应用安装到保护目录 /mnt/asec |
-r | 允许覆盖安装 |
-t | 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用 |
-s | 将应用安装到 sdcard |
-d | 允许降级覆盖安装 |
-g | 授予所有运行时权限 |
<path_to_apk>
:APK 路径,可以直接拖进终端。
示例:
|
|
查看应用列表
命令格式:
|
|
即在 adb shell pm list packages
的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
参数 | 显示列表 |
---|---|
无 | 所有应用 |
-f | 显示应用关联的 apk 文件 |
-d | 只显示 disabled 的应用 |
-e | 只显示 enabled 的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
<FILTER> |
包名包含 <FILTER> 字符串 |
示例:
列出了包名。
卸载应用
命令格式:
|
|
-k
参数可选,表示卸载应用但保留数据和缓存目录;<packagename>
表示应用的包名。
示例:
|
|
其他
屏幕截图
命令格式:
|
|
-p
指定保存文件为 png 格式,实测如果指定文件名以 .jpg
等其他格式结尾时 -p
参数无效,不要这个参数,保存图片就打不开。sc.png 默认在用户目录。
查看分辨率
命令:
|
|
Android 系统版本
命令:
|
|
查看型号
命令:
|
|
清除应用数据与缓存
命令格式:
|
|
<packagename>
表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。
示例:
|
|