- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C02_b
基於軟硬整合觀點
认识JNI开发与NDK(b)
By 高煥堂
基於軟硬整合觀點
2 、使用Android NDK
• 当你安装好NDK环境之后,就能动手利用
NDK环境来开发本地(Native)的C程序了。
于此,兹举例说明开发程序。
Step-1. 在Android SDK环境里,
建立一个开发项目
• 例如,建立一个名称为NDK-01的应用程序
开发项目,内含helloNDK.java和test.java
程序。其中,helloNDK.java的内容如下:
*.class 類定義
native String sayHello();
*.h 頭文件
• 把焦点放在接口(Interface) ,就是函数:
native String sayHello();
• 可以将这个Java类定义,看成为这项接口
的Java方叙述文件。
• 由于这项接口,涉及两种语言,所以应该
有两份文件,两种语言各一份。
• 所以,我们需要替这项接口产出一份C语言
方的叙述文件,其形式就是C的头文件
(Header File) 。
Step-2. 进行编译,
产出helloNDK.class档案
• 编译上述的项目,产生*.class档案。
Step-3. 使用javah 工具,
产出C语言的*.h头文件
• 返回Android SDK环境,建立一个名称为
/jni/ 的新档案夹(Folder)如下:
• 进入/jni/ 目录区,执行javah 去读取
/bin/helloNDK.class档案,然后产出
com_misoo_pk01_helloNDK.h头文件。
• 返回到Android SDK环境,刷新(Refresh)
之后,可在Eclipse画面上看到该头文件如
下:
• 可以打开com_misoo_pk01_helloNDK.h
头文件,其内容如下:
Step-4. 依据*.h头文件而撰写
*.c程序码
• 产出com_misoo_pk01_helloNDK.h头文
件之后,就可以将NDK-01开发项目内容拷
贝(或只拷贝/jni/ 目录区内容) ,拷贝到NDK
的/samples/ 目录里如下:
• 接着,本地C开发者就能使用C语言,结合
JNI(Java Native Interface)语法,撰写
com_misoo_pk01_helloNDK.c程序码,如
下:
Step-5. 编译及连结本地程序
• 必须先开启Cygwin 。也就是,从桌面或
开始/所有程序/Cygwin里,点选
Cygwin bash shell ,进行编译和连结动
作。
• 就完成编译和连结任务,产出
libhelloNDK.so本地程序库,并放置于
/libs/armeabi/里,如下:
• 当C开发端完成libhelloNDK.so程序库之后,
就可以将/samples/NDK -01内容(或是只拷
贝/libs/ 目录区内容) ,拷贝回去Android
SDK环境里。于是在Android SDK环境里
可以看到libhelloNDK.so本地程序库,如
下:
Step-6. 编执行NDK-01范例程序
• 此时,就可以撰写test.java的内容,让它调
用helloNDK.java类别的本地函数,如下:
Step-7. 将*.so打包到*.apk
• 接着编译NDK-01项目,将*.so本地程序库
打包到*.apk里,并且执行该*.apk 。执行到
指令:obj.sayHello()
您可能关注的文档
- Android从程序员到架构师之路-B04_a_SurfaceView的UI多线程.pdf
- Android从程序员到架构师之路-B05_d_AIDL与Proxy-Stub设计模式.pdf
- Android从程序员到架构师之路-B06_b_活用IBinder接口于近程通信.pdf
- Android从程序员到架构师之路-B07_b_Messager框架与IMessager接口.pdf
- Android从程序员到架构师之路-B07_c_Messager框架与IMessager接口.pdf
- Android从程序员到架构师之路-C01_a_JNI架构原理_Java与C的对接.pdf
- Android从程序员到架构师之路-C01_e_JNI架构原理_Java与C的对接.pdf
- Android从程序员到架构师之路-C01_d_JNI架构原理_Java与C的对接.pdf
- Android从程序员到架构师之路-C02_c_认识JNI开发与NDK.pdf
- Android从程序员到架构师之路-C02_e_认识JNI开发与NDK.pdf
- 浙江金华市公共资源交易中心永康市分中心编外人员招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波慈溪市政协办公室招考聘用编外工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江金华永康市西溪镇人民政府招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 福建南平市公安局建阳分局招考聘用辅警笔试历年典型考题及考点研判与答案详解.docx
- 浙江嘉兴海盐县武原街道基层残疾人工作专职委员(公益岗位)招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波知识产权保护中心招考聘用工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江杭州建德市面向2024届普通高校毕业生招考聘用教师(第二批)16人笔试历年典型考题及考点研判与答案详解.docx
- 浙江省台州中学面向2024届普通高校毕业生招考聘用教师12人笔试历年典型考题及考点研判与答案详解.docx
- 湖北师范大学体育学院专任教师招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 重庆市南岸区教育事业单位面向2024届高校毕业生招考聘用114人笔试历年典型考题及考点研判与答案详解.docx
最近下载
- 手术室实践指南之手术病人意外伤害预防护理课件.pptx
- 医学媒介生物基础知识及国境口岸病媒生物监测.ppt
- java图书管理系统[].doc VIP
- 软件测试实验白盒测试.doc VIP
- 2023年副高(超声医学与技术)考试真题卷(含答案)M9D4.docx
- 营商的法律智慧:商法(暨南)中国大学MOOC慕课 章节测验期末考试答案.docx
- 初中创意编程课程《用Microbit玩转声音——Microbit用音乐模块编制音乐演奏程序》课件.pptx VIP
- 《土方与爆破工程施工及验收规范》GB50201-2012.docx
- 未来工厂建设导则(发布稿)(0723).pdf
- 《大气辐射学》期末复习试题及答案.pdf
文档评论(0)