JNI In Android

https://www.iitk.ac.in/esc101/05Aug/tutorial/native1.1/implementing/index.html

http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/method.html

https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html

https://www.baeldung.com/jni

https://www.iitk.ac.in/esc101/05Aug/tutorial/native1.1/implementing/method.html

https://github.com/mkowsiak/jnicookbook/blob/master/recipes/recipeNo048/c/recipeNo048_MapOfInts.cc

https://www.tangiblesoftwaresolutions.com/articles/cplus_equivalent_to_java_hashmap.html#:~:text=The%20nearly%20exact%20C%2B%2B%20equivalent,the%20std%3A%3Aunordered_map%20collection.

https://stackoverflow.com/questions/16850204/how-to-send-a-hashmap-from-java-to-c-via-jni/16864286

https://stackoverflow.com/questions/4844022/jni-create-hashmap

https://stackoverflow.com/questions/37378808/how-to-properly-use-ndk-build-in-android-studio-2-2-preview-1

https://proandroiddev.com/android-ndk-how-to-integrate-pre-built-libraries-in-case-of-the-ffmpeg-7ff24551a0f

https://github.com/AakashMallik/sample_cmake

https://github.com/android/ndk-samples

https://expertise.jetruby.com/android-ndk-using-c-c-native-libraries-to-write-android-apps-21550cdd86a

https://sites.google.com/a/android.com/tools/tech-docs/external-c-builds

externalNativeBuild{   cmake{
        path “CMakeLists.txt”
    }}
defaultConfig {  externalNativeBuild {    cmake {      targets “target1”, “target2”      arguments “-DANDROID_TOOLCHAIN=clang”      cFlags “-DTEST_C_FLAG1”, “-DTEST_C_FLAG2”      cppFlags “-DTEST_CPP_FLAG2”, “-DTEST_CPP_FLAG2”      abiFilters “armeabi-v7a”, “armeabi”    }   }}
or

externalNativeBuild{   ndkBuild{
        path “Android.mk”
    }}
defaultConfig {  externalNativeBuild {    ndkBuild {      targets “target1”, “target2”      arguments “NDK_APPLICATION_MK:=Application.mk”      cFlags “-DTEST_C_FLAG1”, “-DTEST_C_FLAG2”      cppFlags “-DTEST_CPP_FLAG2”, “-DTEST_CPP_FLAG2”      abiFilters “armeabi-v7a”, “armeabi”    }   }}

About Bundle config and installation

Default:bundleRelease gradle job

it will build the bundle and based on the languages available in the language and input setting of user the number of language is present it will take the spilt config and install in the device.

and the lib and the screen density of user phone.

in custom job of bundleRelease we give config as we want.