【问题标题】:Install an apk file from command prompt?从命令提示符安装 apk 文件?
【发布时间】:2011-10-27 22:07:12
【问题描述】:

我想使用 Windows 命令行安装文件。首先,我想在编译所有 .jar 文件后构建,以便在不使用 Eclipse 的情况下为 Android 应用程序创建一个 .apk 文件。

有谁知道如何在不使用 Eclipse 的情况下仅通过使用命令行来完成此操作。

【问题讨论】:

标签: android cmd apk


【解决方案1】:

在 Android Studio 中打开终端

你可能会看到

C:\Users\nikhil\AppData\Local\Android\Sdk\platform-tools>

复制并粘贴您要安装在平台工具中的上述路径上的 apk。 在我的情况下 app-qa-debug.apk 我保存在 platform-tools 文件夹中。

安装命令

adb install app-qa-debug.apk

所以在终端中你可以看到一些东西

C:\Users\nikhil\AppData\Local\Android\Sdk\platform-tools>adb install app-qa-debug.apk

安装后你可以得到消息

执行流式传输

安装成功

【讨论】:

    【解决方案2】:

    适用于想要从 Linux 系统加载 apk 并在其上运行 React 本机应用程序的人。 我也给出了 android 应用程序所在的路径。方便需要找apk文件的人去查看。

    adb -s 434eeads install android/app/build/outputs/apk/debug/app-debug.apk
    

    用于在手机上重新安装安卓应用

    adb -s 434eeads install -r android/app/build/outputs/apk/debug/app-debug.apk
    

    -s -> 来源/序列号

    r -> 重新安装 路径+文件名:android/app/build/outputs/apk/debug/app-debug.apk

    它用于反应原生应用程序。

    【讨论】:

      【解决方案3】:

      我在我的 Windows 机器上使用此脚本(将当前文件夹中的所有 apk 安装到所有可用设备)

      Write-Host "Listing APKs..."
      
      $List_Apks = New-Object System.Collections.ArrayList
      
      Get-ChildItem -Path .\ -Filter *.apk -File -Name| ForEach-Object {
          $apk_filename = [System.IO.Path]::GetFileName($_)
          $List_Apks+=$apk_filename
          $apk_filename
      }
      
      Write-Host "Found apks "$List_Apks.Length
      Write-Host ""
      
      $raw_list = adb devices
      $array_lines = $raw_list.Split("\n")
      
      Write-Host "Listing devices "
      
      $List_Device_Ids = New-Object System.Collections.ArrayList
      
      1..($array_lines.Length-2) | foreach {
        $device_id = $array_lines[$_].Split([char]0x9)[0]
        $List_Device_Ids+=$device_id
        $device_id
      }
      
      Write-Host "Found devices "$List_Device_Ids.Length
      
      0..($List_Device_Ids.Length-1) | foreach {
          $device_id = $List_Device_Ids[$_]
      
          0..($List_Apks.Length-1) | foreach {
              $apk_file_name = $List_Apks[$_]
      
              Write-Host "Installing " $apk_file_name "->" $device_id
      
              adb -s $device_id install -r $apk_file_name
          }
      }
      
      
      Write-Host "Endo"
      

      将此保存为 install-apks.ps1

      然后从 powershell :

      powershell -executionpolicy bypass -File .\install-apks.ps1
      

      【讨论】:

        【解决方案4】:

        您可以使用 adb 命令行工具或 gradle 命令来执行此操作: See this Guide.

        设置命令行 adb

        export PATH=/Users/mayurik/Library/Android/sdk/platform-tools/adb:/Users/mayurik/Library/Android/sdk/tool
        

        用于构建和安装的 Gradle 命令。

         #Start Build Process
            echo "\n\n\nStarting"
            ./gradlew clean
        
            ./gradlew build
        
            ./gradlew assembleDebug
        
            #Install APK on device / emulator
            echo "installDebug...\n"
        
            ./gradlew installDebug
        

        您还可以使用

        卸载任何以前的版本
          `./gradlew uninstallDebug`
        

        您可以在设备/模拟器上启动您的主要活动,如下所示

        #Launch Main Activity
        adb shell am start -n "com.sample.androidbuildautomationsample/com.sample.androidbuildautomationsample.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
        

        【讨论】:

          【解决方案5】:

          要安装调试(测试)apk,请使用-t

          运行 Build-Make 项目

          在 app 文件夹中查找最后生成的 apk。

          例子:

          adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk
          

          【讨论】:

            【解决方案6】:

            您可以使用 ant 在命令行上构建。 See this guide.

            然后,您可以在命令行中使用adb 进行安装。

            adb install -r MyApp.apk
            

            -r 标志用于替换现有应用程序。

            【讨论】:

              【解决方案7】:

              像在 Android Studio 中一样安装 APK 文件的命令如下所示。

              1) 推送您的应用:

              adb push /pathOfApk/com.my.awesome.apk /data/local/tmp/com.my.awesome
              

              com.my.awesome 是你的包。

              2) 安装:

              adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
              

              【讨论】:

              • 如果您安装的应用程序允许您以 root 身份通过 ssh 进行连接,则此命令可以正常工作。 :-)
              【解决方案8】:
              1. Win+R > cmd
              2. 导航到 android-sdk windows 文件夹中的 platform-tools\
              3. 输入 adb
              4. 现在按照 Mohit Kanada 编写的步骤操作(确保提及 .apk 文件的完整路径,例如 d:\android-apps\test.apk)

              【讨论】:

              • 您需要将其添加到@Mohit Kanada 的答案中 - 而不是将这些步骤写成答案。
              【解决方案9】:

              就是这么简单!

              例如我的 apk 文件位置是:d:\myapp.apk

              1. 运行 cmd

              2. 导航到“platform-tools”文件夹(在 sdk 文件夹中)

              3. 启动你的模拟器设备(假设它的名字是 5556:MyDevice)

              4. 在 cmd 中输入此代码:

                adb -s emulator-5556 install d:\myapp.apk

              稍等片刻,就完成了!!

              【讨论】:

              • 您也可以将 platform-tools 目录添加到您的路径中,这样您就不必每次都导航到它。
              【解决方案10】:

              您可能来到这里是因为您也想构建它!

              构建

              gradlew
              

              (在 Windows 上 gradlew.bat

              然后安装

              adb install -r exampleApp.apk
              

              -r 使其替换现有副本,如果安装在模拟器上,请添加-s

              奖金

              我在~/.bash_profile中设置了一个别名

              alias bi="gradlew && adb install -r exampleApp.apk"
              

              (构建和安装的缩写)

              【讨论】:

                【解决方案11】:

                执行此操作的简单方法是通过命令

                adb install example.apk
                

                如果你想以连接设备为目标,你可以添加参数“-d”

                adb install -d example.apk
                

                如果您连接了多个设备/模拟器,您将收到此错误

                adb:错误:连接失败:多个设备/模拟器 - 等待设备 - 错误:多个设备/模拟器

                为避免您可以通过以下命令列出所有设备

                adb devices
                

                你会得到如下结果

                 C:\Windows\System32>adb devices 
                 List of devices attached 
                 a3b09hh3e    device 
                 emulator-5334    device
                

                选择其中一种设备并将参数添加到 adb 命令中,如下所示“-s a3b09hh3e”

                adb -s a3b09a6e install  example.apk
                

                如果apk的路径很长并且有空格,也可以作为提示,只需将其添加在双引号之间,如

                adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"
                

                【讨论】:

                  【解决方案12】:

                  您可以使用下面的代码从命令行安装应用程序

                  adb install example.apk
                  

                  这个apk安装在当前打开的模拟器的内存中。

                  adb install -s example.apk
                  

                  这个apk安装在当前打开的模拟器的sd卡中。

                  您还可以将 apk 安装到 adb 已连接设备列表中的特定设备。

                  adb -s emulator-5554 install myapp.apk
                  

                  有关其他选项,另请参阅 adb help

                  【讨论】:

                  • 只是为将来遇到问题的任何人添加此内容,添加 -d 以强制通过 USB 连接进行安装。我有问题,并添加它修复了它。 adb -d install myApp-release.apk
                  • adb install -d 不会强制使用 USB。来自 adb 的帮助:(-d: allow version code downgrade)
                  • 来自developer.android.com/tools/help/adb.html#commandsummary : "-d | 将 adb 命令定向到唯一连接的 USB 设备。"
                  • -d 混淆的答案是,@ZachCase 和 @ScottStafford 都是正确的。 ADB 选项和 ADB 命令选项是不同的:adb -d install file.apk 安装到通过 USB 连接的单个 Android 设备 [see] 而adb install -d file.apk 安装可能降级的 APK [see]。
                  • 使用adb install -r example.apk 安装/更新应用程序。 -r 将更新已安装的应用程序。
                  【解决方案13】:

                  使用 Android Debug Bridge 命令行工具adb 例如:adb install filename.apk

                  adb 的一个很好的参考是Here

                  install [options] <PATH>    Installs a package (specified by <PATH>) to the system.
                  Options:
                  
                  -l: Install the package with forward lock.
                  -r: Reinstall an exisiting app, keeping its data.
                  -t: Allow test APKs to be installed.
                  -i <INSTALLER_PACKAGE_NAME>: Specify the installer package name.
                  -s: Install package on the shared mass storage (such as sdcard).
                  -f: Install package on the internal system memory.
                  -d: Allow version code downgrade.
                  uninstall [options] <PACKAGE>   Removes a package from the system.
                  Options:
                  
                  -k: Keep the data and cache directories around after package removal.
                  

                  【讨论】:

                  • -s (特定设备) = 将命令定向到指定序列号的设备或模拟器。
                  【解决方案14】:

                  您可以通过在关键字“install”之前输入设备/模拟器标识符,然后输入 apk 的路径,将 apk 安装到特定设备/模拟器。请注意,'install' 关键字后面的 -s 开关(如果有)表示安装到 sd 卡。示例:

                  adb -s emulator-5554 install myapp.apk
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-03-26
                    • 2019-05-28
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多