android_get_device_api_level
///Users/yzfhkms-m/pripro/D/library/ffmpeg/ffmpeg-6.1.1/libavcodec/mediacodec_wrapper.c
{
//ret = android_get_device_api_level();
//ndk 编译的api层级
ret = 28;/21
}
{
int ff_Build_SDK_INT(AVCodecContext *avctx)
{
int ret = -1;
#if __ANDROID_API__ >= 24
// android_get_device_api_level() is a static inline before API level 29.
// dlsym() might doesn't work.
//
// We can implement android_get_device_api_level() by
// __system_property_get(), but __system_property_get() has created a lot of
// troubles and is deprecated. So avoid using __system_property_get() for
// now.
//
// Hopy we can remove the conditional compilation finally by bumping the
// required API level.
//
//ret = android_get_device_api_level();
ret = 28;
#else
JNIEnv *env = NULL;
jclass versionClass;
jfieldID sdkIntFieldID;
JNI_GET_ENV_OR_RETURN(env, avctx, -1);
versionClass = (*env)->FindClass(env, "android/os/Build$VERSION");
sdkIntFieldID = (*env)->GetStaticFieldID(env, versionClass, "SDK_INT", "I");
ret = (*env)->GetStaticIntField(env, versionClass, sdkIntFieldID);
(*env)->DeleteLocalRef(env, versionClass);
#endif
av_log(avctx, AV_LOG_DEBUG, "device api level %d\n", ret);
return ret;
}
}