명령 프롬프트에서 apk 파일을 설치 하시겠습니까?


445

Windows 명령 줄을 사용하여 파일을 설치하고 싶습니다. 먼저 Eclipse를 사용하지 않고 모든 .jar 파일을 컴파일하여 Android 응용 프로그램의 .apk 파일을 만든 후 빌드하고 싶습니다.

누구나 Eclipse를 사용하지 않고 명령 줄을 사용 하여이 작업을 수행하는 방법을 알고 있습니다.


답변에 추가하려면 개미가있는 디렉토리를 경로에 추가하십시오.
라비 비야

stackoverflow.com/questions/3480201/... 올바른 방법은 emulater에 APK를 설치하는 방법
나빈 Tamrakar

답변:


689

아래 코드를 사용하여 명령 줄에서 응용 프로그램을 설치할 수 있습니다

adb install example.apk

이 apk는 현재 열린 에뮬레이터의 내부 메모리에 설치됩니다.

adb install -s example.apk

이 APK는 현재 열린 에뮬레이터의 SD 카드에 설치됩니다.

연결된 장치 목록의 특정 장치에 apk를 adb에 설치할 수도 있습니다.

adb -s emulator-5554 install myapp.apk

다른 옵션에 대해서는 adb 도움말 을 참조하십시오 .


12
앞으로 문제가있는 사람을 위해이 기능을 추가 -d하려면 USB 연결을 통해 설치를 강제로 추가하십시오 . 문제가 있었고 추가하면 문제가 해결되었습니다. adb -d install myApp-release.apk
Cow

7
adb install -dUSB를 강제하지 않습니다. adb의 도움으로부터 :(-d: allow version code downgrade)
Scott Stafford

6
에서 developer.android.com/tools/help/adb.html#commandsummary : "-d | 유일한 연결된 USB 장치에 ADB 명령을 다이렉트."
Noyo

39
-d혼란에 대한 답 은 @ZachCase와 @ScottStafford가 모두 맞다는 것입니다. ADB 옵션과 ADB 명령 옵션은 서로 다릅니다. adb -d install file.apkUSB로 연결된 단일 Android 기기에 설치하는 경우 [참조 ], adb install -d file.apk다운 그레이드가 가능한 APK 를 설치하는 경우 [참조 ].
tanius

12
사용하여 adb install -r example.apk응용 프로그램을 업데이트 / 설치합니다. 가 -r이미 설치되어있는 경우 응용 프로그램을 업데이트합니다.
ben_joseph


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

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

이러한 장치 중 하나를 선택하고 아래처럼 "-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가 작성한 단계를 따르십시오 (예 : d : \ android-apps \ test.apk와 같이 .apk 파일의 전체 경로를 언급하십시오)

1
@Mohit Kanada의 답변에 추가해야하며 답변으로 이러한 단계를 작성하지 마십시오.
STF

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"

ssh를 통해 루트로 연결할 수있는 앱을 설치하면이 명령이 제대로 작동합니다. :-)
TSJNachos117

11

너무 쉽다!

예를 들어 내 APK 파일 위치는 d : \ myapp.apk입니다.

  1. cmd를 실행

  2. sdk 폴더에서 "platform-tools"폴더로 이동하십시오.

  3. 에뮬레이터 장치를 시작하십시오 (이름이 5556 : MyDevice라고 가정하십시오)

  4. 이 코드를 cmd에 입력하십시오.

    adb -s 에뮬레이터 -5556 설치 d : \ myapp.apk

잠시만 기다려주세요 !!


platform-tools 디렉토리를 경로에 추가 할 수도 있으므로 매번 탐색 할 필요는 없습니다.
Prashanth Chandra

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 Project 실행

앱 폴더에서 마지막으로 생성 된 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.