您的位置:首页 > 移动开发 > Android开发

Android--jni入门实例

2014-07-04 16:57 507 查看
例一:

http://www.cnblogs.com/skyseraph/archive/2012/03/20/2407593.html

其中使用javah生成.h文件的命令(cmd命令):



其中android.mk文件详细参数解析:

<span style="font-size:18px;">LOCAL_PATH:=$(call my-dir)
//必须,用于在开发树中查找源文件,宏函数‘my-dir’,由系统提供,用于返回当前路径(即包含Android.mk文件的目录)
include $(CLEAR_VARS)
//必须,clear_vars由编译系统提供,指定让GNU_MAKEFILE为你清除许多LOCAL_XXX变量(例如LOCAL_MODULE,
//LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES等)
LOCAL_SRC_FILES := com_testjni_TestJNI.c
//必须,包含要编译打包进模块中的C或C++源代码文件(无需列出头文件和包含文件)
LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
//说明包含的头文件,这里需要包含JNI的头文件
LOCAL_MODULE := libtestjni
//当前模块的名称/编译的目标对象,编译系统会自动产生合适的前缀和后缀
LOCAL_SHARED_LIBRARIES := libutils
//当前模块需要依赖的共享库
LOCAL_PRELINK_MODULE := false
//指明该模块是否被启动就加载,此处不需要prelink,所以置为false
include $(BUILD_SHARED_LIBRARY)
//build_shared_library表示编译生成共享库,是编译系统提供的变量,
//指向一个GNU Makefile脚本,负责收集自上次调用include $(clear_var)以来,定义在local_xxx变量中的所有信息,
//并且决定编译什么,如何正确地去做。还有build_static_library变量表示生成静态库:lib$(local_module).a,
//build_executable表示生成可执行文件。</span>


其中打包成.so文件的命令(借助于cygdrive工具)也可以这样写:(先将项目拷贝到android-ndk-r8d/samples目录下)



例二:

http://blog.csdn.net/xyz_lmn/article/details/6955031

native方法实现步骤如下:

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

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

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

      4、编译c文件

      5、使用编译成功的so文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: