Primeiros passos com o NDK

O Kit de desenvolvimento nativo (NDK, na sigla em inglês) é um conjunto de ferramentas que permite usar códigos C e C++ no Android, além de fornecer bibliotecas de plataforma que podem ser usadas para gerenciar atividades nativas e acessar componentes físicos do dispositivo, como sensores e entrada por toque. O NDK pode não ser apropriado para a maioria dos programadores Android iniciantes que precisam usar apenas código Java e APIs de estrutura para desenvolver apps. No entanto, o NDK pode ajudar nos casos em que você precisa realizar uma ou mais das seguintes ações:

  • Conseguir mais desempenho de um dispositivo para atingir baixa latência ou executar apps de computação intensa, como jogos ou simulações físicas.
  • Reutilizar as próprias bibliotecas C ou C++ ou as de outros desenvolvedores.

No Android Studio 2.2 e versões mais recentes, é possível usar o NDK para compilar código em C e C++ em uma biblioteca nativa e inseri-lo no seu APK usando o Gradle, o sistema de build do ambiente de desenvolvimento integrado. O código Java pode chamar funções na biblioteca nativa usando o framework Java Native Interface (JNI) (link em inglês). Para saber mais sobre o Gradle e o sistema de build do Android, leia Configurar seu build.

A ferramenta de compilação padrão do Android Studio para bibliotecas nativas é o CMake. O Android Studio também tem suporte ao ndk-build pelo grande número de projetos que já usam esse kit de ferramentas de build. No entanto, se você estiver criando uma nova biblioteca nativa, use o CMake.

Este guia traz as informações de que você precisa para começar a usar o NDK no Android Studio. Se você não tem a versão mais recente do Android Studio, faça o download e instale-a agora.

Atenção, usuário experimental do Gradle: migrar para a versão 2.2.0 ou mais recente do plug-in e usar o CMake ou o ndk-build para criar suas bibliotecas nativas pode ser uma boa alternativa se o seu projeto nativo já usa CMake ou ndk-build, se você prefere uma versão estável do sistema Gradle ou se quer suporte a ferramentas complementares, como o CCache (link em inglês). Se esse não for o caso, você pode continuar usando a versão experimental do Gradle e o plug-in do Android.

Fazer o download do NDK e das ferramentas

Para compilar e depurar código nativo para um app, os seguintes componentes serão necessários:

  • Kit de desenvolvimento nativo do Android (NDK, na sigla em inglês): um conjunto de ferramentas que permitem usar códigos C e C++ com o Android.
  • CMake: uma ferramenta de compilação externa que funciona com o Gradle para criar bibliotecas nativas. Esse componente não é necessário se você pretende usar apenas o ndk-build.
  • LLDB: o depurador usado pelo Android Studio para depurar códigos nativos.

Para saber mais sobre como instalar esses componentes, consulte Instalar e configurar o NDK e o CMake.

Criar ou importar um projeto nativo

Depois de configurar o Android Studio, você pode simplesmente Criar um projeto com suporte a C/C++. No entanto, caso queira adicionar ou importar código nativo a um projeto do Android Studio já existente, siga este processo básico:

  1. Crie arquivos de origem nativos e adicione-os ao projeto do Android Studio.
    • Você poderá pular essa etapa se já tiver o código nativo ou quiser importar uma biblioteca nativa pré-criada.
  2. Crie um script de build do CMake para dizer ao CMake como criar suas fontes nativas em uma biblioteca. Esse script de build também vai ser necessário se você importar e vincular usando bibliotecas pré-compiladas ou da plataforma.
    • Pule essa etapa se a sua biblioteca nativa já tiver um script de build CMakeLists.txt ou usar o ndk-build e incluir um script de build Android.mk.
  3. Forneça um caminho para o arquivo de script do CMake ou do ndk-build para vincular o Gradle à sua biblioteca nativa. O Gradle usa o script de compilação para importar código-fonte para o projeto do Android Studio e empacotar sua biblioteca nativa (o arquivo de SO) no APK.

    Observação: se o projeto usa a ferramenta descontinuada ndkCompile, abra o arquivo build.properties e remova a linha de código a seguir antes de configurar o Gradle para usar o CMake ou ndk-build.

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. Clique em Executar para compilar e executar seu app run then run app from the main menu. O Gradle adiciona o processo do CMake ou do ndk-build como uma dependência para compilar, criar e empacotar a biblioteca nativa com o APK.

Quando seu app estiver em execução em um dispositivo físico ou no emulador, você poderá usar o Android Studio para depurar o app. Caso contrário, para saber mais sobre o NDK e os componentes dele, leia a página Conceitos.