Android之JNI的实现步骤

1.建立java文件在类里声明静态native方法和加载动态库
public class TestJni {
static   
   {   
       System.loadLibrary("testjni");   //库的名字和自己编写的c方法名相同
   }    
 private native String hello();
}
2..h头文件
执行javac 命令生成class文件  将class文件考入到com.example.wsy.TestJni所在的目录 目的是要让class文件和java文件在一起编译
执行D:\WorkPlace\wsy\src>javah -classpath . -jni com.example.wsy.TestJni  将会在src文件夹中生成.h头文件
然后class文件可以删除了。。
在目录里建个jni文件夹考入.h头文件 


3.c文件
 .c文件是来实现.h文件里的接口的


#include <string.h>
#include <jni.h>
JNIEXPORT jstring JNICALL Java_com_example_wsy_TestJni_hello
(JNIEnv* env, jobject thiz){
 return (*env)->NewStringUTF(env, "欢迎回来");
}


4.Android.mk文件
编写一个Android.mk文件在里面写入对应的参数:


LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) 


LOCAL_MODULE    := TestJni    //so库名 可以随便定义但是引用的时候名字要对
LOCAL_SRC_FILES := TestJni.c   //实现.h文件里面的接口 名字可以随便定义


include $(BUILD_SHARED_LIBRARY)  //动态生成so文件


5.新建并配置一个新的Builder 生成so文件(要下载配置好Ndk环境)
 
    1) 点击Project->Properties->Builders->New,新建立一个Builder。在弹出的对话框上面点击Program,点击OK;
 
    2) 在弹出的对话框【Edit Configuration】中,配置选项卡【Main】:
 
               Location中需要填入nkd-build.cmd的路径(NDK安装目录下):F:\android-ndk32-r10-windows-x86\android-ndk-r10\ndk-build.cmd
 
               WorkingDiretcoty中需要填入本工程根目录:D:\WorkPlace\wsy
 
    3) 在【EditConfiguration】中,配置选项卡【Refresh】:
 
              勾选“Refresh resources upon completion”,
 
              勾选“The entire workspace”,
 
              勾选“Recuresively include sub-folders”。
 
    4)在【EditConfiguration】中,配置选项卡【Build Options】:
 
             勾选“After a “Clean””,
 
             勾选“During manual builds”,
 
             勾选“During auto builds”,
 
             勾选“Specify working set of relevant resources”。
 
             点击“Specify Resources…”勾选本工程的“jni“目录,Finish!
 
      保存设置,点击OK。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值