Android利用NDK调用C函数教程_第1页
Android利用NDK调用C函数教程_第2页
Android利用NDK调用C函数教程_第3页
Android利用NDK调用C函数教程_第4页
Android利用NDK调用C函数教程_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.Android系统是基于Linux的虚拟机,所以系统级的编程是C的,换句话说在Android上调用C是绝对可行的。2.Android调用C最方便的方法是利用Android提供的NDK(NativeDevelopmentKit)。3.鉴于暂时不需要用gdb来debug,所以不涉及在windows中利用cygwin(一款旨在移植Linux进入Windows的软件)。前提要点假设已经装好了Windows下开发Android程序常用的IDE----EclipseADT,以及JavaJDK1.安装NDK。从官网下载压缩包并解压即可,网址为/tools/sdk/ndk/index.html如图所示:2.安装Eclipse的C/C++开发工具包菜单栏->Help->InstallNewSoftware->Workwith中输入网址galileo-/releases/galileo接下来会出现图示分类展开ProgrammingLanguages并选择EclipseC/C++DevelopmentTools然后下载即可至此所有安装已经完成,接下来我们实战一个调用C的程序1.新建一个工程,按照正常步骤即可2.在工程目录下新建jni目录3.在jni目录中添加一个名为Android.mk的文件,为了防止出错,我们复制一份ndk/samples/jni/hello-jni/jni/Android.mk到工程的jni目录下如图示:4.将上一步的LOCAL_MODULE和LOCAL_SRC_FILES两行后的hello-jni和hello-jni.c分别改成test-jni和test-jni.c(MODULE是模块的意思,而SRC_FILES是源文件的意思)5.以测试两个数相加为例,我们在MainActivity中添加一个函数privatestaticnativeadd(intx,inty);注意到我们不提供它的实现6.在MainActivity中添加静态初始化块static{ System.loadLibrary("test-jni");}它的目的是加载类时加载我们前面在Android.mk里写的MODULE,最后添加一点代码方便等会测试,你懂的!至此MainActivity.java的结果如图:7.接下来我们要提供C程序的实现,它的写法是Java约定好的,我们要用javah生成MainActivity中native方法对应的头文件,并根据这份头文件编写C源文件。利用cmd进入工程的bin/classes目录下,若发现classes目录为空,则说明工程还未build过,进Eclipsebuild一下即可,输入命令javahcom.example.testndk.MainActivity,如图所示:8.将刚才生成的com_example_testndk_MainActivity.h打开看,这便是Java约定好的头文件,如图所示:9.在工程的jni目录下建立一个文件,并编写代码,最终结果如图:10.用cmd进入工程的目录并输入命令ndk-build(前提是已经把ndk添加到了环境变量PATH中,这里的ndk-build其实就是ndk目录下的ndk-build.cmd),结果如图:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论