Zainstalować plik apk z wiersza polecenia?

445

Chcę zainstalować plik za pomocą wiersza polecenia systemu Windows. Najpierw chcę skompilować po skompilowaniu wszystkich plików .jar, aby utworzyć plik apk dla aplikacji na Androida bez korzystania z Eclipse.

Czy ktoś wie, jak to zrobić bez użycia Eclipse i tylko przy użyciu wiersza poleceń.

Max
źródło
Aby dodać do odpowiedzi, upewnij się, że dodajesz katalog, w którym znajduje się mrówka do ścieżki.
Ravi Vyas,
stackoverflow.com/questions/3480201/... Właściwy sposób na zainstalowanie APK w emulatorze
Naveen Tamrakar
2
android.stackexchange.com/questions/12961/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Odpowiedzi:

689

Możesz użyć poniższego kodu, aby zainstalować aplikację z wiersza poleceń

adb install example.apk

ta aplikacja jest zainstalowana w wewnętrznej pamięci aktualnie otwartego emulatora.

adb install -s example.apk

ta aplikacja jest zainstalowana na karcie SD aktualnie otwartego emulatora.

Możesz także zainstalować apk na określonym urządzeniu na liście podłączonych urządzeń do adb.

adb -s emulator-5554 install myapp.apk

Więcej informacji na temat innych opcji można znaleźć w pomocy adb .

Mohit Kanada
źródło
12
Aby dodać do tego wszystkim, którzy mają problemy w przyszłości, dodaj, -daby wymusić instalację przez połączenia USB. Miałem problemy i dodanie tego naprawiło. adb -d install myApp-release.apk
Cow
7
adb install -dNIE wymusza USB. Z pomocy adb:(-d: allow version code downgrade)
Scott Stafford
6
Od developer.android.com/tools/help/adb.html#commands Podsumowanie: „-d | Skieruj polecenie adb na jedyne podłączone urządzenie USB”.
Noyo
39
Odpowiedź na -dzamieszanie jest taka, że ​​zarówno @ZachCase, jak i @ScottStafford są poprawne. Opcje ADB i opcje poleceń ADB są różne: adb -d install file.apkinstaluje się na pojedynczym urządzeniu z Androidem podłączonym przez USB [patrz ], podczas gdy adb install -d file.apkinstaluje APK z możliwym obniżeniem wersji [patrz ].
tanius
12
Służy adb install -r example.apkdo instalowania / aktualizowania aplikacji. -rBędzie aktualizować aplikację, jeśli jest już zainstalowany.
ben_joseph
44

Możesz budować w wierszu poleceń za pomocą ant. Zobacz ten przewodnik .

Następnie możesz zainstalować go za pomocą adbwiersza polecenia.

adb install -r MyApp.apk

-rFlaga jest zastąpienie istniejącej aplikacji.

Graham Borland
źródło
40

Aplikację można zainstalować na określonym urządzeniu / emulatorze, wprowadzając identyfikator urządzenia / emulatora przed słowem kluczowym „zainstaluj”, a następnie ścieżkę do apka. Zauważ, że przełącznik -s, jeśli występuje, po słowie kluczowym „install” oznacza instalację na karcie SD. Przykład:

adb -s emulator-5554 install myapp.apk
farid_z
źródło
39

Użyj narzędzia wiersza polecenia Android Debug Bridge, adbnp adb install filename.apk. : .

Dobrym źródłem informacji adbjest tutaj

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
źródło
2
-s (określone urządzenie) = kieruje polecenie do urządzenia lub emulatora o określonym numerze seryjnym.
Darpan
29

Najprostszym sposobem na to jest polecenie

adb install example.apk

a jeśli chcesz wybrać urządzenie docelowe, możesz dodać parametr „-d”

adb install -d example.apk

jeśli masz podłączone więcej niż jedno urządzenie / emulator, pojawi się ten błąd

