Установить файл apk из командной строки?


445

Я хочу установить файл с помощью командной строки Windows. Сначала я хочу собрать после компиляции всех файлов .jar, чтобы создать файл .apk для приложения Android без использования Eclipse.

Кто-нибудь знает, как это можно сделать без использования Eclipse & только с использованием командной строки.


Чтобы добавить ответы, убедитесь, что вы добавили каталог, в котором находится ant, к вашему пути.
Рави Вьяс

stackoverflow.com/questions/3480201/… Правильный способ установить Apk в эмуляторе
Навин Тамракар

Ответы:


690

Вы можете использовать код ниже, чтобы установить приложение из командной строки

adb install example.apk

этот apk установлен во внутренней памяти текущего открытого эмулятора.

adb install -s example.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. От помощи АБР:(-d: allow version code downgrade)
Скотт Стаффорд

6
От developer.android.com/tools/help/adb.html#commandsummary : «-d | Направить команду adb только на подключенное USB-устройство».
Noyo

39
Ответ на -dпутаницу заключается в том, что @ZachCase и @ScottStafford верны. Параметры ADB и параметры команд ADB - это разные вещи: adb -d install file.apkустановка на одно устройство Android, подключенное через USB [см. ], А adb install -d file.apkустановка APK с возможным понижением версии [см. ].
Танус

12
Используйте adb install -r example.apkдля установки / обновления приложения. -rБудет обновлять приложение , если оно уже установлено.
ben_joseph


40

Вы можете установить apk на определенное устройство / эмулятор, введя идентификатор устройства / эмулятора перед ключевым словом «install» и затем путь к apk. Обратите внимание, что параметр -s, если он есть, после ключевого слова install указывает на установку на SD-карту. Пример:

adb -s emulator-5554 install myapp.apk

39

Используйте Android Debug Bridge утилиту командной строки , 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 (конкретное устройство) = направляет команду на устройство или эмулятор с указанным серийным номером.
Дарпан

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 long и пробелы, просто добавьте его между двойными кавычками, как

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

19
  1. Нажмите Win+ R> cmd
  2. Перейдите в каталог platform-tools \ в папке windows android-sdk
  3. Тип АДБ
  4. Теперь следуйте инструкциям, написанным Мохитом Канадой (обязательно укажите полный путь к файлу .apk, например, для d. \ android-apps \ test.apk).

1
вам нужно добавить его в ответ @Mohit Kanada, а не писать эти шаги в качестве ответа.
STF

13

Команды для установки APK-файлов, как это делается в Android Studio, вы можете увидеть ниже.

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"

Если вы устанавливаете приложение, которое позволяет подключаться через ssh от имени пользователя root, эта команда будет работать нормально. :-)
TSJNachos117

11

Это так просто!

например, мое местоположение файла apk: d: \ myapp.apk

  1. запустить cmd

  2. перейдите в папку «platform-tools» (в папке sdk)

  3. запустите устройство эмулятора (скажем, его имя 5556: MyDevice)

  4. введите этот код в cmd:

    adb -s emulator-5556 установить d: \ myapp.apk

Подождите немного, и это СДЕЛАНО!


Вы также можете добавить в свой путь каталог platform-tools, чтобы вам не приходилось каждый раз переходить по нему.
Прашант Чандра

4

Вы, вероятно, здесь, потому что вы хотите построить это тоже!

Сложение

gradlew

(В Windows gradlew.bat)

Затем установите

adb install -r exampleApp.apk

( -rОн заменяет существующую копию, добавляя ее -sпри установке на эмуляторе)

бонус

Я установил псевдоним в моем ~/.bash_profile

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

(Сокращение от Build and Install)


4

Чтобы установить отладочный (тестовый) apk, используйте -t:

Запустить Build-Make Project

Найдите последний сгенерированный 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 (все apks в текущей папке на всех доступных устройствах)

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.