안드로이드 스튜디오 없이 AVD(Android Virtual Device)만 조작하고 싶은 경우에 CMD/터미널로 코드를 실행하면 조작이 가능하다. 단 기존에 안드로이드 스튜디오내에서 보여주던 AVD GUI는 제공되지 않는다.
순서는 다음과 같다.
1. JDK를 다운로드 및 설치 한다. (경험상 JDK8이 편했다.)
2. JAVA_HOME 환경변수 설정
3. Intel HAXM (Hardware Accelerated Execution Manager)을 다운로드 및 설치 한다. (성공적인 설치를 위해 Hyper-V 기능을 끄고 BIOS에서 가상화를 활성화해야 함)
4. Command-Line-Tools를 다운로드 한다.
스크롤을 내려 자신의 OS와 맞는 커맨드라인툴을 다운받는다.
5. CMD를 실행시켜 다음과 같은 코드를 입력한다.
cd %localappdata%
mkdir Android\cmdline-tools
cd Android\cmdline-tools
6. 4번에서 다운 받았던 커맨드라인툴의 압축파일을 푼다.
풀면 다음과 같은 파일이 생성된다.
├── cmdline-tools
└── tools
├── bin
├── lib
├── NOTICE.txt
└── source.properties
7. CMD로 와서 ANDROID_HOME 환경 변수 설정을 하기위해 다음과 같이 입력한다.
setx ANDROID_HOME %localappdata%\Android
8. 6번에서 압축을 풀었던 파일들의 루트를 설정한다.
setx path "%PATH%;%ANDROID_HOME%\cmdline-tools\tools\bin" /m
9. 8번까지 작업을 완료했다면 sdkmanager를 사용할 수 있다.
sdkmanager는 아래와 같은 루트 bin 폴더에 위치하고 있어 cmd를 통해 해당위치까지 접근한다.
cd .\cmdline-tools\tools\bin
여기까지 잘 완료했다면 다음과 같이 입력해보자.
sdkmanager --list
다음과 같은 화면이 나온다면 정상적으로 설정한 것이다.
10. 이제 다음 명령어를 사용하여 시스템 이미지와 안드로이드, 구글 APIS 등을 원하는 버전으로 패키지를 설치해야 합니다.
platform-tools, platform; android- * 및 system-images; android- *; google_apis; x86_64
여기서 *는 버전을 의미한다. 이를 이용해서 직접 명령을 내려보자.
sdkmanager "platforms;android-29" "system-images;android-29;google_apis;x86_64" "platform-tools"
11. 월활한 사용을 위해 더 많은 라이선스를 요구해야한다. 그렇게 하기 위해 다음과 같이 입력한다.
sdkmanager --licenses
질문이 출력된다면 y (yes)를 눌러 계속 진행한다.
12. 이제 가상 안드로이드기기를 만들 준비가 끝났다.
avdmanager create avd -n avd_29_d1 -k "system-images;android-29;google_apis;x86_64"
해석해보자면 avdmanager 명령어중 create 를 통해 avd(안드로이드 가상기기)를 생성한다.
그 가상기기의 이름은 avd_29_d1로 한다. 그리고 해당 시스템의 이미지는 안드로이드버전29, 구글 apis x86_64이다.
13. avd가 잘 만들어졌는지 확인해보자. 다음은 avd 목록을 확인하는 명령어다.
avdmanager list avd
필자의 경우 avd_29_d1 과 avd_29_d2 총 2개의 디바이스를 생성하여 2개의 기기항목이 뜨는것을 확인할 수 있다.
14. 이제 가상기기 (에뮬레이터)를 실행하기 위해 기기가 위치한 곳으로 이동해보자.
cd %ANDROID_HOME%\emulator
이동한 후 emulator -avd 디바이스 이름을 입력해보자
emulator -avd avd_29_d1
15. 최종적으로 기기가 실행된 모습을 확인할 수 있다.
안드로이드를 조작, 설정하기 위해
sdkmanager와 avdmanager는 잘 알고있어야 한다.
다음 링크에서 관련 문서를 확인해보는것을 추천한다.
sdkmanager : https://developer.android.com/studio/command-line/sdkmanager
avdmanager : https://developer.android.com/studio/command-line/avdmanager