Instalar um arquivo apk no prompt de comando?

445

Quero instalar um arquivo usando a linha de comando do Windows. Primeiro, quero criar depois de compilar todos os arquivos .jar para criar um arquivo .apk para um aplicativo Android sem usar o Eclipse.

Alguém sabe como isso pode ser feito sem o uso do Eclipse e somente usando a linha de comando.

Máx.
fonte
Para adicionar às respostas, adicione o diretório em que o form reside no seu caminho.
Ravi Vyas
stackoverflow.com/questions/3480201/... direito maneira de instalar Apk em emulater
Naveen Tamrakar

Respostas:

688

Você pode usar o código abaixo para instalar o aplicativo na linha de comando

adb install example.apk

Este apk é instalado na memória interna do emulador aberto atual.

adb install -s example.apk

Este apk é instalado no cartão SD do emulador aberto atual.

Você também pode instalar um apk para um dispositivo específico na lista de dispositivos conectados ao adb.

adb -s emulator-5554 install myapp.apk

Consulte também a ajuda do adb para outras opções.

Mohit Kanada
fonte
12
Apenas para adicionar isso a qualquer pessoa que tenha problemas no futuro, adicione -dpara forçar a instalação através de conexões USB. Eu tive problemas, e adicionando que corrigi-lo adb -d install myApp-release.apk
Vaca
7
adb install -dNÃO força USB. Da ajuda de adb:(-d: allow version code downgrade)
Scott Stafford
6
Em developer.android.com/tools/help/adb.html#commandsummary : "-d | Direciona um comando adb para o único dispositivo USB conectado".
Noyo 27/08/2015
39
A resposta para a -dconfusão é que @ZachCase e @ScottStafford estão corretos. As opções ADB e as opções de comando ADB são coisas diferentes: adb -d install file.apkinstala no único dispositivo Android conectado por USB [consulte ] enquanto adb install -d file.apkinstala o APK com um possível downgrade [consulte ].
tanius
12
Use adb install -r example.apkpara instalar / atualizar um aplicativo. O -raplicativo será atualizado se ele já estiver instalado.
ben_joseph 29/05
44

Você pode construir na linha de comando com ant. Veja este guia .

Em seguida, você pode instalá-lo usando adbna linha de comando.

adb install -r MyApp.apk

O -rsinalizador é substituir o aplicativo existente.

Graham Borland
fonte
40

Você pode instalar um apk em um dispositivo / emulador específico, inserindo o identificador do dispositivo / emulador antes da palavra-chave 'install' e, em seguida, o caminho para o apk. Observe que a opção -s, se houver, após a palavra-chave 'install' significa instalar no cartão sd. Exemplo:

adb -s emulator-5554 install myapp.apk
farid_z
fonte
39

Use o Android Debug Ponte linha de comando da ferramenta adb, por exemplo: adb install filename.apk.

Uma boa referência para adbestá aqui

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.
Abhisek Mukherjee
fonte
2
-s (dispositivo específico) = direciona o comando para o dispositivo ou emulador com o número de série especificado.
Darpan
29

A maneira simples de fazer isso é por comando

adb install example.apk

e se você deseja segmentar o dispositivo de conexão, pode adicionar o parâmetro "-d"

adb install -d example.apk

se você tiver mais de um dispositivo / emulador conectado, receberá este erro

adb: erro: falha na conexão: mais de um dispositivo / emulador - aguardando dispositivo - erro: mais de um dispositivo / emulador

para evitar que você possa listar todos os dispositivos pelo comando abaixo

adb devices

você obterá resultados como abaixo

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

escolheu um desses dispositivos e adicione parâmetro ao comando adb como "-s a3b09hh3e", conforme abaixo

adb -s a3b09a6e install  example.apk

Também como dica, se o caminho do apk for longo e tiver espaços, basta adicioná-lo entre aspas duplas, como

adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"
Tarek El-Mallah
fonte
19
  1. Pressione Win+ R> cmd
  2. Navegue para platform-tools \ na pasta android-sdk windows
  3. Digite adb
  4. agora siga as etapas escritas por Mohit Kanada (certifique-se de mencionar todo o caminho do arquivo .apk, por exemplo: d: \ android-apps \ test.apk)
Ranjit Virdi
fonte
1
você precisa adicioná-lo à resposta de @Mohit Kanada - e não escrever essas etapas como resposta.
STF
13

Comandos para instalar arquivos APK como no Android Studio, você pode ver abaixo.

1) Para enviar seu aplicativo por push:

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

onde com.my.awesomeestá seu pacote

2) Para instalar:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
Dima Kozhevin
fonte
Se você instalar um aplicativo que permita a conexão via ssh como root, este comando funcionará bem. :-)
TSJNachos117
11

É tão fácil!

por exemplo, o local do meu arquivo apk é: d: \ myapp.apk

  1. executar cmd

  2. navegue até a pasta "platform-tools" (na pasta sdk)

  3. inicie seu dispositivo emulador (digamos que seja 5556: MyDevice)

  4. digite este código no cmd:

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

Aguarde um pouco e está feito !!

Hamid
fonte
Você também pode adicionar o diretório de ferramentas da plataforma ao seu caminho, para não precisar navegar nele sempre.
Prashanth Chandra
4

Você provavelmente está aqui porque deseja construí-lo também!

Construir

gradlew

(No Windows gradlew.bat)

Então instale

adb install -r exampleApp.apk

( -rIsso faz com que substitua a cópia existente, adicione um -sse estiver instalando em um emulador)

Bônus

Eu configurei um alias no meu ~/.bash_profile

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

(Abreviação de Build and Install)

Gibolt
fonte
4

Para instalar um apk de depuração (teste), use -t:

Executar projeto Build-Make

Procure o último apk gerado na pasta do aplicativo.

Exemplo:

adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk
amor ao vivo
fonte
2

Você pode fazer isso usando as ferramentas de linha de comando adb OU os comandos gradle: consulte este guia .

Configurar linha de comando adb

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

Comandos Gradle para criar e instalar.

 #Start Build Process
    echo "\n\n\nStarting"
    ./gradlew clean

    ./gradlew build

    ./gradlew assembleDebug

    #Install APK on device / emulator
    echo "installDebug...\n"

    ./gradlew installDebug

Você também pode desinstalar qualquer versão anterior usando

  `./gradlew uninstallDebug`

Você pode iniciar sua atividade principal no dispositivo / emulador como abaixo

#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
Mayuri Khinvasara
fonte
0

Eu uso esse script na minha máquina Windows (instale todos os aplicativos da pasta atual em todos os dispositivos disponíveis)

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"

Salve isso como install-apks.ps1

Em seguida, a partir do PowerShell:

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