1. publicclassPrintf_Jni{
  2. static{
  3. System.loadLibrary("com_nedu_jni_helloword_printf-jni");
  4. }
  5. publicnativevoidprintHello();
  6. }

第二步:使用javah命令生成.h头文件,如图:

这个要回到src目录下,不知道什么原因,如果在上面的javac路径下会报错,如图:

使用javah命令生成的头文件如下:

        
  1. /*DONOTEDITTHISFILE-itismachinegenerated*/
  2. #include<jni.h>
  3. /*Headerforclasscom_nedu_jni_helloword_Printf_Jni*/
  4. #ifndef_Included_com_nedu_jni_helloword_Printf_Jni
  5. #define_Included_com_nedu_jni_helloword_Printf_Jni
  6. #ifdef__cplusplus
  7. extern"C"{
  8. #endif
  9. /*
  10. *Class:com_nedu_jni_helloword_Printf_Jni
  11. *Method:printHello
  12. *Signature:()V
  13. */
  14. JNIEXPORTvoidJNICALLJava_com_nedu_jni_helloword_Printf_1Jni_printHello
  15. (JNIEnv*,jobject);
  16. #ifdef__cplusplus
  17. }
  18. #endif
  19. #endif

第三步:编写c文件,代码如下:

        
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include"com_nedu_jni_helloword_Printf_Jni.h"
  4. JNIEXPORTvoidJNICALLJava_com_nedu_jni_helloword_Printf_1Jni_printHello
  5. (JNIEnv*e,jobjectj)
  6. {
  7. printf("Helloworld!");
  8. }

第四步,书写Android.mk文件,编译c文件
Android.mk文件如下:

        
  1. LOCAL_PATH:=$(callmy-dir)
  2. include$(CLEAR_VARS)
  3. LOCAL_MODULE:=com_nedu_jni_helloword_printf-jni
  4. LOCAL_SRC_FILES:=Printf_Jni.c
  5. include$(BUILD_SHARED_LIBRARY)

        
  1. System.loadLibrary("com_nedu_jni_helloword_printf-jni");

        
  1. Printf_Jniprint=newPrintf_Jni();
        
  1. print.printHello();

/**。
* @author 张兴业
* 邮箱:xy-zhang@163.com
* qq:363302850
*/

通过下面的代码加载so文件通过下面的代码加载so文件

调用如下:

LOCAL_MODULE := com_nedu_jni_helloword_printf-jniLOCAL_MODULE := com_nedu_jni_helloword_printf-jniLOCAL_MODULE表示so文件名

LOCAL_SRC_FILES 需要编译的文件

按照这篇文章(Get Your Eclipse-Integrated NDK On!)的介绍就可以在Eclipse编译了。

第五步:使用so文件:

通过下面的代码加载so文件

2、javac编译

进入java文件所在路径,调用javac命令,如图:

android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Integrated NDK On!)搭建Eclipse编译C语言为so文件的开发环境。

native方法实现步骤如下:

1、在Java中声明native()方法,然后编译(javac);

2、用javah产生一个.h文件;

3、编写包含.h文件的c文件

4、编译c文件

5、使用编译成功的so文件。

第一步:

1、声明native方法

更多相关文章

  1. 解决Cocos2d-x3.1编译生成Android程序出现Android(安卓)NDK:Abor
  2. android中利用pull解析xml文件
  3. android 几个快速编译image的指令
  4. android 按纽状态配置文件
  5. Memory Analyzer(MAT)打开android eclipse Dump内存文件出现 Unkno
  6. Android(安卓)Re-installation failed解决方法
  7. Android文件读写包含SDCard
  8. android曲线图
  9. NPM 和webpack 的基础使用

随机推荐

  1. 绕过身份检测,破解Android SU
  2. Android 事件拦截/分发机制 (图解+代码)
  3. Android之android:launchMode
  4. 在Android里完美实现基站和WIFI定位
  5. Android 调用微信登陆、支付、分享,出现
  6. Android 分区挂载
  7. 130292015012 陈月凤 第一章作业
  8. 【Android】显示网络图片代码分析
  9. Android中Intent的使用示例
  10. Android 高级控件(二)