コマンドプロンプトからapkファイルをインストールしますか?


445

Windowsコマンドラインを使用してファイルをインストールしたい。最初に、すべての.jarファイルをコンパイルしてから、Eclipseを使用せずにAndroidアプリケーション用の.apkファイルを作成してビルドしたいと思います。

Eclipseを使用せずに、コマンドラインを使用するだけでこれを行う方法を知っている人はいますか?


回答に追加するには、antが存在するディレクトリをパスに追加してください。
Ravi Vyas、2011

stackoverflow.com/questions/3480201/… エミュレータにApkをインストールする正しい方法
Naveen Tamrakar

回答:


688

以下のコードを使用して、コマンドラインからアプリケーションをインストールできます

adb install example.apk

このapkは、現在開いているエミュレータの内部メモリにインストールされます。

adb install -s example.apk

このapkは現在開かれているエミュレータのSDカードにインストールされています。

adbに接続されたデバイスリストの特定のデバイスにapkをインストールすることもできます。

adb -s emulator-5554 install myapp.apk

他のオプションについては、adbのヘルプも参照してください。


12
将来問題が発生する人のためにこれを追加-dするために、USB接続を介したインストールを強制するために追加します。私には問題があり、それを修正して修正しました。adb -d install myApp-release.apk
牛は2014年

7
adb install -dUSBを強制しません。adbの助けから:(-d: allow version code downgrade)
スコットスタッフォード

6
developer.android.com/tools/help/adb.html#commandsummaryから:「-d | adbコマンドを接続されている唯一のUSBデバイスに送信します。」
Noyo、2015

39
-d混乱の答えは、@ ZachCaseと@ScottStaffordの両方が正しいということです。ADBオプションとADBコマンドオプションは異なりますadb -d install file.apk。USBで接続された単一のAndroidデバイスにインストールします[参照 ]、adb install -d file.apkダウングレードの可能性があるAPK をインストールします[参照 ]。
タニアス2016年

12
adb install -r example.apkアプリのインストール/更新に使用します。-rそれが既にインストールされているならアプリを更新します。
ben_joseph '29年


40

キーワード「install」の前にデバイス/エミュレーターの識別子を入力し、次にapkへのパスを入力することで、特定のデバイス/エミュレーターにapkをインストールできます。「install」キーワードの後に​​-sスイッチがある場合は、それがsdカードへのインストールを意味することに注意してください。例:

adb -s emulator-5554 install myapp.apk

39

Android Debug Bridgeコマンドラインツールを使用します(adb例:)adb install filename.apk

の良い参考資料adbこちら

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(特定のデバイス)=シリアル番号が指定されたデバイスまたはエミュレーターにコマンドを送信します。
Darpan 2014

29

これを行う簡単な方法はコマンドです

adb install example.apk

また、接続デバイスをターゲットにする場合は、パラメーター「-d」を追加できます。

adb install -d example.apk

複数のデバイス/エミュレーターが接続されている場合、このエラーが発生します

adb:エラー:接続に失敗しました:複数のデバイス/エミュレーター-デバイスを待機しています-エラー:複数のデバイス/エミュレーター

以下のコマンドですべてのデバイスをリストできることを回避するには

adb devices

以下のような結果が得られます

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

これらのデバイスの1つを選択し、以下のように "-s a3b09hh3e"としてadbコマンドにパラメーターを追加します

adb -s a3b09a6e install  example.apk

apkのパスが長く、スペースがある場合のヒントとしても、次のように二重引用符で囲みます。

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

19
  1. Win+ R> cmdを押します
  2. android-sdk windowsフォルダのplatform-tools \に移動します
  3. adbと入力します
  4. 次に、Mohit Kanadaによって書かれた手順に従います(たとえば、.dkの.apkファイルのパス全体に言及していることを確認してください:d:\ android-apps \ test.apk)

1
@Mohit Kanadaの回答に追加する必要があります。これらの手順を回答として記述しないでください。
STF 2017年

13

Android Studioと同じようにAPKファイルをインストールするためのコマンドを以下に示します。

1)アプリをプッシュするには:

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

com.my.awesomeあなたのパッケージはどこですか。

2)インストールするには:

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

rootとしてssh経由で接続できるアプリをインストールすると、このコマンドは正常に動作します。:-)
TSJNachos117 2018年

11

とても簡単です!

たとえば、私のapkファイルの場所は次のとおりです:d:\ myapp.apk

  1. cmdを実行する

  2. (sdkフォルダー内の)「platform-tools」フォルダーに移動します

  3. エミュレーターデバイスを起動します(名前が5556:MyDeviceであるとします)

  4. コマンドに次のコードを入力します。

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

しばらくお待ちください。完了です。


パスにplatform-toolsディレクトリを追加することもできるため、毎回そこに移動する必要はありません。
Prashanth Chandra 2016

4

あなたもそれを構築したいので、あなたはおそらくここにいます!

ビルド

gradlew

(Windowsの場合gradlew.bat

次にインストールします

adb install -r exampleApp.apk

(これ-rにより、既存のコピーが置き換え-sられ、エミュレーターにインストールする場合は追加されます)

ボーナス

にエイリアスを設定しました ~/.bash_profile

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

(ビルドとインストールの略)


4

デバッグ(テスト)APKをインストールするには、次を使用します-t

Build-Makeプロジェクトを実行する

アプリフォルダーで最後に生成されたapkを探します。

例:

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

2

これは、adbコマンドラインツールまたはgradleコマンドを使用して実行できます 。このガイドを参照してください

セットアップコマンドラインadb

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

ビルドしてインストールするGradleコマンド。

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

    ./gradlew build

    ./gradlew assembleDebug

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

    ./gradlew installDebug

以前のバージョンをアンインストールすることもできます

  `./gradlew uninstallDebug`

以下のように、デバイス/エミュレータでメインアクティビティを起動できます

#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

私は自分のWindowsマシンでこのスクリプトを使用しています(現在のフォルダー内のすべてのAPKをすべての使用可能なデバイスにインストールします)

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"

これをinstall-apks.ps1として保存します

次に、powershellから:

powershell -executionpolicy bypass -File .\install-apks.ps1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.