![第一天上午-应用回顾05-android ndk编程谷歌联合实验室_第1页](http://file4.renrendoc.com/view/1b9cca9d189fe9c12c469c01c13bf682/1b9cca9d189fe9c12c469c01c13bf6821.gif)
![第一天上午-应用回顾05-android ndk编程谷歌联合实验室_第2页](http://file4.renrendoc.com/view/1b9cca9d189fe9c12c469c01c13bf682/1b9cca9d189fe9c12c469c01c13bf6822.gif)
![第一天上午-应用回顾05-android ndk编程谷歌联合实验室_第3页](http://file4.renrendoc.com/view/1b9cca9d189fe9c12c469c01c13bf682/1b9cca9d189fe9c12c469c01c13bf6823.gif)
![第一天上午-应用回顾05-android ndk编程谷歌联合实验室_第4页](http://file4.renrendoc.com/view/1b9cca9d189fe9c12c469c01c13bf682/1b9cca9d189fe9c12c469c01c13bf6824.gif)
![第一天上午-应用回顾05-android ndk编程谷歌联合实验室_第5页](http://file4.renrendoc.com/view/1b9cca9d189fe9c12c469c01c13bf682/1b9cca9d189fe9c12c469c01c13bf6825.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大学谷歌联合使用NDK的场合安装Cygwin安装CDT使用NDK来开发项目使用NDKNDK:Native
Development
Kits使用本地C/C++语言可以处理一些性能敏感或复杂的算法,通过JNI(Java
NativeInterface)的方式,让Java调用C/C++编写的方法JNI调用本身也比较耗时,所以如果本身不复杂或者并非一定要用JNI实现的,不要用它实现安装CygwinCygwin是一个Linux/Unix模拟器,可以使用它来模拟Linux/Unix开发环境,并且可以灵活的根据需求,下载安装所需要的
包,通过它,我们可以使用Linux中的GCC编译器和Make等安装启动界面选择安装方式选择安装选择选择连接方式选择镜像选择安装包选择安装包选择安装包,至少需要如下的安装包:autoconf2.1automake1.10Binutilsgcc-coregcc-
g++gcc4-coregcc4-g++GdbPcrepcre-develGawkmake安装Cygwin安装Cygwin安装完成后,启动cygwin,在其中输入gcc命令,应该出现类似下图的输出信息,或者输入gcc–version,应该出现版本信息在Cygwin中配置NDK首先需要到Android官网上
NDK,本课程所使用的NDK版本为NDKr5c版本进入Cygwin安装/home/你的windows用户名,找到下面的.bash_profile文件,备份一份,然后在最后加入如下2行配置:NDK=/cygdrive/D/Android/android-ndk-r5cexport
NDK其中,D为NDK所在的盘符,Android/android-ndk-r5c为android
NDK的r5c,例如上面的配置,说明其NDK放在D:\\Android/androi-ndk-下打开Cygwin,输入$NDK,如果能正确输出刚才设置的文件,说明配置成功。安装CDTCDT为Eclipse下的C/C++编辑、编译工具包,可以通过这个工具包,让我们能通过Eclipse来开发C/C++程序安装CDT安装CDT安装CDT创建NDK项目在Android中新建一个Android
Project,命名为
o-jni在这个项目根
中,新建一个jni
,在里面可以编写你的C程序,以及一个用于make的Android.mk文件创建NDK项目结构,其中libs和obj是编译后产生的创建NDK项目编写一个Activitypublic
class
JNIActivity
extends
Activity{o_jni);/**
Called
when
the
activity
is created.
*/@Overridepublic
void
onCreate(Bundle
savedInstanceState)
{super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView
tv
=
(TextView)this.findViewById(R.id.tv.setText(stringFromJNI());}public
native
String
stringFromJNI();static
{System.loadLibrary("my-jni");}}创建NDK项目在这个Activity,我们调用了一个JNI方法stringFromJNI(),这个方法是定义在C程序中的一个方法。另外,使用
System.loadLibrary(“my-jni”);来将C编译后的动态库装载进来,这样才可以在其中调用在C中定义的方法创建NDK项目在jni
下,信建一个简单的C程序my-jni.c,这个程序返回一个字符串:
oWorld#include
<string.h>#include
<jni.h>jstring_alex_JNIActivity_stringFromJNI(
JNIEnv*
env,jobjecto
World!");thiz){return
(*env)->NewStringUTF(env,
“}创建NDK项目在这个程序中,我们定义的这个方法,它的名称必须是
_alex_JNIActivity_stringFromJNI,其中,Java为固定写法,而com_alex为调用这个方法的Activity的包名,JNIActivity为调用这个方法的JavaActivity类,最后才是调用的方法名,另外,这个方法的返回值为jstring,表示Java
String类型创建NDK项目接着我们需要设置它的编译器的一些参数。右键项目,打开Properties,选择“Builders”,然后点击“New”创建NDK项目在这个窗口中选择“Program”创建NDK项目Cygwin的bash.execd/cygdrive/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60601-2-52:2009 EN/FR Medical electrical equipment - Part 2-52: Particular requirements for the basic safety and essential performance of medical beds
- 【正版授权】 IEC 60601-2-37:2007/AMD1:2015 EN-FR Amendment 1 - Medical electrical equipment - Part 2-37: Particular requirements for the basic safety and essential performance of ultrasonic medica
- 【正版授权】 IEC 60601-2-33:2010+AMD1:2013+AMD2:2015 CSV EN-FR Medical electrical equipment - Part 2-33: Particular requirements for the basic safety and essential performance of magnetic resona
- 【正版授权】 IEC 60601-1-9:2007/AMD1:2013 EN-FR Amendment 1 - Medical electrical equipment - Part 1-9: General requirements for basic safety and essential performance - Collateral Standard: Requir
- 【正版授权】 IEC 60599:2022 CMV EN Mineral oil-filled electrical equipment in service - Guidance on the interpretation of dissolved and free gases analysis
- 【正版授权】 IEC 60598-2-22:2014 EN-FR Luminaires - Part 2-22: Particular requirements - Luminaires for emergency lighting
- 【正版授权】 IEC 60584-3:2021 EN-FR Thermocouples - Part 3: Extension and compensating cables - Tolerances and identification system
- 【正版授权】 IEC 60512-13-5:2006 EN-FR Connectors for electronic equipment - Tests and measurements - Part 13-5: Mechanical operation tests - Test 13e: Polarizing and keying method
- 【正版授权】 IEC 60512-11-12:2002 EN-FR Connectors for electronic equipment - Tests and measurements - Part 11-12: Climatic tests - Test 11m: Damp heat,cyclic
- 【正版授权】 IEC 60471:1977/AMD1:1980 EN-FR Amendment 1 - Dimensions of clevis and tongue couplings of string insulator units
- 2023年上海市普通高中学业水平合格性考试物理试(含答案解析)
- 初中学生写作能力培养探究 论文
- 王守仁《英国文学选读》译文
- 建筑工程专业英语课件(全)
- 中国近现代史纲要智慧树知到课后章节答案2023年下西南交通大学
- 抗心律失常药物临床应用中国专家共识
- 作物驯化与人类生活课件
- 玻璃制品有限公司玻璃切割机安全风险分级管控清单
- 四川省成都市金牛区2022-2023学年三年级下学期期末数学试卷(含答案)
- DB44-T 1607-2015 渗透型环氧树脂防水防腐涂料
- 抖音代运营服务内容明细直播服务内容明细
评论
0/150
提交评论