前言
第一次知道Java和C语言可以进行混合编程还是在学校时,当时翻阅一本叫做Java核心技术的书,简单的看了一眼。多次尝试在eclipse下搭建开发环境,均已失败而告终,因此对JNI的研究便作罢 。
直至工作中,做的是android软件开发的工作,公司的主要业务是给银行做手机银行软件,比较注重安全问题,因此将一些加密算法的实现封装在so文件中,由此再次激发本宝宝的好奇心,这个so文件到底是个什么鬼。
在此,对so文件不多做解释,做过Android开发都知道有个叫NDK的东西(Native Development Kit),本地开发工具。为什么会提到他呢,因为Google就是利用Java的JNI特性提供NDK帮助开发者们迅速实现so文件的开发。关于NDK的开发和使用,将会在下一个blog中讲解,现在我们来探讨一下JNI的开发。
工欲善其事必先利其器,一个好的电脑(准确说是好的系统),干起活来有着事半功倍的效果。以前用的是Windows系统,在eclipse下搭建不仅需要下载eclipse C/C++(CDT)版本(或者对其他版本的eclipse安装插件),还要安装Cygwin或其他版本的C语言编译器,配置环境变量什么的,本宝宝就没成功过。很惊喜的是,在搭建android开发环境时,已经自动安装了CDT插件,Mac系统集成XCode开发工具,也自带了C/C++的编译器。(等你以后学