Windows 명령 줄을 사용하여 파일을 설치하고 싶습니다. 먼저 Eclipse를 사용하지 않고 모든 .jar 파일을 컴파일하여 Android 응용 프로그램의 .apk 파일을 만든 후 빌드하고 싶습니다.
누구나 Eclipse를 사용하지 않고 명령 줄을 사용 하여이 작업을 수행하는 방법을 알고 있습니다.
Windows 명령 줄을 사용하여 파일을 설치하고 싶습니다. 먼저 Eclipse를 사용하지 않고 모든 .jar 파일을 컴파일하여 Android 응용 프로그램의 .apk 파일을 만든 후 빌드하고 싶습니다.
누구나 Eclipse를 사용하지 않고 명령 줄을 사용 하여이 작업을 수행하는 방법을 알고 있습니다.
답변:
아래 코드를 사용하여 명령 줄에서 응용 프로그램을 설치할 수 있습니다
adb install example.apk
이 apk는 현재 열린 에뮬레이터의 내부 메모리에 설치됩니다.
adb install -s example.apk
이 APK는 현재 열린 에뮬레이터의 SD 카드에 설치됩니다.
연결된 장치 목록의 특정 장치에 apk를 adb에 설치할 수도 있습니다.
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
이러한 장치 중 하나를 선택하고 아래처럼 "-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라고 가정하십시오)
이 코드를 cmd에 입력하십시오.
adb -s 에뮬레이터 -5556 설치 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