¿Cómo saber qué nivel de API estoy construyendo para usar ndk-build?

Estoy tratando de entender mejor cómo funciona la selección del nivel de api cuando se utiliza ndk-build.

Sé que puedo establecer explícitamente APP_PLATFORM en Application.mk y que de otra manera ndk-build apuntará la api indicada en el manifiesto con android:minSdkVersion , pero ¿y si el manifiesto de mi aplicación tiene android:minSdkVersion y android:targetSdkVersion , y esto es superior a minSdkVersion?

¿Ndk-build segmentará targetSdkVersion ? ¿Y cómo puedo comprobar eso?

En caso de que apunte al nivel más alto de api, supongo que seré capaz de construir usando nativos apis sólo disponible para ese nivel, pero si ejecuto la aplicación en un dispositivo con un menor nivel de api debe miserablemente fallar, por lo que en ese caso yo debe implementar algún tipo de comprobación de nivel de api, ¿es correcto?

Ponga este código en su Android.mk justo después de definir TARGET_PLATFORM y LOCAL_CFLAGS

 ifeq ($(TARGET_PLATFORM),android-7) LOCAL_CFLAGS += -DANDROID7 else ifeq ($(TARGET_PLATFORM),android-8) LOCAL_CFLAGS += -DANDROID8 else ifeq ($(TARGET_PLATFORM),android-9) LOCAL_CFLAGS += -DANDROID9 endif endif endif 

Ahora puede comprobar esto define en su código C / C ++:

 #if defined( ANDROID9 ) // do stuff for API Level 9 #endif 

Utilice __ANDROID_API__ definido en $NDK/platforms/android-<level>/<abi>/usr/include/android/api-level.h

 #if __ANDROID_API__ >= 21 // building with Android NDK Native API level 21 or higher posix_fadvise64(fd, ...); #else // building with Android NDK Native API level 20 or lower syscall(__NR_arm_fadvise64_64, fd, ...); #endif 
  • Android:minSdkVersion

La versión mínima de la plataforma android en la que se ejecutará la aplicación.

  • Android:targetSdkversion

Especifica el nivel de API en el que está diseñada la aplicación .

  • Android:maxSdkVersion

La versión máxima de la plataforma Android en la que está diseñada la aplicación.

  • Alineación de la memoria en iPhone y Android
  • Código nativo de C / C ++ en una plataforma Android
  • C #: método de anulación en la inicialización
  • Conversión de OpenCV C ++ a Java para problemas de detección de formas
  • OpenCV referencias indefinidas
  • Código Nativo de Android C ++
  • ¿Cómo obtengo el búfer de la cámara Android en bruto en C con JNI?
  • Native Android Crash - Mapa de bits no válido
  • JNI en Android: ¿Cómo recuperar una cadena de código Java?
  • Cómo pasar un mapa de bits de Java a C ++ con JNI en Android Development
  • No se pueden incluir archivos de encabezado STL con Android NDK r5
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.