文章目录

  • ref
  • android设备端(手机)
    • 推荐设置
  • adb 端(电脑)
  • 实操
    • 参考adb文档
    • 可能出现的问题
      • 错误的进入adb shell
      • more than one device/emulator

ref

  • Android 调试桥 (adb) | Android 开发者 | Android Developers

android设备端(手机)

  • USB选项:

    • 选择文件传输
    • 而不是仅充电(只会导致文件传输等功能无法生效)
      • 典型错误:more than one device/emulator
  • 打开开发者选项(developerOptions)
  • 启用USB调试(USB debugging)
    • Switche to debugging mode when USB is connected
  • 允许通过USB安装应用(apps)(Install via USB)
    • 根据设备情况启用(比如MIUI)
  • (可选)关闭授权过期功能(Disalble adb authorizatoin timeout)

推荐设置

  • 如果您经常用手机连接电脑做通行/传输,那么建议将usb连接的默认选项设置为File Transfer(文件传输)
  • 可以在设置搜索默认
    • 或者直接在设置中按照打开路径:Additional settings/Developer options/Default Use configuration/File Transfer

adb 端(电脑)

  • 进入到安装包所在目录

    • 或者,在可以使用adb命令的任意目录下,复制(输入)完整的app安装包(比如apk文件)的路径名
  • 执行
    • adb install app.apk完成安装

实操

  • 检查设备链接情况

    • PS C:\Users\cxxu\Desktop\n11tp> adb devices
      List of devices attached
      UO7PKFNF99IR9TV4        device
      
  • 执行安装

  • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
    Performing Streamed Install
    Success
    

参考adb文档

  • PS C:\Users\cxxu> adb
    Android Debug Bridge version 1.0.41
    Version 33.0.2-8557947
    Installed as D:\exes\platform-tools\adb.exe
    ....省略篇幅....(跳过,直达主题:..app intallationapp installation (see also `adb shell cmd package help`): install [-lrtsdg] [--instant] PACKAGEpush a single package to the device and install itinstall-multiple [-lrtsdpg] [--instant] PACKAGE...push multiple APKs to the device for a single package and install theminstall-multi-package [-lrtsdpg] [--instant] PACKAGE...push one or more packages to the device and install them atomically-r: replace existing application-t: allow test packages-d: allow version code downgrade (debuggable packages only)-p: partial application install (install-multiple only)-g: grant all runtime permissions--abi ABI: override platform's default ABI--instant: cause the app to be installed as an ephemeral install app--no-streaming: always push APK to device and invoke Package Manager as separate steps--streaming: force streaming APK directly into Package Manager--fastdeploy: use fast deploy--no-fastdeploy: prevent use of fast deploy--force-agent: force update of deployment agent when using fast deploy--date-check-agent: update deployment agent when local version is newer and using fast deploy--version-check-agent: update deployment agent when local version has different version code and using fast deploy(See also `adb shell pm help` for more options.)uninstall [-k] PACKAGEremove this app package from the device'-k': keep the data and cache directories
  • 根据帮助文档:

    • app installation (see also adb shell cmd package help):

      • install [-lrtsdg] [–instant] PACKAGE
        push a single package to the device and install it
    • 可以发现,使用adb程序的子命令install来安装某个包到设备
      • 具体通过adb install来调用,因为install package是adb可执行文件提供的命令接口
      • 该包含了多个可选的选项和一个参数(安装包的路径)
      • 也可以不使用任何选项,默认行为就是执行app包文件安装
      • 吐槽一下原文档第一个子命令install没有换行的问题,容易漏看,可以结合grep来看文档

可能出现的问题

错误的进入adb shell

  • xaga:/sdcard $ install magisk.apk
    install: Needs 2 arguments
    
    • adb install 是adb可执行文件提供,而不是adb shell 提供的(toybox)

more than one device/emulator

  • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
    adb.exe: more than one device/emulator
    
    • 初步排查:

      • 使用adb devices -l检查当前列表

        • 这里加一个参数-l会列出设备更加详细的信息,推荐加上,可看到设备型号
      • 下面是adb 将设备识别为多模拟设备

        • 这可能是根手机端选择的链接方式的选项有关!

        • 从而导致虽然只连接了一台设备,却扫描出了2台设备(包括模拟设备,应该是您的选项Use USB for 的选项更换之后导致的)

        • PS C:\Users\cxxu> adb devices
          List of devices attached
          UO7PKFNF99IR9TV4        device
          emulator-5554   offline
          
      • 如果向上面所讲的那样,发现了多台设备,那么考虑如下做法:

        • 断开所有adb链接:adb kill-server

          • 然后重新检查设备列表

          • PS C:\Users\cxxu> adb kill-serverPS C:\Users\cxxu> adb devices -l
            * daemon not running; starting now at tcp:5037
            * daemon started successfully
            List of devices attached
            UO7PKFNF99IR9TV4       device product:xaga model:22041216C device:xaga transport_id:1
            
          • 您也可以选择跳过adb kill-server,通过追加选项-s指定设备参数

          • 这样就不会导致设备指代不明的错误

          • 如果您链接了多个android设备(包括虚拟设备),

            • 考虑物理断开与其他设备
            • 但是最优雅的方式,是指定具体设备进行通行/控制
              • adb -s xxx
            • 这里的xxx代指的是设备序列号,例如上面的UO7PKFNF99IR9TV4
      • 开发者选项相关开关为正确开启,也可能导致相应错误

    • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
      Performing Streamed Install
      adb: failed to install .\magisk.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]

