Я собрал FAT APK из примера hello-gl2 из примеров NDK. В нем 2 папки armeabi и armeabi-v7a
Я добавил к нему следующий метод
JNIEXPORT jstring JNICALL Java_com_android_gl2jni_GL2JNILib_status(JNIEnv * env, jobject obj)
{
const char * result = "Hop";
#ifdef __ARM__
result = "__ARM__";
#endif
#ifdef __ARM_ARCH_5TE__
result = "__ARM_ARCH_5TE__";
#endif
#ifdef __ARM_ARCH_7A__
result = "__ARM_ARCH_7A__";
#endif
return env->NewStringUTF(result);
}
Когда приложение запускается, оно вызывает этот метод и показывает возвращаемое значение во всплывающем диалоговом окне. Когда я запускаю приложение на устройстве с процессором ARMv7, я получаю сообщение __ARM_ARCH_5TE__
вместо __ARM_ARCH_7A__
Затем я удаляю папку armeabi
в APK и переустанавливаю APK. Я вижу __ARM_ARCH_7A__
сообщение
Если я скомпилирую только armeabi-v7a
APK, то я увижу __ARM_ARCH_7A__
, и он не работает на устройстве ARMv6.
Я хочу скомпилировать FAT APK, который будет запускать armeabi-v7a
lib на процессоре ARMv7 и armeabi
на процессоре ARMv6.
Что я делаю неправильно или чего-то не хватает?