- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.3 NDK开发示例
建立Android工程
上面的代码有一个NDK开发的小技巧,在开发C/C++的共享库前,可以使用具有相同和相近功能的Java函数进行替代。在代码第17行本应该调用共享库的add()函数,但为了便于开发和调试,在代码第25行到第27行,使用Java代码开发了一个功能相同的add()函数,这样即使在没有完成C/C++的共享库开发前,也可以对这个Android工程进行界面部分的调试
第16行和第23行注释掉的代码,就是在C/C++的共享库开发完毕后需要使用的代码,其中第16行是动态加载共享库的代码,加载的共享库名称为add-module;第23行用来声明共享库的函数,使用C/C++开发的共享库必须有同名的函数。在共享库开发完毕后,取消第16行和第23行代码的注释,并注释掉第25行到第27行代码,这样程序就可以正常调用共享库内的函数进行加法运算
10.3 NDK开发示例
建立Android.mk文件
建立C/C++源代码文件前,首先需要在sources目录中建立模块目录,AndroidNdkDemo示例的模块目录为add-module,这个模块目录的名称与Application.mk文件中声明的模块名称相同
add-module目录中包含两个文件,Android.mk和add-module.c,目录结构如下
(+)sources
(+)add-module
(-)Android.mk
(-)add-module.c
10.3 NDK开发示例
建立Android.mk文件
Android.mk是为NKD编译系统准备的脚本文件,用来描述模块需要编译C/C++文件的信息
通常NKD编译系统会搜寻$NDK/sources/*/目录中的所有Android.mk文件,但如果程序开发人员将Android.mk文件放置在下一级目录中,则需要在上一级目录中的Android.mk文件添加如下代码
include $(call all-subdir-makefiles)
10.3 NDK开发示例
建立Android.mk文件
下面来分析AndroidNdkDemo示例的add-module模块的Android.mk文件
Android.mk文件的代码如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := add-module
LOCAL_SRC_FILES := add-module.c
include $(BUILD_SHARED_LIBRARY)
http://www.anzhuo.cc/forum-55-1.html 三星N7100 GALAXY Note2论坛
10.3 NDK开发示例
建立Android.mk文件
每个Android.mk文件都必须以第1行代码开始,变量LOCAL_PATH用来定义需要编译的C/C++源代码的位置,my-dir由NKD编译系统提供,表示当前目录的位置。代码第3行的include $(CLEAR_VARS)表示清空所有以LOCAL_开始的变量,例如LOCAL_MODULE、LOCAL_SRC_FILES、LOCAL_STATIC_LIBRARIES等,但第1行定义的LOCAL_PATH不在清空的范围内。因为所有的脚本都将粘贴到同一个GNU Make的执行上下文中,而且所有变量都是全局变量,因此必须在每次使用前清空所有以前用过的变量
您可能关注的文档
- 如何调试XI应用程序.doc
- 学案33 导数的应用(1).ppt
- 安卓android框架与应用开发介绍(10).ppt
- 安卓android框架与应用开发介绍(7).ppt
- 安卓手机应用市场调查介绍.doc
- 安卓系统Android应用程序开发PPT教材_第7章后台服务(12).ppt
- 安卓系统Android应用程序开发PPT教材_第7章后台服务(14).ppt
- 安卓系统Android应用程序开发PPT教材_第7章后台服务(20).ppt
- 安卓系统Android应用程序开发PPT教材_第7章后台服务(21).ppt
- 安卓系统Android应用程序开发PPT教材_第7章后台服务(22).ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)