¿Instalar un archivo apk desde el símbolo del sistema?

445

Quiero instalar un archivo usando la línea de comando de Windows. Primero quiero compilar después de compilar todos los archivos .jar para crear un archivo .apk para una aplicación de Android sin usar Eclipse.

¿Alguien sabe cómo se puede hacer esto sin el uso de Eclipse y solo haciendo uso de la línea de comando?

Max
fuente
Para agregar a las respuestas, asegúrese de agregar el directorio donde reside ant a su ruta.
Ravi Vyas
stackoverflow.com/questions/3480201/… Forma correcta de instalar Apk en el emulador
Naveen Tamrakar
2
android.stackexchange.com/questions/12961/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Respuestas:

688

Puede usar el siguiente código para instalar la aplicación desde la línea de comandos

adb install example.apk

Este apk está instalado en la memoria interna del emulador abierto actual.

adb install -s example.apk

Este apk está instalado en la tarjeta SD del emulador abierto actual.

También puede instalar un apk en un dispositivo específico en la lista de dispositivos conectados al adb.

adb -s emulator-5554 install myapp.apk

Consulte también la ayuda de adb para otras opciones.

Mohit Kanada
fuente
12
Solo para agregar esto a cualquier persona que tenga problemas en el futuro, agregue -dpara forzar la instalación a través de conexiones USB. Tuve problemas, y agregar eso lo solucionó. adb -d install myApp-release.apk
Vaca
77
adb install -dNO fuerza el USB. De la ayuda de adb:(-d: allow version code downgrade)
Scott Stafford
66
Desde developer.android.com/tools/help/adb.html#commandsummary : "-d | Dirija un comando adb al único dispositivo USB conectado".
Noyo
39
La respuesta a la -dconfusión es que tanto @ZachCase como @ScottStafford son correctos. Las opciones ADB y las opciones de comando ADB son cosas diferentes: se adb -d install file.apkinstala en el único dispositivo Android conectado por USB [ver ] mientras adb install -d file.apkinstala el APK con una posible rebaja [ver ].
tanius
12
Use adb install -r example.apkpara instalar / actualizar una aplicación. El -ractualizará la aplicación si ya está instalada.
ben_joseph
44

Puedes construir en la línea de comando con ant. Mira esta guía .

Luego, puede instalarlo usando adben la línea de comando.

adb install -r MyApp.apk

La -rbandera es para reemplazar la aplicación existente.

Graham Borland
fuente
40

Puede instalar un apk en un dispositivo / emulador específico ingresando el identificador del dispositivo / emulador antes de la palabra clave 'instalar' y luego la ruta al apk. Tenga en cuenta que el modificador -s, si lo hay, después de la palabra clave 'instalar' significa la instalación en la tarjeta SD. Ejemplo:

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

Utilizar el Android Debug Bridge herramienta de línea de comandos adb, por ejemplo: adb install filename.apk.

Una buena referencia para adbestá aquí

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
fuente
2
-s (dispositivo específico) = dirige el comando al dispositivo o emulador con el número de serie especificado.
Darpan
29

La forma simple de hacerlo es por comando

adb install example.apk

y si desea apuntar al dispositivo de conexión, puede agregar el parámetro "-d"

adb install -d example.apk

si tiene más de un dispositivo / emulador conectado, recibirá este error

adb: error: error de conexión: más de un dispositivo / emulador - esperando dispositivo - error: más de un dispositivo / emulador

para evitar que pueda enumerar todos los dispositivos con el siguiente comando

adb devices

obtendrá resultados como a continuación

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

elija uno de estos dispositivos y agregue el parámetro al comando adb como "-s a3b09hh3e" como se muestra a continuación

adb -s a3b09a6e install  example.apk

también como una pista si la ruta de la apk es larga y tiene espacios, solo agréguela entre comillas dobles

adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"
Tarek El-Mallah
fuente
19
  1. Presione Win+ R> cmd
  2. Navegue a platform-tools \ en la carpeta de windows android-sdk
  3. Escriba adb
  4. ahora siga los pasos escritos por Mohit Kanada (asegúrese de mencionar la ruta completa del archivo .apk para, por ejemplo, d: \ android-apps \ test.apk)
Ranjit Virdi
fuente
1
debe agregarlo a la respuesta de @Mohit Kanada, y no escribir estos pasos como respuesta.
STF
13

Los comandos para instalar archivos APK como lo hace en Android Studio se pueden ver a continuación.

1) Para impulsar tu aplicación:

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

¿Dónde com.my.awesomeestá tu paquete?

2) Para instalar:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
Dima Kozhevin
fuente
Si instala una aplicación que le permite conectarse a través de ssh como root, este comando funcionará bien. :-)
TSJNachos117
11

¡Es demasiado fácil!

por ejemplo, la ubicación de mi archivo apk es: d: \ myapp.apk

  1. ejecutar cmd

  2. navegue a la carpeta "plataforma-herramientas" (en la carpeta sdk)

  3. inicie su dispositivo emulador (digamos que su nombre es 5556: MyDevice)

  4. escriba este código en el cmd:

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

¡Espera un momento y está HECHO!

Hamid
fuente
También puede agregar el directorio de herramientas de plataforma a su ruta, para que no tenga que navegar a él cada vez.
Prashanth Chandra
4

¡Probablemente estés aquí porque también quieres construirlo!

Construir

gradlew

(En Windows gradlew.bat)

Luego instalar

adb install -r exampleApp.apk

(Esto -rhace que reemplace la copia existente, agregue una -ssi se instala en un emulador)

Prima

Configuré un alias en mi ~/.bash_profile

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

(Corto para construir e instalar)

Gibolt
fuente
4

Para instalar un apk de depuración (prueba), use -t:

Ejecutar proyecto Build-Make

Busque el último apk generado en la carpeta de la aplicación.

Ejemplo:

adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk
vive el amor
fuente
2

Puede hacerlo utilizando las herramientas de línea de comandos de adb O comandos de gradle: consulte esta guía .

Configurar la línea de comando adb

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

Comandos Gradle para construir 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

También puede desinstalar cualquier versión anterior usando

  `./gradlew uninstallDebug`

Puede iniciar su actividad principal en el dispositivo / emulador como a continuación

#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
fuente
0

Utilizo este script en mi máquina con Windows (todos los dispositivos en la carpeta actual a todos los dispositivos disponibles)

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"

Guarde esto como install-apks.ps1

Luego de la PowerShell:

powershell -executionpolicy bypass -File .\install-apks.ps1
congelación_
fuente