Closed biud436 closed 4 years ago
먼저 sdkmanager
툴을 이용하여 설치할 수 있는 API 레벨을 탐색한다.
sdkmanager --list | find "platforms;"
위 명령을 호출하면 다음과 같은 결과를 출력한다.
platforms;android-19 | 4 | Android SDK Platform 19 | platforms\android-19\
platforms;android-23 | 3 | Android SDK Platform 23 | platforms\android-23\
platforms;android-26 | 2 | Android SDK Platform 26 | platforms\android-26\
platforms;android-27 | 3 | Android SDK Platform 27 | platforms\android-27\
platforms;android-28 | 6 | Android SDK Platform 28 | platforms\android-28\
platforms;android-29 | 3 | Android SDK Platform 29 | platforms\android-29\
platforms;android-10 | 2 | Android SDK Platform 10
platforms;android-11 | 2 | Android SDK Platform 11
platforms;android-12 | 3 | Android SDK Platform 12
platforms;android-13 | 1 | Android SDK Platform 13
platforms;android-14 | 4 | Android SDK Platform 14
platforms;android-15 | 5 | Android SDK Platform 15
platforms;android-16 | 5 | Android SDK Platform 16
platforms;android-17 | 3 | Android SDK Platform 17
platforms;android-18 | 3 | Android SDK Platform 18
platforms;android-19 | 4 | Android SDK Platform 19
platforms;android-20 | 2 | Android SDK Platform 20
platforms;android-21 | 2 | Android SDK Platform 21
platforms;android-22 | 2 | Android SDK Platform 22
platforms;android-23 | 3 | Android SDK Platform 23
platforms;android-24 | 2 | Android SDK Platform 24
platforms;android-25 | 3 | Android SDK Platform 25
platforms;android-26 | 2 | Android SDK Platform 26
platforms;android-27 | 3 | Android SDK Platform 27
platforms;android-28 | 6 | Android SDK Platform 28
platforms;android-29 | 4 | Android SDK Platform 29
platforms;android-7 | 3 | Android SDK Platform 7
platforms;android-8 | 3 | Android SDK Platform 8
platforms;android-9 | 2 | Android SDK Platform 9
platforms;android-29 | 3 | 4
출력된 문자열을 라인 별로 자르고, | 문자 단위로 또 자르면 공백을 제거하면 정확하게 목록화 할 수 있다.
var lines = output.split(/[\r\n]+/g)
var tools = lines.map(i => i.split("|").map(j => j.trim()));
위의 결과는 아래와 같다.
만약 다음 명령이 아무런 라인을 반환하지 않는다면, 29 레벨이 설치되지 않은 것이다.
만약 다음 명령이 0을 반환하면, Android API 28이 설치되지 않은 것이다.
새로운 SDK 존재 여부는
sdkmanager --list
으로 알 수 있다. 예를 들어, 다음 결과가 0이 아니면, 29 레벨이 존재하는 것이다.아니면 | 문자를 split 하여, 검사하는 방법도 있다.
sdkmanager --list
의 결과 값은 다음과 같고, 내부적으로 파싱하여 GUI로 만든 것이 안드로이드 스튜디오의 sdkmanger이며, 콘솔에서sdkmanager "platform-tools" "platforms;android-28"
와 같은 식으로 패키지 설치를 할 수도 있다.또한 휴대폰이 컴퓨터에 연결되어있을 때,
adb install -r *.apk
로 강제 설치를 할 수도 있고, 예뮬레이팅도 가능하다.