### JNI
#### 1、對JNI是否了解
> * 參考回答:
> * Java的優點是**跨平臺**,但也因為其跨平臺的的特性導致其**本地交互的能力不夠強大**,一些和操作系統相關的的特性Java無法完成,于是**Java提供JNI專門用于和本地代碼交互,通過JNI,用戶可以調用C、C++編寫的本地代碼**
> * NDK是Android所提供的一個工具集合,通過NDK可以在Android中更加方便地通過JNI訪問本地代碼,其優點在于
> * 提高代碼的安全性。由于so庫反編譯困難,因此NDK提高了Android程序的安全性
> * 可以很方便地使用目前已有的C/C++開源庫
> * 便于平臺的移植。通過C/C++實現的動態庫可以很方便地在其它平臺上使用
> * 提高程序在某些特定情形下的執行效率,但是并不能明顯提升Android程序的性能
#### 2、如何加載NDK庫 ?如何在JNI中注冊Native函數,有幾種注冊方法 ?
> * 參考回答:
~~~
public class JniTest{
//加載NDK庫
static{
System.loadLirary("jni-test");
}
}
~~~
> * 注冊JNI函數的兩種方法
> * **靜態方法**
> * **動態注冊**
> * 推薦文章:
> * [注冊JNI函數的兩種方式](https://blog.csdn.net/wwj_748/article/details/52347341)
> * [Android JNI 篇 - 從入門到放棄](https://www.jianshu.com/p/3dab1be3b9a4)
#### 3、你用JNI來實現過什么功能 ? 怎么實現的 ?(加密處理、影音方面、圖形圖像處理)
> * 參考回答:
> * 推薦文章:[Android JNI 篇 - ffmpeg 獲取音視頻縮略圖](https://www.jianshu.com/p/411761bd5f5b)