Primeiros passos com o NDK

O Kit de desenvolvimento nativo do Android (NDK) é um conjunto de ferramentas que permite usar código C e C++ com o Android, além de oferecer bibliotecas da plataforma para gerenciar atividades nativas e acessar componentes de dispositivos físicos, como sensores e entrada por toque. O NDK pode não ser apropriado para a maioria dos programadores Android novatos que precisam usar apenas código Java e APIs de estrutura para desenvolver seus aplicativos. No entanto, o NDK pode ser útil para os casos nos quais você precisa fazer uma ou mais das seguintes ações:

  • Conseguir mais desempenho de um dispositivo para aplicativos de computação intensiva, como jogos ou simulações de física.
  • Reutilizar suas próprias bibliotecas C ou C++ ou as de outros desenvolvedores.

A partir do Android Studio 2.2, é possível usar o NDK para compilar código em C e C++ a fim de criar uma biblioteca nativa e inseri-la 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 da Interface Java Nativa (JNI) 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 existentes que usa esse kit de ferramentas de compilação. No entanto, se você estiver criando uma nova biblioteca nativa, deverá usar o CMake.

Este guia fornece as informações 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-o agora.

Atenção, usuários experimentais do Gradle: considerem migrar para o plug-in versão 2.2.0 ou posterior e usar o CMake ou o ndk-build para criar bibliotecas nativas se alguma das condições a seguir se aplicar: o projeto nativo já usa CMake ou ndk-build; você prefere usar uma versão estável do sistema de compilação Gradle; ou você quer compatibilidade com ferramentas de complementos, como CCache. Caso contrário, você pode continuar a usar a versão experimental do Gradle e o plug-in do Android.

Faça o download do NDK e das ferramentas

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

  • O Kit de desenvolvimento nativo do Android (NDK): um conjunto de ferramentas que permite usar códigos C e C++ com o Android.
  • CMake: uma ferramenta de compilação externa que funciona com o Gradle para compilar uma biblioteca nativa. Esse componente não é necessário se você pretende usar apenas o ndk-build.
  • LLDB: depurador usado pelo Android Studio para depurar código nativo.

Para instalar esses componentes, use o SDK Manager:

  1. Em um projeto aberto, selecione Tools > Android > SDK Manager do menu principal.
  2. Clique na guia SDK Tools.
  3. Marque as caixas ao lado de LLDB, CMake e NDK, como mostrado na imagem 1.

    Imagem 1. Instalação do LLDB, CMake e NDK a partir do SDK Manager.

  4. Clique em Apply e clique em OK na próxima caixa de diálogo.
  5. Após a instalação, clique em Finish e em OK.

Criar ou importar um projeto nativo

Quando já tiver configurado 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 já existente do Android Studio, é necessário seguir esse processo básico:

  1. Crie novos arquivos de origem nativos e adicione-os ao projeto do Android Studio.
    • Você pode ignorar esta etapa se já tiver código nativo ou quiser importar uma biblioteca nativa pré-compilada.
  2. Crie um script de compilação do CMake para compilar o código-fonte nativo em uma biblioteca. Esse script de compilação também será necessário se você importar e compilar usando bibliotecas pré-compiladas ou da plataforma.
    • Você pode ignorar esta etapa se sua biblioteca nativa existente já tem um script de compilação CMakeLists.txt ou usa 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 ao projeto do Android Studio e incorporar a biblioteca nativa (o arquivo SO) ao APK.

    Observação: Se o projeto existente usar a ferramenta obsoleta ndkCompile, abra o arquivo build.properties e remova a seguinte linha de código antes de vincular o Gradle para usar o CMake ou ndk-build:

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. Compile e execute o aplicativo clicando em Run executar e depois executar aplicativo do menu principal. O Gradle adiciona o processo CMake ou ndk-build como uma dependência para compilar, criar e empacotar a biblioteca nativa com o APK.

Quando o aplicativo estiver executando em um dispositivo físico ou no emulador, você pode usar o Android Studio para Depurar o aplicativo. Caso contrário, para saber mais sobre o NDK e seus componentes, leia a página Conceitos.