sdkmanager

O sdkmanager é uma ferramenta de linha de comando que permite visualizar, instalar, atualizar e desinstalar pacotes do SDK do Android. Caso você esteja usando o Android Studio, não é necessário usar essa ferramenta. Em vez disso, você pode gerenciar seus pacotes de SDK pelo ambiente de desenvolvimento integrado.

A ferramenta sdkmanager é fornecida no pacote de Ferramentas de linha de comando do SDK do Android. Para usar o SDK Manager e instalar uma versão das ferramentas de linha de comando, siga estas etapas:

  1. Faça o download do pacote de ferramentas de linha de comando mais recente na página Android Studio e extraia o pacote.
  2. Mova o diretório cmdline-tools descompactado para um novo diretório de sua escolha, por exemplo, android_sdk. Esse novo diretório é seu diretório do SDK do Android.
  3. No diretório cmdline-tools descompactado, crie um subdiretório chamado latest.
  4. Mova o conteúdo do diretório cmdline-tools original, incluindo os diretórios lib e bin e os arquivos NOTICE.txt e source.properties para o diretório latest recém-criado. Agora você pode usar as ferramentas de linha de comando desse local.
  5. (Opcional) Para instalar uma versão anterior das ferramentas de linha de comando, execute o comando abaixo:

    android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
    
    Substitua version pela versão que você quer instalar, por exemplo, 5.0.

Uso

É possível usar o sdkmanager para listar pacotes instalados e disponíveis, instalar e atualizar pacotes. Confira mais detalhes nas próximas seções.

Listar pacotes instalados e disponíveis

Para listar pacotes instalados e disponíveis, use esta sintaxe:

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

Use a opção channel para incluir um pacote de um canal até (e incluindo) channel_id. Por exemplo, especifique o canal canário para listar pacotes de todos os canais.

Instalar pacotes

Para instalar pacotes, use esta sintaxe:

sdkmanager packages [options]

O argumento packages é um caminho no estilo do SDK, conforme mostrado com o comando --list, entre aspas. Por exemplo, "build-tools;34.0.0" ou "platforms;android-33".

Você pode transmitir vários caminhos de pacotes separados por espaço, mas eles precisam estar entre os próprios conjuntos de aspas. Por exemplo, confira como instalar as ferramentas mais recentes da plataforma e as ferramentas do SDK na API de nível 33:

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

Também é possível transmitir um arquivo de texto com todos os pacotes especificados:

sdkmanager --package_file=package_file [options]

O argumento package_file é o local de um arquivo de texto em que cada linha é um caminho no estilo do SDK de um pacote a ser instalado (sem aspas).

Para desinstalar, adicione a sinalização --uninstall:

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

Para instalar o CMake ou o NDK, use esta sintaxe:

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

Por exemplo, use o comando abaixo para instalar a versão especificada do NDK, independente do canal em que ele está no momento:

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

Atualizar todos os pacotes instalados

Para atualizar todos os pacotes instalados, use esta sintaxe:

sdkmanager --update [options]

Aceitar licenças

É preciso aceitar a licença necessária para cada pacote instalado. Essa etapa ocorre durante o fluxo de instalação quando você instala pacotes no Android Studio.

Se você não tiver o Android Studio instalado ou se ele for para um servidor de CI ou outro dispositivo Linux headless sem uma GUI instalada, digite isto na linha de comando:

sdkmanager --licenses

Esse comando solicita que você aceite as licenças que ainda não foram aceitas.

Opções

A tabela abaixo lista as opções disponíveis para os comandos mencionados na seção anterior:

Opção Descrição
--sdk_root=path Usa o caminho do SDK especificado, em vez daquele que contém essa ferramenta.
--channel=channel_id Inclui pacotes nos canais até channel_id (também incluído). Os canais disponíveis são:

0 (Estável), 1 (Beta), 2 (Dev) e 3 (Canary).

--include_obsolete Inclui pacotes obsoletos na listagem ou atualizações de pacotes. Para uso somente com --list e --update.
--no_https Força todas as conexões a usar HTTP, em vez de HTTPS.
--newer Com --list, mostra apenas pacotes novos ou atualizáveis.
--verbose Modo de saída detalhado. Erros, avisos e mensagens informativas são mostrados.
--proxy={http | socks} Conecta-se por um proxy do tipo fornecido: http para protocolos de alto nível, como HTTP ou FTP, ou socks para um proxy SOCKS (V4 ou V5).
--proxy_host={IP_address | DNS_address} Endereço IP ou DNS do proxy a ser usado.
--proxy_port=port_number Número da porta do proxy para se conectar.