现在的位置: 首页 > 综合 > 正文

Android中JNI实现

2013年10月30日 ⁄ 综合 ⁄ 共 2707字 ⁄ 字号 评论关闭

1. 新建Android工程(JNIPrj),编写Android代码:

 

   (1)res/layout/main.xml代码:

 

   (2)Activity代码:

 

2. 生成Head文件:

 

    进入工程根目录执行:javah -classpath bin -d jni 包名 + Activity名(包含JNI文件的包名与类名),生成以.h结尾的Head文件,内容如下:

 

3. 根据生成的Head文件编写C/C++文件:

 

4. 编写Android.mk文件:

 

    解释:

 

   (1)LOCAL_SRC_FILES:编译的源文件。

 

   (2)LOCAL_C_INCLUDES:需要包含的头文件目录。

 

   (3)LOCAL_SHARED_LIBRARIES:链接时需要的外部库。

 

   (4)LOCAL_PRELINK_MODULE:是否需要prelink处理(一般为false)。

 

   (5)LOCAL_MODULE:生成的.so文件名称(lib + 自定义名称 + .so,必须是这种格式,自定义的名称是Java代码:

 

           System.loadLibrary("mayingcai");中用到的名称,例:libmayingcai.so)。

 

   (6)BUILD_SHARED_LIBRARY:指明要编译成动态库。

 

5. 生成.so文件:

 

   (1)在Android源码目录/external目录下新建目录,将.h文件,.c文件,Android.mk文件拷入。

 

   (2)进入Android源码根目录。

 

   (3)build/envsetup.sh。

 

   (4)cd Android源码目录/external目录下新建目录。

 

   (5)mm命令,这时在Android源码目录/out/target/product/生成目录/system/lib目录中生成lib + 自定义名称 + .so文件。

 

6. 在Android工作的根目录中新建libs/armeabi目录,将生成的.so文件拷贝到此目录中。

 

7. 将工程发布到模拟器中,开发完成。

抱歉!评论已关闭.