adb: błąd: połączenie nie powiodło się: więcej niż jedno urządzenie / emulator - oczekiwanie na urządzenie - błąd: więcej niż jedno urządzenie / emulator

aby uniknąć tego, że możesz wyświetlić listę wszystkich urządzeń według poniższego polecenia

adb devices

otrzymasz wyniki jak poniżej

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

wybierz jedno z tych urządzeń i dodaj parametr do polecenia adb jako „-s a3b09hh3e” jak poniżej

adb -s a3b09a6e install  example.apk

również jako wskazówka, jeśli ścieżka do pliku apk jest długa i ma spacje, po prostu dodaj ją między cudzysłowami, takimi jak

adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"
Tarek El-Mallah
źródło
19
  1. Naciśnij Win+ R> cmd
  2. Przejdź do platformy-tools \ w folderze Windows-SDK
  3. Wpisz adb
  4. teraz postępuj zgodnie ze wskazówkami napisanymi przez Mohit Kanadę (upewnij się, że podałeś całą ścieżkę pliku .apk dla np. d: \ android-apps \ test.apk)
Ranjit Virdi
źródło
1
musisz dodać go do odpowiedzi @Mohit Kanada - i nie pisać tych kroków jako odpowiedzi.
STF
13

Polecenia do instalowania plików APK, podobnie jak w Android Studio, można zobaczyć poniżej.

1) Aby przesłać aplikację:

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

gdzie com.my.awesome jest twoja paczka

2) Aby zainstalować:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
Dima Kozhevin
źródło
Jeśli zainstalujesz aplikację, która umożliwia połączenie przez ssh jako root, to polecenie będzie działać poprawnie. :-)
TSJNachos117,
11

To takie proste!

na przykład moja lokalizacja pliku apk to: d: \ mojaaplikacja.apk

  1. uruchom cmd

  2. przejdź do folderu „platforma-tools” (w folderze SDK)

  3. uruchom urządzenie emulujące (powiedzmy, że nazywa się 5556: MyDevice)

  4. wpisz ten kod w cmd:

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

Poczekaj chwilę i gotowe!

Hamid
źródło
Możesz także dodać katalog platformy-tools do swojej ścieżki, abyś nie musiał za każdym razem do niego nawigować.
Prashanth Chandra
4

Prawdopodobnie tu jesteś, bo też chcesz go zbudować!

Budować

gradlew

(W systemie Windows gradlew.bat)

Następnie zainstaluj

adb install -r exampleApp.apk

( -rSprawia, że ​​zastępuje istniejącą kopię, dodaje i -sinstaluje na emulatorze)

Premia

Ustawiłem w sobie alias ~/.bash_profile

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

(Skrót od kompilacji i instalacji)

Gibolt
źródło
4

Aby zainstalować aplikację do testowania (debugowania), użyj -t:

Uruchom projekt kompilacji

Poszukaj ostatnio wygenerowanego pliku APK w folderze aplikacji.

Przykład:

adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk
żywa miłość
źródło
2

Możesz to zrobić za pomocą narzędzi wiersza polecenia adb LUB poleceń stopniowania: zobacz ten przewodnik .

Ustaw wiersz polecenia adb

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

Polecenia stopniowe do kompilacji i instalacji.

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

    ./gradlew build

    ./gradlew assembleDebug

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

    ./gradlew installDebug

Możesz także odinstalować dowolne poprzednie wersje za pomocą

  `./gradlew uninstallDebug`

Możesz uruchomić swoją główną aktywność na urządzeniu / emulatorze jak poniżej

#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
źródło
0

Używam tego skryptu na moim komputerze z systemem Windows (instaluj wszystkie apki w bieżącym folderze na wszystkich dostępnych urządzeniach)

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"

Zapisz to jako install-apks.ps1

Następnie z PowerShell:

powershell -executionpolicy bypass -File .\install-apks.ps1
zamrażanie_
źródło