在 Android 中 使用JNI


1、新建一个android工程

2、在工程目录下添加名为 jni 的文件夹(必须)

3、在jni文件夹下新建你的.c文件(我的叫Hello.c)

4、在jni文件夹下新建名字为Android.mk文件

4.1Android.mk文件中加入

LOCAL_PATH := $(call my-dir)    //当前路径(如果你了解shell语言,应该可以很轻松的理解) 

	include $(CLEAR_VARS) 

	LOCAL_MODULE    := Hello        //要生成的.so库名  表示编译的动态库名称

	LOCAL_SRC_FILES := Hello.c        //你的.c文件名字  表示源代码文件

	include $(BUILD_SHARED_LIBRARY)
5、开始写 C 代码 (比较简单,返回一个字符串: hello world from c"

#include <string.h>

#include <jni.h>

jstring

Java_com_example_testnndk_MainActivity_helloWorldFromC(JNIEnv* env, jobject obj){ //Java_包名_类名_方法名

    char* str = "hello world from c";

    return (*env)->NewStringUTF(env,str);

    }
6、在android 项目的MainActivity 中编写代码

static {

 System.loadLibrary("Hello");//上面的.mk里生成的名字

 }

  public static native String helloWorldFromC();

7、运行cygwin,输入命令cd .../jni,进入到.../jni目录。(进入到项目的jni目录)

输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)

8、在MainActivity中获取Hello.c输出的值

String s = helloWorldFromC();






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值