MASTG-TOOL-0005: Android NDK
O Android NDK contém versões pré-compiladas do compilador nativo e da toolchain. Tanto os compiladores GCC quanto Clang foram tradicionalmente suportados, mas o suporte ativo para GCC foi encerrado com a revisão 14 do NDK. A arquitetura do dispositivo e o sistema operacional hospedeiro determinam a versão apropriada. As toolchains pré-compiladas estão no diretório toolchains do NDK, que contém um subdiretório para cada arquitetura.
| Arquitetura | Nome da toolchain |
|---|---|
| Baseada em ARM | arm-linux-androideabi-<gcc-version> |
| Baseada em x86 | x86-<gcc-version> |
| Baseada em MIPS | mipsel-linux-android-<gcc-version> |
| Baseada em ARM64 | aarch64-linux-android-<gcc-version> |
| Baseada em x86-64 | x86_64-<gcc-version> |
| Baseada em MIPS64 | mips64el-linux-android-<gcc-version> |
Além de escolher a arquitetura correta, você precisa especificar o sysroot adequado para o nível de API nativo que deseja segmentar. O sysroot é um diretório que contém os cabeçalhos e bibliotecas do sistema para seu alvo. As APIs nativas variam conforme o nível da API Android. Os diretórios sysroot disponíveis para cada nível de API Android podem ser encontrados em $NDK/platforms/. Cada diretório de nível de API contém subdiretórios para as várias CPUs e arquiteturas.
Uma possibilidade para configurar o sistema de compilação é exportar o caminho do compilador e os flags necessários como variáveis de ambiente. Para facilitar as coisas, no entanto, o NDK permite que você crie uma chamada standalone toolchain, que é uma toolchain temporária que incorpora as configurações necessárias.
Para configurar uma standalone toolchain, baixe a versão estável mais recente do NDK. Extraia o arquivo ZIP, navegue até o diretório raiz do NDK e execute o seguinte comando:
./build/tools/make_standalone_toolchain.py --arch arm --api 24 --install-dir /tmp/android-7-toolchain
Isso cria uma standalone toolchain para Android 7.0 (nível de API 24) no diretório /tmp/android-7-toolchain. Para conveniência, você pode exportar uma variável de ambiente que aponta para seu diretório de toolchain (usaremos isso nos exemplos). Execute o seguinte comando ou adicione-o ao seu .bash_profile ou outro script de inicialização:
export TOOLCHAIN=/tmp/android-7-toolchain