技术总结_android平台的jni开发_金文

技术总结_android平台的jni开发_金文

ID:14817809

大小:609.00 KB

页数:19页

时间:2018-07-30

技术总结_android平台的jni开发_金文_第1页
技术总结_android平台的jni开发_金文_第2页
技术总结_android平台的jni开发_金文_第3页
技术总结_android平台的jni开发_金文_第4页
技术总结_android平台的jni开发_金文_第5页
资源描述:

《技术总结_android平台的jni开发_金文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、技术总结-Android平台的JNI开发一、什么是JNIJNI是Java Native Interface的缩写。标准JAVA库并不支持某些平台特性,可以用别的语言编写代码使得软件支持这些平台特性,也可能程序需要用低级语言编写一些算法以提高程序的效率.这些情况都可能是使用JNI的原因。JNI的编写步骤:1.编写带有native 声明的java类;2.编译java文件成class类;3.使用javah -jni com.ikags.project.XXXX 编译成.h文件;4.使用C/C++编写代码;5.将.h和.c(.cpp)文件编译成.dll(.so)文件(根

2、据平台不同,用不同的工具,PC平台VS2005就可以,android平台的话,用cygwin+android NDK(android Native Development Kit)进行开发;6.将.dll(.so)文件提供给你的项目,用system.loadLibrary方法调用。详细的讲解如下:1.编写一个带有native声明的java类.其中native方法就是需要生成的可调用的方法;代码:2.编译成class文件;可以通过命令行中的 javac AJni.java进行编译.最简单的方法,用J2SE项目直接右键run然后,可以在项目下的bin目录中找到AJn

3、i.class文件。如果通过命令行编译会出现问题,请找到JAVA 文件夹下面对应JDK的bin目录,把文件copy到里面执行(或在环境变量中配置bin目录的位置)。3.使用javah -jni com.ikags.project.XXXX 编译成.h文件;通过命令行中的javah -jni com.ikags.project.XXXX 编译成.h文件,其中在编译.h文件的时候切记加入路径,这个有时候会引起一些奇怪的问题,比如调用失败、调用不到、原因未知。如果编译失败的话,处理方法同编译成class文件,请找到JAVA 文件夹下面对应JDK的bin目录,把文件co

4、py到里面执行(或者在环境变量中配置Bin目录的位置)此时生成文件com_ikags_AJni.h。1.使用C/C++编写代码;其中前一阶段生成的.h头文件如下:代码:这里是不需要进行任何更改的.只要自己再写一个.c(.cpp)文件,其中包含有这三个方法即可,PC和android平台支持的库不一样,如果调用了不支持的库的话,后面的编译会出错,这个需要特别注意一下。Android平台目前1.6的NDK只支持Math库、C标准库、ZLib库、Log库和OpenGL ES库。(PC端的JNI支持printf,但是如果android上不支持,这时候针对android平台

5、开发的话编译时会出错)。.c文件如下:代码:1.PC端:直接通过VS2005就可以编译.编译时候如果出现找不到某些.h文件的错误的话(fatal error C1083: 无法打开包括文件L ..........  No such file or directory),参考下面更改:项目--->属性---->配置属性---->C/C++---->常规---->附加包含目录”选项中有很多include下的库,将JAVA JDK里面include的和里面的win32这两个路径添加入目录中再尝试编译。一般来说代码正确可以编译通过,这里生成myjni.dll。Andro

6、id端:这里要通过cygwin 和android NDK进行编译,android NDK下载后直接解压就可以.cygwin需要安装几个C的编译器。打开cygwin看到命令行模式, 通过 cd 命令进入NDK的目录,然后运行build/host-setup.sh可以看到一些信息,如果没有报错的话,就正常安装完毕。编译本身命令很简单, make APP=hello-jni -B 就可以尝试编译自带实例.编译成功的话,说明配置成功,然后可以开始编译自己的程序。在NDK目录的apps文件夹下,建立一个myjni文件夹,从hello项目里面复制Application.mk

7、到myjni文件夹里面,用文本编辑器编辑文本为APP_PROJECT_PATH := $(call my-dir)APP_MODULES      := myjni然后建立一个jni文件夹,从hello项目里面复制一个Android.mk到jni文件夹目录,然后用文本编辑器更改里面的相关参数。LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := myjniLOCAL_SRC_FILES:= com_ikags_AJni.cppinclude $(BUILD_SHARED_LIBRAR

8、Y)这时候把你的.h和.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。