zoukankan      html  css  js  c++  java
  • [ADB Shell]Android Debug Bridge常用命令

    ADB用法

    ADB(Android Debug Bridge)

    如何在Windows上使用ADB shell命令

    在<Android SDK> / platform-tools文件夹中找到adb.exe或下载ADB工具包(adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll)
    

    Notes: Android SDK 路径: %LOCALAPPDATA%Androidsdk => C:Users\AppDataLocalAndroidsdk Open command prompt. (Press Windows Key + R, type in "cmd")

    // cd <adb-path> 
    cd c:UsersLindaAppDataLocalAndroidsdkplatform-tools
    adb devices
    

    adb devices

    列出所有连接的模拟器/设备

    adb devices
    

    输出:

    List of devices attached

    e4b25377 device

    emulator-5554 device

    adb server

    启动adb server命令:

    adb start-server
    

    停止adb server命令:

    adb kill-server
    

    以root权限运行adbd

    adb的运行原理是PC端的adb server与手机端的守护进程adbd建立连接,然后PC端的adb client 通过adb server 转发命令,adbd接收命令后解析运行.

    所以,如果adbd以普通权限执行,有些需要root权限才能执行的命令无法直接用adb xxx执行.这时可以用adb shell然后su后执行命令,也可以让adbd以root权限执行,这个就能随意执行最高权限命令了.

    命令:

    adb root
    

    输出:

    restarting adbd as root
    

    再运行adb shell,命令行提示符变成"#"

    手机root之后无法通过adb root命令让adbd以root权限运行?

    如 Samsum,提示adbd cannot run as root in production builds.

    可先安装adbd Insecure,然后adb root.

    恢复adbd非root权限

    adb unroot
    

    adb connect

    use ADB over Wi-Fi

    adb connect <host>[:<port>]
    

    STEP 1.

    Connect to the device over USB.

    STEP 2.

    adb devices
    

    List of devices attached

    device

    Notes: STEP 1,2 is required

    STEP 3.

    adb tcpip 5555
    

    restarting in TCP mode port: 5555

    STEP 4.

    <找出Android设备的IP地址: 设置 -> 关于手机 -> 状态信息 -> IP地址.

    IP地址格式: #.#.#.#.

    STEP 5.

    adb connect #.#.#.#
    

    connected to #.#.#.#:5555

    STEP 6.

    断开USB连接,确认您仍然可以访问设备

    adb devices
    

    List of devices attached(连接成功)

    #.#.#.#:5555 device
    

    注意:确保您的主机仍然连接到Android设备所在的同一Wi-Fi网络。

    断开无线连接:

    adb disconnect
    

    adb usb

    在USB模式下重启ADB

    adb usb
    

    adb install

    将Android应用程序(指定为.apk文件的完整路径)推送到模拟器/设备

    adb install [option] <path>
    adb install test.apk
    adb install -l test.apk 转发锁定申请
    adb install -r test.apk 允许覆盖安装
    adb install -t test.apk 允许安装测试包
    adb install -s test.apk 将应用安装到 sdcard
    adb install -d test.apk 允许降级覆盖安装
    adb install -p test.apk 部分应用安装
    

    完整参数列表及含义可以直接运行 adb 命令然后查看 adb install [-lrtsdg] 一节。

    如果见到类似如下输出(状态为 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_INVALID_APK 无效的 APK 文件  
    INSTALL_FAILED_INVALID_URI 无效的 APK 文件名 确保 APK 文件名里无中文
    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 设备里已经存在与应用里同名的 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 不可用  

    adb uninstall

    从模拟器/设备中删除包

    adb uninstall [options] <PACKAGE>
    adb uninstall com.test.app
    adb uninstall -k com.test.app Keep the data and cache directories around after package removal.
    

    adb shell pm list packages

    Package Manager(应用管理)

    查看应用列表

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

    打印所有包,可选择仅打包包名称包含中文本的包

    adb shell pm list packages [options] <FILTER>
    

    ```

    adb shell pm list packages      --[所有应用]
    
    adb shell pm list packages -f   --[显示应用关联的apk文件]
    
    adb shell pm list packages -d   --[过滤以仅显示已禁用的包]
    
    adb shell pm list packages -e   --[过滤以仅显示已启用的包]
    
    adb shell pm list packages -s   --[只显示系统应用]
    
    adb shell pm list packages -3   --[只显示第三方应用]
    
    adb shell pm list packages -i   --[显示已安装的应用]
    
    adb shell pm list packages -u   --[包含已卸载的应用]
    
    adb shell pm list packages --user <USER_ID> --[要查询的用户空间]
    

    系统应用

    adb shell pm list packages -s
    

    第三方应用

    adb shell pm list packages -3
    

    查看包名含有字符串"abc"的应用列表

    adb shell pm list packages abc
    

    也可以用grep来过滤

    adb shell pm list packages | grep abc
    

    adb shell pm path

    打印给定的APK路径

    adb shell pm path <PACKAGE>
    adb shell pm path com.android.phone
    

    package:/system/priv-app/TeleService/TeleService.apk

    adb shell pm clear

    删除与包关联的所有数据

    adb shell pm clear <PACKAGE>
    adb shell pm clear com.test.abc
    

    Notes: 清除应用数据,缓存

    推荐阅读

  • 相关阅读:
    171 01 Android 零基础入门 03 Java常用工具类02 Java包装类 01 包装类简介 01 Java包装类内容简介
    170 01 Android 零基础入门 03 Java常用工具类01 Java异常 08 Java异常总结 01 异常总结
    169 01 Android 零基础入门 03 Java常用工具类01 Java异常 07 异常链 01 异常链简介
    168 01 Android 零基础入门 03 Java常用工具类01 Java异常 06 自定义异常 01 自定义异常类
    167 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 02 使用throw抛出异常对象
    166 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 01 使用throws声明异常类型
    165 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 05 return关键字在异常处理中的使用
    DevExpress WPF v20.2版本亮点放送:全新升级的PDF Viewer
    界面控件DevExpress使用教程:Dashboard – 自定义导出
    DevExpress WinForms帮助文档:表单控件
  • 原文地址:https://www.cnblogs.com/geekformore/p/10613658.html
Copyright © 2011-2022 走看看