sdkmanager

sdkmanager는 Android SDK용 패키지를 보고 설치하고 업데이트하고 제거할 수 있는 명령줄 도구입니다. Android 스튜디오를 사용하는 경우 이 도구를 사용할 필요가 없으며 대신 IDE에서 SDK 패키지를 관리할 수 있습니다.

sdkmanager 도구는 Android SDK 명령줄 도구 패키지에서 제공됩니다. SDK Manager를 사용하여 명령줄 도구 버전을 설치하려면 다음 단계를 따르세요.

  1. Android 스튜디오 다운로드 페이지에서 최신 '명령줄 도구만' 패키지를 다운로드하고 패키지를 압축 해제합니다.
  2. 압축 해제한 cmdline-tools 디렉터리를 원하는 새 디렉터리(예: android_sdk)로 이동합니다. 이 새 디렉터리는 Android SDK 디렉터리입니다.
  3. 압축 해제한 cmdline-tools 디렉터리에 latest라는 하위 디렉터리를 만듭니다.
  4. lib 디렉터리, bin 디렉터리, NOTICE.txt 파일, source.properties 파일을 비롯하여 원래 cmdline-tools 디렉터리 콘텐츠를 새로 만든 latest 디렉터리로 이동합니다. 이제 이 위치에서 명령줄 도구를 사용할 수 있습니다.
  5. (선택사항) 이전 버전의 명령줄 도구를 설치하려면 다음 명령어를 실행합니다.

    android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
    
    version를 설치할 버전으로 바꿉니다(예: 5.0).

사용

sdkmanager를 사용하면 설치된 패키지 및 사용 가능한 패키지를 나열하고 패키지를 설치하고 업데이트할 수 있습니다. 자세한 내용은 다음 섹션을 참고하세요.

설치된 패키지 또는 사용 가능한 패키지 나열

설치된 패키지 및 사용 가능한 패키지를 나열하려면 다음 문법을 사용합니다.

sdkmanager --list [options] \
           [--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)

channel 옵션을 사용하여 channel_id 이하 채널의 패키지를 포함합니다. 예를 들어 Canary 채널을 지정하여 모든 채널의 패키지를 나열합니다.

패키지 설치

패키지를 설치하려면 다음 문법을 사용합니다.

sdkmanager packages [options]

packages 인수는 --list 명령어에서 보이는 것과 같이 따옴표로 묶은 SDK 스타일의 경로입니다. 예를 들면 "build-tools;34.0.0" 또는 "platforms;android-33"이 있습니다.

공백으로 구분된 여러 패키지 경로를 전달할 수 있지만 각각 자체 따옴표로 묶어야 합니다. 예를 들어 다음은 최신 플랫폼 도구 및 API 수준 33용 SDK 도구를 설치하는 방법입니다.

sdkmanager "platform-tools" "platforms;android-33"

또는 모든 패키지를 지정하는 텍스트 파일을 전달할 수 있습니다.

sdkmanager --package_file=package_file [options]

package_file 인수는 텍스트 파일의 위치입니다. 여기서 각 줄은 설치할 패키지의 SDK 스타일 경로(따옴표 없음)입니다.

제거하려면 --uninstall 플래그를 추가합니다.

sdkmanager --uninstall packages [options]
sdkmanager --uninstall --package_file=package_file [options]

CMake 또는 NDK를 설치하려면 다음 문법을 사용합니다.

sdkmanager --install
           ["ndk;major.minor.build[suffix]" | "cmake;major.minor.micro.build"]
           [--channel=channel_id] // NDK channels: 0 (stable), 1 (beta), or 3 (canary)

예를 들어 다음 명령어를 사용하여 현재 사용하는 채널과 관계없이 지정된 NDK 버전을 설치합니다.

sdkmanager --install "ndk;21.3.6528147" --channel=3 // Install the NDK from the canary channel (or below)
sdkmanager --install "cmake;10.24988404" // Install a specific version of CMake

설치된 모든 패키지 업데이트

설치된 모든 패키지를 업데이트하려면 다음 문법을 사용합니다.

sdkmanager --update [options]

라이선스 수락

설치한 각 패키지에 필요한 라이선스를 수락해야 합니다. 이 단계는 Android 스튜디오 내에서 패키지를 설치할 때 설치 흐름 중에 발생합니다.

Android 스튜디오가 설치되어 있지 않은 경우나 CI 서버용이거나 GUI가 설치되지 않은 다른 헤드리스 Linux 기기용이면 명령줄에서 다음을 실행하세요.

sdkmanager --licenses

그러면 아직 수락하지 않은 라이선스를 수락하라는 메시지가 표시됩니다.

옵션

다음 표에는 이전 섹션에 나열된 명령어에 사용할 수 있는 옵션이 나와 있습니다.

옵션 설명
--sdk_root=path 이 도구가 포함된 SDK 대신 지정된 SDK 경로를 사용합니다.
--channel=channel_id channel_id 이하 채널의 패키지를 포함합니다. 사용 가능한 채널은 다음과 같습니다.

0 (안정적), 1 (베타), 2 (개발) 및 3 (Canary).

--include_obsolete 사용되지 않는 패키지를 패키지 목록 또는 패키지 업데이트에 포함합니다. --list--update에서만 사용합니다.
--no_https 모든 연결이 HTTPS가 아닌 HTTP를 사용하도록 강제합니다.
--newer --list를 사용하여 새 패키지 또는 업데이트 가능한 패키지만 표시합니다.
--verbose 상세 출력 모드. 오류, 경고 및 정보 메시지가 출력됩니다.
--proxy={http | socks} 지정된 유형의 프록시를 통해 연결합니다. HTTP 또는 FTP와 같은 높은 수준의 프로토콜에는 http를 사용하고, SOCKS (V4 또는 V5) 프록시에는 socks를 사용합니다.
--proxy_host={IP_address | DNS_address} 사용할 프록시의 IP 또는 DNS 주소입니다.
--proxy_port=port_number 연결할 프록시 포트 번호입니다.