史上最强NDK入门项目实战.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目标: 利用NDK生成SO库,使用SO库进行JNI调用,在Android sdcard创建文件并写入数据。 工具: NDK1.5 R1, android SDK1.5 R1, SDCARD, Eclipse , ADT 0.9, Eclipse Galileo for C/C++, Cygwin 1.5。 工具比较多,我是在Windows XP进行操作的,如果在Ubuntu或者其他的Linux系统下进行操作直接进入步骤2即可。请看步骤: 安装Cygwin 关于Cygwin的安装请自行百度或者google,因为网速原因,建议大家使用本地安装包进行下载:HYPERLINK /search?search=cygwinid=2/search?search=cygwinid=2 下载一个38.2M 即可,我用的就是这个版本。 安装NDK 进入正题安装NDK,首先打开cygwin,然后使用cd命令进入你的NDK根目录,(不会用linux命令??Google去),然后运行:build/host-setup.sh 如果出现以上的信息,说明安装正确,如果出现GCC为找到,请输入gcc命令查看,如果出现toolchain未找到的信息,请试着修改build/host-setup.sh文件第一行代码,将:#!/bin/sh 改成#!/bin/bash, 在Ubuntu上这个是需要修改的 安装成后,我们使用make命令试试编译自带的程序,输入make APP=hello-jni,hello-jni为apps下hello-jni文件夹的名称,这个命令会先找到apps\hello-jni下地Application.mk文件,然后找到source\samples\hello-jni这个目录,然后找到Android.mk这个文件中的配置信息进行编译。看图: 因为我的已经编译过了,使用使用 make APP=hello-jni -B进行重新编译 出现上面的信息,说明编译成功,so文件在apps/hello-jni/project/libs/armeabi文件夹下。 书写java native接口 下面我们进入实战的阶段,写代码。 建立一个android1.5的项目,NDK不支持1.5以下的版本 JNI.java的代码: JniTest.java的代码: 生成JNI 头文件 下面生成JNI头文件啦,使用javah命令,对JNI..java这个文件生成,别搞错啦! 使用cmd进入android项目的bin目录中,然后执行 javah -classpath . -jni cc.androidos.jni.JNI这个命令。别忘记包名!(^_^) 生成了一个cc_androidos_jni_JNI.h 打开看看: 里面都是c语言的头文件声明 书写C代码,写入数据 下面进行c语言代码的阶段,不会C的,可以去学习一下。 我这里使用eclipse for c/c++的进行开发,简单的代码大家可以使用记事本。 工程如下: cc_androidos_jni_JNI.h内容不变 cc_androidos_jni_JNI.c的内容: 在这里的代码会在运行的时候向sdcard写入androidos.cc.txt文件。然后写入aaaa数据。 编译SO文件 进行编译so文件: 在NDK的apps目录下面创建一个myjni文件夹,在myjni文件夹中创建一个Application.mk文件,文件的内容为: 在NDKsources目录下创建myjni文件夹,在myjni文件中创建一个Android.mk文件,然后将cc_androidos_jni_JNI.h和cc_androidos_jni_JNI.c文件copy进来: Android.mk中的内容如下: 里面内容的关键字含义请自行查看docs\OVERVIEW.TXT文件 编译: 加入到Android项目中进行运行 将apps\myjni\libs整个文件夹copy到android项目下: 运行android项目使用adb shell进行查看: 进入sdcard查看数据。 注意:sdcard具有system的权限,如果你的目录是root权限的,那么是不能写成功的,除非是真机越权,模拟器是不成功的,并且在Eclipse logcat下会有DEBUG信息出现。

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档