从命令提示符安装apk文件?


444

我想使用Windows命令行安装文件。首先,我想在编译所有.jar文件之后为不使用Eclipse的Android应用程序创建.apk文件而进行构建。

有谁知道在不使用Eclipse的情况下只能通过命令行来完成此工作。


要添加答案,请确保将ant所在的目录添加到路径中。
拉维·维亚斯

stackoverflow.com/questions/3480201/… 在模拟器中安装Apk的正确方法
Naveen Tamrakar 2013年

Answers:


685

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

adb install example.apk

该apk安装在当前打开的模拟器的内部存储器中。

adb install -s example.apk

该APK安装在当前打开的模拟器的SD卡中。

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

adb -s emulator-5554 install myapp.apk

另请参阅adb帮助


12
只是为了给将来遇到问题的任何人添加此功能,请添加-d以通过USB连接强制安装。我遇到了问题,并添加了解决此问题的方法。adb -d install myApp-release.apk
母牛

7
adb install -d不强制使用USB。在adb的帮助下:(-d: allow version code downgrade)
Scott Stafford

6
来自developer.android.com/tools/help/adb.html#commandsummary:“ -d |将adb命令定向到唯一连接的USB设备。”
Noyo 2015年

39
-d混乱的答案是,@ ZachCase和@ScottStafford都是正确的。ADB选项和ADB命令选项是不同的:adb -d install file.apk安装到通过USB连接的单个Android设备上[请参见 ],而adb install -d file.apk安装具有可能降级的APK [请参见 ]。
tanius

12
使用adb install -r example.apk安装/更新的应用程序。的-r,如果它已经安装将更新的应用程序。
ben_joseph


40

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

adb -s emulator-5554 install myapp.apk

39

使用Android调试桥命令行工具,adb例如:adb install filename.apk

一个很好的参考adb在这里

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.

2
-s(特定设备)=使用指定的序列号将命令定向到设备或仿真器。
2014年

29

简单的方法是通过命令

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"

19
  1. Win+ R> cmd
  2. 导航到android-sdk Windows文件夹中的platform-tools \
  3. 输入adb
  4. 现在,按照Mohit Kanada撰写的步骤进行操作(确保您提及.apk文件的完整路径,例如d:\ android-apps \ test.apk)

1
您需要将其添加到@Mohit Kanada的答案中-而不是将这些步骤写为答案。
STF

13

像在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连接,则此命令将正常运行。:-)
TSJNachos117 '18

11

太简单了!

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

  1. 运行cmd

  2. 导航到“平台工具”文件夹(在sdk文件夹中)

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

  4. 在cmd中键入以下代码:

    adb -s emulator-5556安装d:\ myapp.apk

等待一会儿,它就完成了!


您也可以将platform-tools目录添加到路径中,因此不必每次都导航到该目录。
Prashanth Chandra

4

您可能在这里,因为您也想构建它!

建立

gradlew

(在Windows上gradlew.bat

然后安装

adb install -r exampleApp.apk

(这-r将替换现有副本,-s如果在模拟器上安装,则添加一个)

奖金

我在自己的电脑上设置了别名 ~/.bash_profile

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

(简短的构建和安装)


4

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

运行构建项目

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

例:

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

2

您可以使用adb命令行工具或gradle命令来执行此操作: 请参阅本指南

设置命令行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

0

我在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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.