android-eclipse-jni-入门之小白教程

来源:互联网 发布:php重庆招聘贴吧 编辑:程序博客网 时间:2024/05/17 23:05

首先,大神勿喷。有错的地方,请多多指教。

 

一.简介:

         JNI(java native interface) java本地接口。用于java与操作系统本地代码互调的功能接口。

二.环境安装:

         1.安装JDK,并配置环境变量

         2.安装NDK,并配置环境变量

         3.安装eclipse

三.所需知识

         熟悉Java、C/C++

四.在eclipse中实现步骤

         1.创建一个android projection工程。

         2.写一个Native.java和MAinActivity.java。

         3.进入win命令窗口,切换到你的工作空间目录。输入 javah –classpath bin\classes [ –d jni ] [ -jni ]包名.类名

                   Javah         -----用于生成.h头文件

                   -classpath     -----用于指定类的路径

                   -d            -----用于指定输出的目录

                  配置好了JDK环境后,可自行输入javah查询用法。

               例:javah -classpath  -bin\classes  -d jni com.example.testjni.Native.java

4. 创建一个C/C++类,将生成的.h文件中的原型函数复制到C/C++类中。写自己的方法实现。

例:原型函数JNIEXPORT jstring JNICALLJava_com_example_hellojni_MainActivity_getString

   (JNIEnv *, jobject, jstring);

1)其中JNIEXPORT JNICALL这两个宏(被定义在jni.h);确保它在本地库对外可见,并且c/c++编译器能正常调用。

2JNIEnv接口指针,指向一个个函数表。函数表中的每一个入口指向一个JNI函数。

3)第二个参数根据本地方法是静态方法还是实例方法。若为静态方法时,代表为本地方法的所在类;若为实例方法时,代表本地方法对应类的对象。

5.写一个Android.mk文件

例:

             LOCAL_PATH:=$(call my-dir)

             include$(CLEAR_VARS)

             LOCAL_MODULE:=NativeJni

             LOCAL_SRC_FILES:=C类名.c    C++类名.cpp

             include$(BUILD_SHARED_LIBRARY)

 

6.进入命令窗口:输入ndk-build会自动生成相应的lib***.so文件。

                      在eclipse中 默认生成在obj\local\armeabi\lib***.so

 

到这里,基本就完成啦。最后就是你自己怎么去调用你自己写的native 方法。

0 0
原创粉丝点击