¿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.

  • C ++ vs Java en Android
  • Android y JNI cómo pasar una matriz de datos Byte a JNI y recuperar Byte
  • No se puede emitir desde el tipo de origen al tipo de destino (JNIEnv.GetArray <Java.Lang.Object> (pudis.Handle);)
  • Errores del indexador de Eclipse al usar STL con Android NDK
  • Creación de aplicaciones NDK con Android ADT en Windows
  • Android: Obtención de número aleatorio del método JNI
  • Devuelve jbyteArray desde c nativo en Android
  • No se puede iniciar el proyecto cocos2dx ios en android
  • Camino de directorio de DCIM en Android - Valor de retorno
  • ¿Puedo utilizar de algún modo código C # o biblioteca C # en el proyecto java android?
  • Necesita explicación sobre esta sintaxis de inicialización de objetos Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.