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