Eine APK-Datei von der Eingabeaufforderung installieren?


445

Ich möchte eine Datei über die Windows-Befehlszeile installieren. Zuerst möchte ich nach dem Kompilieren aller JAR-Dateien erstellen, um eine APK-Datei für eine Android-Anwendung ohne Verwendung von Eclipse zu erstellen.

Weiß jemand, wie dies ohne die Verwendung von Eclipse und nur über die Befehlszeile möglich ist?


Um die Antworten zu ergänzen, stellen Sie sicher, dass Sie das Verzeichnis, in dem sich ant befindet, zu Ihrem Pfad hinzufügen.
Ravi Vyas

stackoverflow.com/questions/3480201/… Richtiger Weg, um Apk im Emulater zu installieren
Naveen Tamrakar

Antworten:


688

Sie können den folgenden Code verwenden, um die Anwendung über die Befehlszeile zu installieren

adb install example.apk

diese apk ist im internen speicher des aktuell geöffneten emulators installiert.

adb install -s example.apk

diese apk ist auf der sd-karte des aktuell geöffneten emulators installiert.

Sie können auch eine apk auf einem bestimmten Gerät in der Liste der verbundenen Geräte mit der ADB installieren.

adb -s emulator-5554 install myapp.apk

Weitere Optionen finden Sie auch in der adb-Hilfe .


12
Fügen Sie hinzu -d, um die Installation über USB-Verbindungen zu erzwingen , um dies für alle zu ergänzen, die in Zukunft Probleme haben . Ich hatte Probleme und das Hinzufügen hat das Problem behoben. adb -d install myApp-release.apk
Kuh

7
adb install -derzwingt KEIN USB. Von adbs Hilfe:(-d: allow version code downgrade)
Scott Stafford

6
Von developer.android.com/tools/help/adb.html#commandsummary : "-d | Richten Sie einen adb-Befehl auf das einzige angeschlossene USB-Gerät."
Noyo

39
Die Antwort auf die -dVerwirrung lautet, dass sowohl @ZachCase als auch @ScottStafford korrekt sind. ADB-Optionen und ADB-Befehlsoptionen sind verschiedene Dinge: adb -d install file.apkInstalliert auf dem einzelnen über USB angeschlossenen Android-Gerät [siehe ], während adb install -d file.apkdas APK mit einem möglichen Downgrade installiert wird [siehe ].
Tanius

12
Verwenden Sie adb install -r example.apkdiese Option, um eine App zu installieren / aktualisieren. Das -raktualisiert die App, wenn sie bereits installiert ist.
ben_joseph

44

Sie können mit ant auf der Befehlszeile aufbauen. Siehe diese Anleitung .

Anschließend können Sie es mithilfe adbder Befehlszeile installieren .

adb install -r MyApp.apk

Das -rFlag soll die vorhandene Anwendung ersetzen.


40

Sie können eine apk auf einem bestimmten Gerät / Emulator installieren, indem Sie die Geräte- / Emulator-ID vor dem Schlüsselwort 'install' und dann den Pfad zur apk eingeben. Beachten Sie, dass der Schalter -s, falls vorhanden, nach dem Schlüsselwort 'install' die Installation auf der SD-Karte anzeigt. Beispiel:

adb -s emulator-5554 install myapp.apk

39

Verwenden Sie das Befehlszeilentool Android Debug Bridge, adbz adb install filename.apk.

Eine gute Referenz für adbist hier

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 (bestimmtes Gerät) = Leitet den Befehl an das Gerät oder den Emulator mit der angegebenen Seriennummer.
Darpan

29

Der einfache Weg, dies zu tun, ist auf Befehl

adb install example.apk

und wenn Sie auf ein Verbindungsgerät abzielen möchten, können Sie den Parameter "-d" hinzufügen.

adb install -d example.apk

Wenn Sie mehr als ein Gerät / Emulator angeschlossen haben, wird dieser Fehler angezeigt

