- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AndroidNDK开发——教程_图文
10.3 NDK开发示例 建立C源代码文件 根据Android.mk文件的声明,add-module模块仅包含一个C源代码文件add-module.c。add-module.c文件的作用是实现两个整数加法运算功能,全部代码如下 #include jni.h jlong Java_edu_hrbeu_AndroidNdkDemo_AndroidNdkDemo_add( JNIEnv* env, jobject this, jlong x, jlong y ) 4. { 5. return x+y; 6. } 10.3 NDK开发示例 建立C源代码文件 第1行代码引入的是JNI(Java Native Interface)的头文件 第3行代码是函数名称,jlong表示Java长型整数,Java_edu_hrbeu_AndroidNdkDemo_AndroidNdkDemo_add的构成为Java_包名称_类_函数,其中函数的名称和参数要与AndroidNdkDemo.java文件定义的函数一致,AndroidNdkDemo.java文件定义的函数为public native long add(long x, long y) 第5行代码用来返回加法运算结果 10.3 NDK开发示例 编译共享库模块 首先启动cygwin,然后切换到Androd NDK的主目录下,键入如下的编译命令 ndk-demo是apps目录下的应用程序目录名称。在指定应用程序(目录)名称后,NKD编译系统会首先找到目录中的Application.mk文件,根据Application.mk文件的信息,确定该Android共享需要使用add-module模块;然后在sources目录中搜索所有Android.mk文件,在找到与add-module模块匹配的Android.mk文件后,根据Android.mk文件提供的信息编译指定的C/C++源代码文件,形成共享库文件;最后将生产的共享库文件拷贝到Android工程的指定目录中 make APP=ndk-demo 10.3 NDK开发示例 编译共享库模块 目前Android NDK 1.5版本存在一个小错误,如果用户直接运行make APP=ndk-demo命令编译程序,NDK编译系统将提示out/host/config.mk文件不存在,让用户重新运行build/host-setup.sh脚本 解决这问题的方法非常简单,只需要将Android NDK/build/out/host文件夹和其中的config.mk文件拷贝到Android NDK/out目录中即可 10.3 NDK开发示例 编译共享库模块 下图是编译成功的提示信息 提示信息包括编译add-module模块所使用到的文件,生产so文件的文件名和so文件的安装位置。为了确认是否成功编译了模块,用户可以打开apps/ndk-demo/project/libs/armeabi目录,如果目录中存在libadd-module.so文件,则表示编译成功 10.3 NDK开发示例 运行Android程序 在运行AndroidNdkDemo示例程序前,务必将AndroidNdkDemo.java文件中第16行和第23行的注释取消,并注释掉第25行到第27行代码 习题: 1.简述Android NDK开发的优势和不足。 2.说明Android NDK应用程序开发的一般步骤。 3.参考NDK的tow-libs示例,使用静态库实现AndroidNdkDemo示例中加法运算的函数功能。 4.使用NDK能够提高复杂函数的运算速度,但程序运行效率的提升并不容易度量。分别使用C/C++和Java语言设计一个具有复杂运算的函数,通过对比函数的调用和返回时间,分析NDK对提高程序运行效率的能力。 * * 第10章 Android NDK开发 本章学习目标: 了解Android NDK的用途 掌握Android NDK编译环境的安装与配置方法 掌握Android NDK的开发方法 10.1 NDK简介 Android NDK (Android Native Development Kit)是一系列的开发工具,允许程序开发人员在Android应用程序中嵌入C/C++语言编写的非托管代码 Android NDK优势 解决了核心模块使用托管语言开发执行效率低下的问题 允许程序开发人员直接使用C/C++源代码,极大的提高了Android应用程序开发的灵活性 Android NDK不足 增加程序的例如信号处理或物理仿真)使用非托管代码运行效率最高,复杂性,增加了程序调试的难度 CP
文档评论(0)