Windowsコマンドラインを使用してファイルをインストールしたい。最初に、すべての.jarファイルをコンパイルしてから、Eclipseを使用せずにAndroidアプリケーション用の.apkファイルを作成してビルドしたいと思います。
Eclipseを使用せずに、コマンドラインを使用するだけでこれを行う方法を知っている人はいますか?
Windowsコマンドラインを使用してファイルをインストールしたい。最初に、すべての.jarファイルをコンパイルしてから、Eclipseを使用せずにAndroidアプリケーション用の.apkファイルを作成してビルドしたいと思います。
Eclipseを使用せずに、コマンドラインを使用するだけでこれを行う方法を知っている人はいますか?
回答:
以下のコードを使用して、コマンドラインからアプリケーションをインストールできます
adb install example.apk
このapkは、現在開いているエミュレータの内部メモリにインストールされます。
adb install -s example.apk
このapkは現在開かれているエミュレータのSDカードにインストールされています。
adbに接続されたデバイスリストの特定のデバイスにapkをインストールすることもできます。
adb -s emulator-5554 install myapp.apk
他のオプションについては、adbのヘルプも参照してください。
-d
するために、USB接続を介したインストールを強制するために追加します。私には問題があり、それを修正して修正しました。adb -d install myApp-release.apk
adb install -d
USBを強制しません。adbの助けから:(-d: allow version code downgrade)
adb install -r example.apk
アプリのインストール/更新に使用します。-r
それが既にインストールされているならアプリを更新します。
antを使用してコマンドラインでビルドできます。このガイドを参照してください。
その後、adb
コマンドラインでを使用してインストールできます。
adb install -r MyApp.apk
-r
フラグは、既存のアプリケーションを置き換えることです。
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.
これを行う簡単な方法はコマンドです
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"
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"
とても簡単です!
たとえば、私のapkファイルの場所は次のとおりです:d:\ myapp.apk
cmdを実行する
(sdkフォルダー内の)「platform-tools」フォルダーに移動します
エミュレーターデバイスを起動します(名前が5556:MyDeviceであるとします)
コマンドに次のコードを入力します。
adb -s emulator-5556 install d:\ myapp.apk
しばらくお待ちください。完了です。
これは、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
私は自分の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