Installer un fichier apk à partir de l'invite de commande?

445

Je souhaite installer un fichier à l'aide de la ligne de commande Windows. Je veux d'abord construire après avoir compilé tous les fichiers .jar pour créer un fichier .apk pour une application Android sans utiliser Eclipse.

Est-ce que quelqu'un sait comment cela peut être fait sans utiliser Eclipse et uniquement en utilisant la ligne de commande.

Max
la source
Pour ajouter aux réponses, assurez-vous d'ajouter le répertoire où se trouve ant à votre chemin.
Ravi Vyas
stackoverflow.com/questions/3480201/… Bonne façon d'installer Apk dans emulater
Naveen Tamrakar
2
android.stackexchange.com/questions/12961/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Réponses:

690

Vous pouvez utiliser le code ci-dessous pour installer l'application à partir de la ligne de commande

adb install example.apk

cette apk est installée dans la mémoire interne de l'émulateur actuellement ouvert.

adb install -s example.apk

cette apk est installée dans la carte sd de l'émulateur actuellement ouvert.

Vous pouvez également installer un apk sur un appareil spécifique dans la liste des appareils connectés à l'adb.

adb -s emulator-5554 install myapp.apk

Reportez-vous également à l' aide d'Adb pour d'autres options.

Mohit Kanada
la source
12
Juste pour ajouter à cela pour toute personne ayant des problèmes à l'avenir, ajoutez -dpour forcer l'installation via des connexions USB. J'ai eu des problèmes, et l'ajout a résolu le problème. adb -d install myApp-release.apk
Cow
7
adb install -dne force PAS l'USB. De l'aide d'Adb:(-d: allow version code downgrade)
Scott Stafford
6
De developer.android.com/tools/help/adb.html#commandsummary : "-d | Dirigez une commande adb vers le seul périphérique USB connecté."
Noyo
39
La réponse à la -dconfusion est que @ZachCase et @ScottStafford sont corrects. Les options ADB et les options de commande ADB sont des choses différentes: adb -d install file.apks'installe sur le seul appareil Android connecté par USB [voir ] tout en adb install -d file.apkinstallant l'APK avec un déclassement possible [voir ].
tanius
12
Utilisez adb install -r example.apkpour installer / mettre à jour une application. Le -rmettra à jour l'application si elle est déjà installée.
ben_joseph
44

Vous pouvez construire sur la ligne de commande avec ant. Consultez ce guide .

Ensuite, vous pouvez l'installer en utilisant adbsur la ligne de commande.

adb install -r MyApp.apk

Le -rdrapeau est destiné à remplacer l'application existante.

Graham Borland
la source
40

Vous pouvez installer un apk sur un appareil / émulateur spécifique en entrant l'identifiant de l'appareil / émulateur avant le mot-clé 'installer' puis le chemin d'accès à l'apk. Notez que le commutateur -s, le cas échéant, après le mot-clé 'install' signifie l'installation sur la carte SD. Exemple:

adb -s emulator-5554 install myapp.apk
farid_z
la source
39

Utilisez l'outil de ligne de commande Android Debug Bridge adbpar exemple: adb install filename.apk.

Une bonne référence pour adbest ici

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
la source
2
-s (périphérique spécifique) = dirige la commande vers le périphérique ou l'émulateur avec le numéro de série spécifié.
Darpan
29

La façon simple de le faire est par commande

adb install example.apk

et si vous souhaitez cibler le périphérique de connexion, vous pouvez ajouter le paramètre "-d"

adb install -d example.apk

si vous avez plus d'un appareil / émulateur connecté, vous obtiendrez cette erreur

adb: erreur: échec de connexion: plusieurs périphériques / émulateur - en attente de périphérique - erreur: plusieurs périphériques / émulateur

pour éviter que vous puissiez lister tous les appareils par la commande ci-dessous

adb devices

vous obtiendrez des résultats comme ci-dessous

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

choisissez l'un de ces périphériques et ajoutez le paramètre à la commande adb comme "-s a3b09hh3e" comme ci-dessous

adb -s a3b09a6e install  example.apk

aussi comme un indice si le chemin de l'apk est long et a des espaces, il suffit de l'ajouter entre guillemets comme

adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"
Tarek El-Mallah
la source
19
  1. Appuyez sur Win+ R> cmd
  2. Accédez à platform-tools \ dans le dossier windows android-sdk
  3. Tapez adb
  4. suivez maintenant les étapes écrites par Mohit Kanada (assurez-vous de mentionner le chemin complet du fichier .apk, par exemple, d: \ android-apps \ test.apk)
Ranjit Virdi
la source
1
vous devez l'ajouter à la réponse de @Mohit Kanada - et ne pas écrire ces étapes comme réponse.
STF
13

Les commandes pour installer des fichiers APK comme dans Android Studio, vous pouvez voir ci-dessous.

1) Pour pousser votre application:

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

com.my.awesome est votre colis.

2) Pour installer:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
Dima Kozhevin
la source
Si vous installez une application qui vous permet de vous connecter via ssh en tant que root, cette commande fonctionnera correctement. :-)
TSJNachos117
11

C'est très facile!

par exemple, l'emplacement de mon fichier apk est: d: \ myapp.apk

  1. exécuter cmd

  2. accédez au dossier "platform-tools" (dans le dossier sdk)

  3. démarrez votre émulateur (disons que son nom est 5556: MyDevice)

  4. tapez ce code dans le cmd:

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

Attendez un peu et c'est fait !!

Hamid
la source
Vous pouvez également ajouter le répertoire platform-tools à votre chemin, afin que vous n'ayez pas à y accéder à chaque fois.
Prashanth Chandra
4

Vous êtes probablement ici parce que vous voulez le construire aussi!

Construire

gradlew

(Sous Windows gradlew.bat)

Ensuite, installez

adb install -r exampleApp.apk

(Le -rfait remplacer la copie existante, ajouter un -ssi l'installation sur un émulateur)

Prime

J'ai créé un alias dans mon ~/.bash_profile

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

(Abréviation de Build and Install)

Gibolt
la source
4

Pour installer une apk de débogage (test), utilisez -t :

Exécuter le projet Build-Make

Recherchez la dernière apk générée dans le dossier de l'application.

Exemple:

adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk
l'amour en direct
la source
2

Pour ce faire, utilisez les outils de ligne de commande adb OU les commandes gradle: consultez ce guide .

Configuration de la ligne de commande adb

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

Commandes Gradle à construire et à installer.

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

    ./gradlew build

    ./gradlew assembleDebug

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

    ./gradlew installDebug

Vous pouvez également désinstaller toutes les versions précédentes en utilisant

  `./gradlew uninstallDebug`

Vous pouvez lancer votre activité principale sur l'appareil / l'émulateur comme ci-dessous

#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
la source
0

J'utilise ce script sur ma machine Windows (insérez toutes les apks du dossier actuel sur tous les appareils 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"

Enregistrez-le sous install-apks.ps1

Puis à partir du PowerShell:

powershell -executionpolicy bypass -File .\install-apks.ps1
gelé_
la source