1满着、什么是NDK谦炒?
NDK全稱是Native Development Kit,NDK提供了一系列的工具漓滔,幫助開發(fā)者快速開發(fā)C(或C++)的動態(tài)庫编饺,并能自動將so和java應用一起打包成apk。NDK集成了交叉編譯器(交叉編譯器需要UNIX或LINUX系統環(huán)境)响驴,并提供了相應的mk文件隔離CPU透且、平臺、ABI等差異豁鲤,開發(fā)人員只需要簡單修改mk文件(指出“哪些文件需要編譯”秽誊、“編譯特性要求”等),就可以創(chuàng)建出so琳骡。
2锅论、為什么使用NDK?
@1楣号、代碼的保護最易。由于apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大炫狱。
@2藻懒、可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++代碼編寫的视译。
@3嬉荆、提高程序的執(zhí)行效率。將要求高性能的應用邏輯使用C開發(fā)酷含,從而提高應用程序的執(zhí)行效率鄙早。
@4、便于移植椅亚。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用限番。
3、什么是JNI呀舔?
JNI的全稱是JavaNative Interface弥虐,它提供了若干的API實現了Java和其他語言的通信(主要是C和C++)。
4、為什么使用JNI躯舔?
JNI的目的是使java方法能夠調用c實現的一些函數驴剔。
5、安卓中的so文件是什么粥庄?
android中用到的so文件是一個c++的函數庫丧失。在android的JNI中,要先將相應的C語言打包成so庫惜互,然后導入到lib文件夾中供java調用布讹。