Android ADB 命令行

Android ADB 命令行用了 MBP,一直有个问题,不能像 Windows 一样直接拷贝文件到手机 SD 卡上,Android ADB 好像可以直接拷贝,但由于忙,没有去详细了解,最近刚需,要解决,于是系列学习了 ADB 知识,发现新大陆,没想到 ADB 这么强大,以下是我记录了 ADB 较常用的命令…

Android ADB 命令行

用了 MBP,一直有个问题,不能像 Windows 一样直接拷贝文件到手机 SD 卡上,Android ADB 好像可以直接拷贝,但由于忙,没有去详细了解,最近刚需,要解决,于是系列学习了 ADB 知识,发现新大陆,没想到 ADB 这么强大,以下是我记录了 ADB 较常用的命令行,还有很多值得您去深掘,去学习。

拷贝文件

Mac 不能像 Windows 一样,直接拷贝文件到手机,要想拷东西或看下 SD 卡东西还是有点束手无策,其实是用 Android ADB 命令行解决这个需求。

从电脑拷贝到 SD 卡

命令格式:

adb push /Users/wuxiaolong/Desktop/books.db /sdcard/

/Users/wuxiaolong/Desktop/books.db:电脑文件路径

/sdcard/:拷贝到手机 SD 卡路径

从 sd 卡拷贝到电脑

命令格式:

adb pull /sdcard/books.db /Users/wuxiaolong/Desktop/

/sdcard/books.db:手机 SD 卡路径

/Users/wuxiaolong/Desktop/:拷贝到电脑路径,可以省略,默认复制到用户目录。

指定目标设备

如果电脑连接了多台设备,ADB 命令行会报错,提示 error: failed to get feature set: more than one device/emulator。

命令格式:

adb [-d|-e|-s <serialNumber>] <command>

如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s <serialNumber>] 这一部分,直接使用  adb <command>

参数 含义
-d 指定当前唯一通过 USB 连接的 Android 设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s <serialNumber> 指定相应 serialNumber 号的设备/模拟器为命令目标

1、比如现在拷贝文件到模拟器上:

adb -e push /Users/wuxiaolong/Desktop/books.db /sdcard/

2、在多个设备/模拟器连接的情况下较常用的是 -s <serialNumber> 参数,serialNumber 可以通过 adb devices命令获取。如:

adb devicesList of devices attached0815f85118631704    deviceemulator-5554   device

输出里的 0815f85118631704emulator-5554 即为 serialNumber。

继续拷贝文件到指定 emulator-5554 这个设备上:

adb -s emulator-5554 push /Users/wuxiaolong/Desktop/books.db /sdcard/

又如想给 10.129.164.6:5555 这个设备安装应用(*这种形式的 serialNumber 格式为 <IP>:<Port>,一般为无线连接的设备或 Genymotion 等第三方 Android 模拟器*):

adb -s 10.129.164.6:5555 install test.apk

安装 APK

命令格式:

adb install [-lrtsdg] <path_to_apk>

参数:

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

参数 含义
-l 将应用安装到保护目录 /mnt/asec
-r 允许覆盖安装
-t 允许安装 AndroidManifest.xml 里 application 指定android:testOnly="true" 的应用
-s 将应用安装到 sdcard
-d 允许降级覆盖安装
-g 授予所有运行时权限

<path_to_apk>:APK 路径,可以直接拖进终端。

示例:

adb install /Users/wuxiaolong/Desktop/app-release.apk Success

查看应用列表

命令格式:

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:

参数 显示列表
所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
<FILTER> 包名包含 <FILTER> 字符串

示例:

adb shell pm list packages -3package:org.geometerplus.zlibrary.ui.androidpackage:com.danmo.ithousepackage:com.wuxiaolong.ndksample

列出了包名。

卸载应用

命令格式:

adb uninstall [-k] <packagename>

-k 参数可选,表示卸载应用但保留数据和缓存目录;<packagename> 表示应用的包名。

示例:

adb uninstall com.danmo.ithouseSuccess

其他

屏幕截图

命令格式:

adb exec-out screencap -p > sc.png

-p指定保存文件为 png 格式,实测如果指定文件名以 .jpg 等其他格式结尾时  -p 参数无效,不要这个参数,保存图片就打不开。sc.png 默认在用户目录。

查看分辨率

命令:

adb shell wm sizePhysical size: 1080x1920

Android 系统版本

命令:

adb shell getprop ro.build.version.release8.1.0

查看型号

命令:

adb shell getprop ro.product.modelAndroid SDK built for x86

清除应用数据与缓存

命令格式:

adb shell pm clear <packagename>

<packagename> 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

示例:

adb shell pm clear com.wuxiaolong.ndksampleSuccess

参考

awesome-adb


Android ADB 命令行

今天的文章Android ADB 命令行分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14161.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注