如何从零开始创建Android NDK应用-linux


如何从零开始创建NDK应用- Linux 使用Android原生开发工具包 (NDK) 教程介绍和目标 本教程将通过一个例子展示如何使用Android NDK(原生开发工具包)。读完这本教程你可以学会如何通过Android应用 程序来呼叫用C语言编写的本地函数。利用教程中的方法,你可以将示例中简单的C函数代替为你的复杂C函数并通过你的 Android应用程序进行呼叫。示例中的eclipse项目文件夹命名为TimesThree,该项目包含了所有该教程中使用的文件。 本指南假设你在系统中已经安装好Android SDK,eclipse的Android plug-in插件和Android NDK。 在这个例子中,我们将介绍: 创建原生C语言函数,功能是用常量乘以一个数并返回计算结果。 创建Java函数,功能是用常量乘以一个数并返回计算结果。 创建库文件LibMult.so。 建构Android应用来呼叫原生C语言函数。 比较Java函数和C语言函数的效率。 目录 使用Android原生开发工具包(NDK) 1. 教程介绍和目标 2. 操作步骤 a) 创建Android工程 b) 使用XML创建UI c) 编辑工程Java文件 d) 添加新Java文件 e) 创建头文件 f) 创建Android Makefile g) 使用NDK创建库文件 h) 使用模拟器启动 3. 总结 操作步骤 创建Android工程 为了测试应用和库文件,在eclipse中创建一个新的Android工程. 选择SDK目标(这里使用Android 2.2). 定义应用名称,包名称, Activity名称和最小支持的SDK版本号,如下图所示: 使用XML创建UI 如果你不知道如何创建UI,请在eclipse里把我的Android工程中的main.xml的内容复制到你的main.xml中并保存。该文件创建了一个编辑框以供用户输入, 一个按键来启动计算行为和一个文本框来显示计算结果。 编辑工程Java文件 编辑你的java文件(本例中为TimesThree.java). 如下图所示,我们将在按键的'onClick'句柄中呼叫Dalvik函数和原生函数。 图中eclipse工程里所示的红色"x"符号表示错误信息,我们将在下一步创建LibMult.java来解决此问题。 添加新Java文件 在工程中添加一个新的文件,命名为LibMult.java。该文件包含LibMult类,实现MultJava并且呼叫MultNative. 请注意代码System.loadlibrary("Mult")。 下图显示LibMult.java的实现。 把 创建头文件 使用Linux控制台,进入工程目录,创建文件夹命名为jni。进入工程中的bin目录并执行 javah –jni com.aamir.LibMult 来创建头文件。 把新创建的头文件移到jni目录中。 创建Android Makefile 在jni目录中创建Android.mk并写入下图中的内容,保存Android.mk。 使用NDK创建库文件 在jni目录下创建C语言文件Mult.c。此文件定义C函数和JNI方法的签名,如下图所示: 请确认在开发环境中安装NDK。(NDK并不是Android SDK的一部分。你需要从以下链接中进行安装:http://developer.android.com/sdk/ndk/index.html) 在jni目录下创建了Android.mk, 头文件和Mult.c之后, 执行ndk-build来创建libMult.so库文件。 使用模拟器启动 在模拟器中启动你的工程。点击Calculate按钮将会呼叫Multjava和MultNative函数并且打印出各个函数的执行时间。 总结 通过NDK创建的原生函数在执行效率上明显优于Dalvik函数。如果你的应用中有计算密集型函数遇到了效率瓶颈, 便可以使用C语言重写它来生成原生函数,然后使用本教程展示的方法,用你的Android应用程序来呼叫原生函数,这样可以极大地提高效率。
还剩8页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 17 金币 [ 分享pdf获得金币 ] 7 人已下载

下载pdf

pdf贡献者

zhaoyy1010

贡献于2012-01-12

下载需要 17 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf