1. 程式人生 > >JNI與C/C++的呼叫與封裝(Demo應用)

JNI與C/C++的呼叫與封裝(Demo應用)

  專案中使用JNI的地方,如:核心邏輯,金鑰,加密邏輯。JNI還有很多的應用,比如FFMPEG,OpenGL等。

JNI常見的場景如:加解密演算法,音視訊編解碼等。

-- 使用JNI,複用很多優秀的c/c++程式碼:ffmpeg 多媒體播放器;opencv 圖形識別引擎;7-zip 壓縮;opencore 視訊播放

  C/C++實現的演算法,JNI封裝(SO檔案,動態連結檔案),Java、Android上層呼叫(可封裝成Jar、SDK形式)。(分層思想),多考慮檔案的介面, 流的介面, 而不是僅僅是物件的介面, 這樣會讓JNI的設計更加優雅.

  -- C語言寫JNI方法的過程中,不用編譯JNI .h標頭檔案,但是實現Java程式碼中定義的native方法時,還是得寫全native方法的全路徑,如JNIEXPORT void JNICALL Java_com_desaco_practiceknowing_native_1method_JniInvokeJava_reflectJava(JNIEnv *, jobject, jstring);
  C++語言寫JNI方法的過程中,要編譯JNI .h標頭檔案,並且引用標頭檔案,寫全native方法的全路徑。

> NDK/JNI示例,demo

JNI實現圖片壓縮- https://github.com/zengfw/EffectiveBitmap
libjpeg影象處理庫 use-libjpeg-turbo-android- https://github.com/bither/bither-android-lib/tree/master/libjpeg-turbo-android/use-libjpeg-turbo-android

thumb16 thumb32 arm32 inlineHook in Android- https://github.com/ele7enxxh/Android-Inline-Hook
Android效能優化系列之Bitmap圖片優化(.SO)- http://blog.csdn.net/u012124438/article/details/66087785

從Pseudo-Java生成C包裝器.
Generate C wrapper from Pseudo-Java,JNI Generater for Android- https://github.com/Bilibili/jni4android

libmp3lame AndroidMP3Recorder- https://github.com/GavinCT/AndroidMP3Recorder
MP3 voice recorder sample for Android.- https://github.com/yhirano/Mp3VoiceRecorderSampleForAndroid
Android JNI層實現掃描sd卡mp3檔案 - http://download.csdn.net/detail/coder80/5071729
NDK開發—仿QQ變聲器- https://github.com/AxeChen/ChangeVoice

Android NDK開發: JNI實戰專案- https://github.com/navyifanr/AndroidTrainingDemo/tree/master/JNISample
JNI解析以及在Android中的實際應用- https://mp.weixin.qq.com/s/q2_7E1Nnhyv4hJ9ziIFKLQ
android應用監聽自身解除安裝,彈出使用者反饋調查- https://github.com/janstk/LaoUtils  
https://github.com/wqycsu/uninstalldemo
android解除安裝監聽(相容)- http://download.csdn.net/download/a378881925/8373409
Android 通過JNI實現守護程序- http://blog.csdn.net/yyh352091626/article/details/50542554
Android JNI出坑指南- https://blog.csdn.net/Tencent_Bugly/article/details/78898975
Adroid應用如何監聽自己是否被解除安裝及解除安裝反饋功能的實現(第三版)-http://blog.csdn.net/kun1308168984/article/details/17143165
APP監聽是否被解除安裝及解除安裝反饋功能- http://blog.csdn.net/mockingbirds/article/details/46594107