




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android的NDK编程单击此处编辑副标题样式版权声明华清远见教育集团版权所有;未经华清远见明确许可,不得为任何目的以任何形式复制或传播此文档的任何部分;本文档包含的信息如有更改,恕不另行通知;华清远见教育集团保留所有权利。2目录使用NDK的场合安装Cygwin安装CDT使用NDK来开发项目使用NDKNDK:NativeDevelopmentKits使用本地C/C++语言可以处理一些性能敏感或复杂的算法,通过JNI(JavaNativeInterface)的方式,让Java调用C/C++编写的方法JNI调用本身也比较耗时,所以如果本身不复杂或者并非一定要用JNI实现的,不要用它实现4安装Cygwin5安装CygwinCygwin是一个Linux/Unix模拟器,可以使用它来模拟Linux/Unix开发环境,并且可以灵活的根据需求,下载安装所需要的软件包,通过它,我们可以使用Linux中的GCC编译器和Make等6安装启动界面7选择安装方式8选择安装目录9选择下载目录10选择连接方式11选择镜像网站12选择安装包13选择安装包选择安装包,至少需要如下的安装包:autoconf2.1automake1.10Binutilsgcc-coregcc-g++gcc4-coregcc4-g++GdbPcrepcre-develGawkmake1415安装Cygwin16安装Cygwin安装完成后,启动cygwin,在其中输入gcc命令,应该出现类似下图的输出信息,或者输入gcc–version,应该出现版本信息17在Cygwin中配置NDK首先需要到Android官网上下载NDK,本课程所使用的NDK版本为NDKr5c版本进入Cygwin安装目录/home/你的windows用户名,找到下面的.bash_profile文件,备份一份,然后在最后加入如下2行配置:NDK=/cygdrive/D/Android/android-ndk-r5cexportNDK其中,D为NDK所在的盘符,Android/android-ndk-r5c为androidNDK的目录,例如上面的配置,说明其NDK放在D:\\Android/androi-ndk-r5c目录下打开Cygwin,输入$NDK,如果能正确输出刚才设置的文件,说明配置成功。18安装CDT19安装CDTCDT为Eclipse下的C/C++编辑、编译工具包,可以通过这个工具包,让我们能通过Eclipse来开发C/C++程序20安装CDT21安装CDT22安装CDT23创建NDK项目24创建NDK项目在Android中新建一个AndroidProject,命名为hello-jni在这个项目根目录中,新建一个jni目录,在里面可以编写你的C程序,以及一个用于make的Android.mk文件25创建NDK项目目录结构,其中libs和obj是编译后产生的26创建NDK项目编写一个Activity27public
classJNIActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@Overridepublic
voidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);TextViewtv=(TextView)this.findViewById(R.id.hello_jni);tv.setText(stringFromJNI());}public
nativeStringstringFromJNI();static{System.loadLibrary("my-jni");}}创建NDK项目在这个Activity,我们调用了一个JNI方法stringFromJNI(),这个方法是定义在C程序中的一个方法。另外,使用System.loadLibrary(“my-jni”);来将C编译后的动态库装载进来,这样才可以在其中调用在C中定义的方法28创建NDK项目在jni目录下,信建一个简单的C程序my-jni.c,这个程序返回一个字符串:HelloWorld29#include
<string.h>#include
<jni.h>jstringJava_com_alex_JNIActivity_stringFromJNI(JNIEnv*env,jobjectthiz){
return(*env)->NewStringUTF(env,“HelloWorld!");}创建NDK项目在这个程序中,我们定义的这个方法,它的名称必须是Java_com_alex_JNIActivity_stringFromJNI,其中,Java为固定写法,而com_alex为调用这个方法的Activity的包名,JNIActivity为调用这个方法的JavaActivity类,最后才是调用的方法名,另外,这个方法的返回值为jstring,表示JavaString类型30创建NDK项目接着我们需要设置它的编译器的一些参数。右键项目,打开Properties,选择“Builders”,然后点击“New”31创建NDK项目在这个窗口中选择“Program”32创建NDK项目33Cygwin的bash.execd/cygdrive/d/android/w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册土木工程师港口与航道工程真题解析与实战演练
- 古代汉语语法与翻译技巧深度解析2025年期末考试试题集
- 2025年小学数学毕业模拟考试(分数与比例)难点解析卷
- 医学护理课件网
- 鼻炎诊疗与健康管理方案
- 2025年护士执业资格考试题库实战:护理教育与培训护理伦理学前沿案例分析试题
- 2025年九年级生物中考生物多样性保护专题卷:全球生物多样性保护政策解析
- C++文件操作考点回顾试题及答案
- 第60讲 医疗与公共卫生2025届高考部编版历史一轮复习练习(含答案)
- 瑞幸java面试题及答案
- 干漆膜(涂层)厚度检测报告
- 国内外液压机技术现状及发展趋势
- 指南针私享家版出租价格
- 低压电工考证培训教程
- 脑卒中的早期康复
- 文学理论·第九章文学活动的发生和发展-课件
- 个人不担当不作为问题清单及整改措施
- 第五章 商务谈判的法律规定
- 2023-2024年整形外科学(副高)考试参考题库(真题考点版)带答案解析
- 广东省中山市八年级下学期期末考试语文试题
- 2024年贾玲张小斐《上学那些事》(手稿)台词剧本完整版
评论
0/150
提交评论