La secuencia de comandos ndk-build compila proyectos que usan el sistema de compilación basado en Make del NDK. Hay documentación más específica sobre la configuración de Android.mk y Application.mk que usa ndk-build.
Aspectos internos
La ejecución de la secuencia de comandos ndk-build es equivalente a ejecutar el siguiente comando:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE apunta a Make 3.81 o versiones posteriores de GNU y <ndk> apunta al directorio de instalación del NDK. Puedes usar esta información para invocar ndk-build desde otras secuencias de comandos de shell o incluso desde tus propios archivos make.
Cómo realizar invocaciones desde la línea de comandos
La secuencia de comandos ndk-build está en el nivel superior del directorio de instalación del NDK. Para ejecutarla desde la línea de comandos, invócala mientras estás en el directorio del proyecto de tu aplicación o debajo de este.
Por ejemplo: 
$ cd <project> $ <ndk>/ndk-build
En este ejemplo, <project> apunta al directorio raíz de tu proyecto y <ndk> es el directorio donde instalaste el NDK.
Opciones
Todos los parámetros de ndk-build se pasan directamente al comando make subyacente de GNU que ejecuta las secuencias de comandos de compilación del NDK. Combina ndk-build y opciones en el formulario ndk-build <option>. Por ejemplo: 
$ ndk-build clean
Las siguientes opciones están disponibles:
- 
    clean
- Quita los objetos binarios generados anteriormente.Nota: En Mac OS X, si se ejecuta ndk-build cleancon un alto número de ejecuciones paralelas, es posible que aparezca un error de compilación con el siguiente mensaje:rm: fts_read: No such file or directory A fin de evitar este problema, procura no usar el modificador -jNni seleccionar un valor inferior paraN, como "2".
- 
    V=1
- Inicia la compilación y muestra los comandos de compilación.
- 
    -B
- Fuerza una recompilación completa.
- 
    -B V=1
- Fuerza una recompilación completa y muestra los comandos de compilación.
- 
    NDK_LOG=1
- Muestra mensajes de registros internos del NDK (usados para depurar el NDK en sí).
- 
    NDK_DEBUG=1
- Fuerza una compilación depurable (consulta la Tabla 1).
- 
    NDK_DEBUG=0
- Fuerza una compilación de actualización (consulta la Tabla 1).
- 
    NDK_HOST_32BIT=1
- Usa siempre la cadena de herramientas en modo de 32 bits.
- 
    NDK_APPLICATION_MK=<file>
- Compila con un archivo Application.mkespecífico al que apunte la variableNDK_APPLICATION_MK.
- 
    -C <project>
- Compila el código nativo para la ruta de acceso al proyecto ubicado en <project>. Es útil si no deseas usar el comandocdpara el directorio en la terminal.
Compilaciones depurables frente a compilaciones de actualización
Usa la opción NDK_DEBUG y, en determinados casos, AndroidManifest.xml para especificar la compilación de depuración o actualización, el comportamiento relacionado con la optimización y la inclusión de símbolos. En la tabla 1, se muestran los resultados de cada combinación de configuraciones posible.
Tabla 1. Resultados de combinaciones de NDK_DEBUG (línea de comandos) y android:debuggable (manifiesto).
| Configuración de manifiesto | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG no especificado | 
|---|---|---|---|
| android:debuggable="true" | Depuración; Símbolos; Optimizada*1 | Depuración; Símbolos; Sin optimizar*2 | (igual que NDK_DEBUG=1) | 
| android:debuggable="false" | Versión; Símbolos; Optimizada | Actualización; símbolos; sin optimizar | Actualización; sin símbolos, optimizada*3 | 
*2: Es el modo predeterminado para ejecutar
ndk-gdb.*3: Es el modo predeterminado.
Nota: "NDK_DEBUG=0" es equivalente a "APP_OPTIM=release" y se compila con "-O2". "NDK_DEBUG=1" es equivalente a "APP_OPTIM=debug" en "Application.mk" y se compila con "-O0". Para obtener más información sobre "APP_OPTIM", consulta Application.mk.
La sintaxis de la línea de comando es, por ejemplo:
$ ndk-build NDK_DEBUG=1
Requisitos
Necesitas GNU Make 4 para utilizar ndk-build o el NDK en general. El NDK incluye su propia copia de GNU Make y la usará a menos que hayas configurado la variable de entorno $GNUMAKE para que apunte a un archivo make inadecuado.
Bases de datos de compilación JSON
En el NDK r18 y versiones posteriores, ndk-build puede generar una base de datos de compilación JSON.
Puedes usar ndk-build compile_commands.json para generar la base de datos sin compilar tu código o ndk-build GEN_COMPILE_COMMANDS_DB=true si deseas compilar y generar la base de datos como un efecto secundario.
