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 iniciantes Android 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.

A partir do Android Studio 2.2, é possível usar o NDK para compilar código em C e C++ em uma biblioteca nativa ou pacote 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 da estrutura Java Native Interface (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 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-o agora.

Atenção, usuários experimentais 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 qualquer uma destas situações se aplicar a você: seu projeto nativo já usa o CMake ou o ndk-build; você prefere uma versão estável do sistema de compilação Gradle; ou você quer suporte 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

É possível instalar esses componentes usando o SDK Manager:

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

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

  4. Clique em Apply e depois 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

Depois de configurar o Android Studio, você pode apenas Criar um novo projeto compatível com C/C++. No entanto, caso queira adicionar ou importar código nativo a um projeto existente do Android Studio, é necessário seguir 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 compilar 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.
    • Você pode pular esta etapa se sua biblioteca nativa existente já tem um script de compilação CMakeLists.txt ou usa ndk-build e inclui 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 existente usar 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 executar e depois executar aplicativo do menu principal para compilar e executar seu app. 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 emulador, será possível usar o Android Studio para Depurar seu app. Caso contrário, para saber mais sobre o NDK e os componentes dele, leia a página Conceitos.