android_使用adb安装app包的详细步骤和可能遇到的问题(apk文件)相关推荐

  1. linux的增强文件夹,在linux系统中安装virtualbox增强功能(增强包)的详细步骤是什么...

    在linux系统中安装virtualbox增强功能(增强包)的详细步骤是什么 1. 点击菜单栏 设备 –> 分配光驱 –> 选择一个虚拟光盘,找到VirtualBox安装目录下的`VBox ...

  2. centos7安装mysql5.7视频_Centos7安装MySQL5.7版本详细步骤

    Centos7安装MySQL5.7版本详细步骤 Centos7安装MySQL5.7版本详细步骤 目录 1.安装前准备: 2. 安装mysql 2.1 下载并安装mysql官方的yum源 2.2 安装m ...

  3. python 批量下载依赖_python通过txt文件批量安装依赖包的实现步骤

    python通过txt文件批量安装依赖包的实现步骤 如果要用某个开源框架,需要安装多个依赖包可以如下操作: 如依赖文件形式如下(可以不要版本号): txt文件名为requirements.txt,内容 ...

  4. Linux离线安装python第三方库详细步骤

    Linux离线安装python第三方库详细步骤 01 查看服务器上的OS版本 02 查看已安装的python版本 03 查看python3支持的whl 04 国内镜像源网站下载whl 05 最后执行 ...

  5. Win10安装mysql-8.0.11-winx64详细步骤

    1.进入地址:https://dev.mysql.com/downloads/mysql/ 下载mysql-8.0.11-winx64 2.解压zip包,并将解压文件放入一个文件夹下,如图: 3.配置 ...

  6. Jenkins部署war包和部署jar包的详细步骤

    目录 零.配置Tomcat 一.自由风格项目远程部署war包 1.创建自由风格项目 2.增加构建步骤 3.增加构建后操作 4.立即构建 5.查看控制台输出 二.创建流水线项目远程部署war包 1.拉取 ...

  7. python安装步骤图解-Python安装与卸载流程详细步骤(图解)

    Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...

  8. python完整安装顺序_Python安装与卸载流程详细步骤(图解)

    Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...

  9. 大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题(以ubuntu-18.04.3、Mware Workstation 15.1.0 Pro为例)

    大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题 (以ubuntu-18.04.3.Mware Workstation 15.1.0 Pro for Window ...

最新文章

  1. 【camera】基于YOLO的车辆多维特征识别系统(车色,车品牌,车标,车型)与PYQT实现(课程设计)
  2. 糟糕的css用法 1
  3. CodeForces #369 div2 D Directed Roads DFS
  4. mysql导出为lua配置表文件_利用lua生成一个导出数据库的bat脚本文件
  5. 导入android studio项目,编译失败
  6. 全球变暖java_第九届 蓝桥杯 JavaB组 全球变暖
  7. 服务器内提取文件,linux命令如何提取文件夹内特定文件路径
  8. asp html转义字符串,asp.net – 转义HTML实体并避免WebForm标签中的HTML注入?
  9. 一行代码完成模型训练,30倍加速,3毫秒急速识别,超强图像分类算法开源!...
  10. iptables高性能前端优化-无压力配置1w+条规则
  11. Mysql表和数据的复制操作
  12. Unity阴阳师画符教学
  13. 利用IPHONE自带播放器播放视频
  14. 使用Tensorflow 2进行猫狗分类识别
  15. 向量叉乘矩阵表示_对于向量和矩阵的理解
  16. 生活总是不经意给你开个玩笑_你在开玩笑的故事吗
  17. DFS与BFS的区别、用法、详解?
  18. 简单3步:微信语音转成mp3
  19. 【云原生之Docker实战】使用Docker部署Fiora在线聊天室平台
  20. 递归实现十进制转二进制

热门文章

  1. sublime 常用的一些快捷键
  2. 图论动态规划算法——Floyd最短路径
  3. PowerDesigner 数据库建模
  4. Zynq UltraScale+ MPSoC EV系列VCU应用通路搭建
  5. 安装CA证书服务的一系列过程
  6. Android 游戏-超级玛丽(Android studio)
  7. java注册界面发送邮箱验证码(无线程版)
  8. Linux的软链接与硬链接
  9. 强迫症福音:OC启动界面图标与文字全部匹配超简单教程
  10. 神经网络的运用方法有,神经网络的运用方法是