ADB命令使用

作者: Yet_land | 来源:发表于2017-03-06 18:45 被阅读85次

adb(Android Device Bridge),就是Android设备与别的设备交互的一个桥梁,我们可以通过adb实现对Android设备的一些操作。

基本操作

  • adb devices
    可以查看所有连接的Android设备。
C:\Users\yeliang>adb devices
List of devices attached
SCIV4SZHOZOFQC9L        device
emulator5554        device
  • adb (-d -e -s) shell
    可以进入adb shell模式。出现多台设备同时连接时,可以使用adb (-d -e -s) shell进入指定的设备。其中,-d(device) 选择进入Android真机设备,-e(emulator) 选择进入Android模拟器,-s(serialNumber) 选择adb devices
    命令后,出现的编码进入相应的设备,如
    adb -s SCIV4SZHOZOFQC9L shell
  • adb (-d -e -s) pull <手机(from)> <电脑(to)>
    将Android设备上的文件复制到本地。注意斜杠 和反斜杠**。
    adb pull /mnt/sdcard/tmp.txt D:\tmp\
  • adb (-d -e -s) push <电脑(from)> <手机(to)>
    将本地的文件复制到Android设备上。
    adb pull D:\tmp\tmp.txt /mnt/sdcard/
  • adb启动activity
    adb shell am start -n {包(package)名}/{包名}.{活动(activity)名称}
    如:启动浏览器
    adb shell am start -n com.android.browser/com.android.browser.BrowserActivity
  • adb启动service
    adb shell am startservice -n {包(package)名}/{包名}.{服务(service)名称}
    如:启动自己应用中一个service
    adb shell am startservice -n com.yetland.young/com.yetland.young.service.MainService
    若包名一致,则可以简写为
    adb shell am startservice -n com.yetland.young/.service.MainService
    若包名不一致,则填写完整的包名,以免报错。
  • adb发送broadcast
    adb shell am broadcast -a <广播动作>
    如:发送一个网络变化的广播
    adb shell am broadcast -a android.net.conn.CONNECTIVITY_CHANGE

adb shell am broadcast 后面的参数有:
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]
例如:

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true

  • 获取设备号
    adb get-serialno

adb install命令

  • 命令
    adb (-d -e -s ) -r install //apk路径

测试说明,路径中有中文不影响安装

-r 代表强制安装。
若手机中已有包名相同的apk且未使用 -r 则会报**INSTALL_FAILED_ALREADY_EXISTS **错误。若使用,可直接替换。
使用 -r 可在一定程度上降低安装的失败率。

  • 常见错误

INSTALL_FAILED_ALREADY_EXISTS 程序已经存在
INSTALL_FAILED_INVALID_APK 无效的APK
INSTALL_FAILED_INVALID_URI 无效的链接
INSTALL_FAILED_INSUFFICIENT_STORAGE 没有足够的存储空间
INSTALL_FAILED_DUPLICATE_PACKAGE 已存在同名程序
INSTALL_FAILED_NO_SHARED_USER 要求的共享用户不存在
INSTALL_FAILED_UPDATE_INCOMPATIBLE 版本不能共存
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 需求的共享用户签名错误
INSTALL_FAILED_MISSING_SHARED_LIBRARY 需求的共享库已丢失
INSTALL_FAILED_REPLACE_COULDNT_DELETE 需求的共享库无效
INSTALL_FAILED_DEXOPT dex优化验证失败
INSTALL_FAILED_OLDER_SDK 系统版本过旧
INSTALL_FAILED_CONFLICTING_PROVIDER 存在同名的内容提供者

INSTALL_FAILED_NEWER_SDK 系统版本过新
INSTALL_FAILED_TEST_ONLY 调用者不被允许测试的测试程序
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含的本机代码不兼容
CPU_ABIINSTALL_FAILED_MISSING_FEATURE 使用了一个无效的特性
INSTALL_FAILED_CONTAINER_ERROR SD卡访问失败
INSTALL_FAILED_INVALID_INSTALL_LOCATION 无效的安装路径
INSTALL_FAILED_MEDIA_UNAVAILABLE SD卡不存在
INSTALL_FAILED_INTERNAL_ERROR 系统问题导致安装失败
DEFAULT 未知错误

adb uninstall命令

  • 方式1
  adb shell
  cd data/app
  rm // 包名
  exit
  • 方式2
adb (-d -e -s) [-r] uninstall // 包名
-r 代表卸载时保存数据

adb 文件操作

  • 基本命令

adb shell ls mnt 查看所有设备存储设备名
adb remount 将 system 分区重新挂载为可读写分区
adb push <local> <remote> 从本地复制文件到设备
adb pull <remote> <local> 从设备复制文件到本地
adb shell ls 列出目录下的文件和文件夹
adb shell cd <folder> 进入文件夹
adb shell rm [-r] <path/filename> ** 删除文件(夹)。操作为文件夹时需加上-r**
adb shell cat <file> ** 查看文件内容**
adb shell mkdir path/foldername 新建文件夹

相关文章

网友评论

    本文标题:ADB命令使用

    本文链接:https://www.haomeiwen.com/subject/atyugttx.html