adb: Fehler: Verbindung fehlgeschlagen: Mehr als ein Gerät / Emulator - Warten auf Gerät - Fehler: Mehr als ein Gerät / Emulator

Um dies zu vermeiden, können Sie alle Geräte mit dem folgenden Befehl auflisten

adb devices

Sie erhalten Ergebnisse wie unten

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

Wählen Sie eines dieser Geräte aus und fügen Sie dem Befehl adb den Parameter "-s a3b09hh3e" wie folgt hinzu

adb -s a3b09a6e install  example.apk

auch als hinweis wenn der pfad der apk lang ist und ein raumzeichen hat, füge ihn einfach zwischen doppelten anführungszeichen wie hinzu

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

19
  1. Presse Win+ R> cmd
  2. Navigieren Sie im Windows-Ordner android-sdk zu platform-tools \
  3. Geben Sie adb ein
  4. Befolgen Sie nun die Schritte von Mohit Kanada (stellen Sie sicher, dass Sie den gesamten Pfad der APK-Datei für z. B. d: \ android-apps \ test.apk angeben).

1
Sie müssen es zu @Mohit Kanadas Antwort hinzufügen - und diese Schritte nicht als Antwort schreiben.
STF

13

Befehle zum Installieren von APK-Dateien wie in Android Studio finden Sie unten.

1) So pushen Sie Ihre App:

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

Wo com.my.awesomeist dein Paket?

2) So installieren Sie:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"

Wenn Sie eine App installieren, mit der Sie eine Verbindung über ssh als root herstellen können, funktioniert dieser Befehl einwandfrei. :-)
TSJNachos117

11

Es ist so einfach!

Zum Beispiel ist mein Apk-Dateispeicherort: d: \ myapp.apk

  1. Führen Sie cmd aus

  2. Navigieren Sie zum Ordner "Plattform-Tools" (im SDK-Ordner).

  3. Starten Sie Ihr Emulatorgerät (sagen wir, es heißt 5556: MyDevice)

  4. Geben Sie diesen Code in das cmd ein:

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

Warten Sie eine Weile und es ist fertig !!


Sie können Ihrem Verzeichnis auch das Plattform-Tools-Verzeichnis hinzufügen, damit Sie nicht jedes Mal dorthin navigieren müssen.
Prashanth Chandra

4

Du bist wahrscheinlich hier, weil du es auch bauen willst!

Bauen

gradlew

(Unter Windows gradlew.bat)

Dann installieren

adb install -r exampleApp.apk

( -rDadurch wird die vorhandene Kopie ersetzt. Fügen Sie eine hinzu, -swenn Sie sie auf einem Emulator installieren.)

Bonus

Ich habe einen Alias ​​in meinem eingerichtet ~/.bash_profile

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

(Abkürzung für Build and Install)


4

Um ein Debug (Test) apk zu installieren, benutze -t:

Führen Sie das Build-Make-Projekt aus

Suchen Sie im App-Ordner nach der zuletzt generierten apk.

Beispiel:

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

2

Sie können dies mit den Befehlszeilentools von adb ODER mit Gradle-Befehlen tun: Siehe dieses Handbuch .

Setup-Befehlszeile adb

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

Gradle-Befehle zum Erstellen und Installieren.

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

    ./gradlew build

    ./gradlew assembleDebug

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

    ./gradlew installDebug

Sie können auch frühere Versionen mit deinstallieren

  `./gradlew uninstallDebug`

Sie können Ihre Hauptaktivität auf dem Gerät / Emulator wie unten beschrieben starten

#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

Ich verwende dieses Skript auf meinem Windows-Computer (alle Apks im aktuellen Ordner auf allen verfügbaren Geräten installieren)

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"

Speichern Sie dies als install-apks.ps1

Dann aus der Powershell:

powershell -executionpolicy bypass -File .\install-apks.ps1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.