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?

Max
quelle
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
2
android.stackexchange.com/questions/12961/…
Ciro Santilli 4 冠状 病 六四.

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 .

Mohit Kanada
quelle
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.

Graham Borland
quelle
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
farid_z
quelle
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.
Abhisek Mukherjee
quelle
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"
Tarek El-Mallah
quelle
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).
Ranjit Virdi
quelle
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"
Dima Kozhevin
quelle
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 !!

Hamid
quelle
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)

Gibolt
quelle
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
Live-Liebe
quelle
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
Mayuri Khinvasara
quelle
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
Einfrieren_
quelle