Primeiros passos com o NDK

O Kit de Desenvolvimento Nativo (NDK) é 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 de 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 fazer 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 ou 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 compilação do ambiente de desenvolvimento integrado. O código Java pode chamar funções na biblioteca nativa por meio do framework Java Native Interface (JNI, na sigla em inglês). Para saber mais sobre o Gradle e o sistema de compilação do Android, leia Configurar sua compilação.

A ferramenta de compilação padrão do Android Studio para bibliotecas nativas é o CMake. O Android Studio também é compatível com o ndk-build pelo grande número de projetos já que usam esse kit de ferramentas de compilação. 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 posterior do plug-in e usar o CMake ou o ndk-build para compilar suas bibliotecas nativas poderá ser uma boa alternativa se seu projeto nativo já usa o CMake ou o ndk-build, se você prefere uma versão estável do sistema de compilação Gradle ou se quer compatibilidade para ferramentas complementares, como o CCache. Caso contrário, 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): 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 compilar 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 novo projeto compatível com 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 novos arquivos de origem nativos e adicione-os ao projeto do Android Studio.
    • Você pode pular esta etapa se já tiver o código nativo ou se quiser importar uma biblioteca nativa pré-compilada.
  2. Crie um script de compilação do CMake para dizer ao CMake como criar suas fontes nativas em uma biblioteca. Esse script de compilação também será necessário se você importar e vincular usando bibliotecas pré-compiladas ou da plataforma.
    • Pule essa etapa se sua biblioteca nativa já tiver um script de compilação CMakeLists.txt ou usar o ndk-build e incluir um script de compilação 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 já existente usa a ferramenta obsoleta ndkCompile, abra o arquivo build.properties e remova a seguinte linha de código 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 executar e depois executar aplicativo do menu principal. 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 aplicativo 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.