网站大量收购独家精品文档,联系QQ:2885784924

Androidtudio环境下的jni调用(NDK)的方法.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注意:如果要在AndroidStudio里面使用terminal(终端)的话,必须先配置环境变量。AS中的terminal其实和windows带的中断是一样的,只不过内嵌到了AS上。 1、配置java环境变量(可以百度,配置完成必须重启terminal才能运行javac、javah等命令)。 2、写好如下HelloNDK.java文件(这个文件演示了jni的调用) 3、然后执行在AndroidStudio中执行Build--Make Project,生成class文件。 生成class文件放在了 Project的目录\ndk_demo_2\build\intermediates\classes\debug\com\lcj\ndk_demo_2中,并且是隐藏的。(不查看这个文件也没关系,当然前提是执行没有错误) 4、生成h文件 4.1在AS的terminal输入javah,然后回车。----------------------------------------这一步可以省略,我这里将javah怎么使用。 出现如下帮助文档。 这里出现了javah的使用帮助。 我们要用的命令是javah -d dir -classpath path javah是生成jni头文件的命令; -d是生成的头文件存放的目录(这个目录如果事先没有建立,那么运行成功会自动新建); dir是前面-d选项的目录名称,如果目录是src的话,不要写成src!!,直接写src就好; -classpath从中加载类的路径命令; path是需要生成头文件的class文件的目录。 4.2、进入到使用cd命令进入HelloNDK.java的文件夹main。 cd dir 如下的第一行。 如果不进入这个目录等会运行javah的时候会提示: 错误: 找不到 com.lcj.ndk_demo_2.HelloNDK 的类文件。 4.3、运行javah命令:上图第二行。 javah -d jni -classpath ..\..\build\intermediates\classes\debug com.lcj.ndk_demo_2.HelloNDK 如上图第二行。只要什么错误都不提示说明运行成功!! 这时就可以去查看main目录下是不是多了一个jni文件夹,里面就是生成的头文件了。 jni 是生成的头文件需要存放的文件夹(一般取名jni才对) ..\..\build\intermediates\classes\debug 是class所在目录(Build—Make Project生成的class文件都在这里,这是一个相对路径) com.lcj.ndk_demo_2.HelloNDK 是class文件的文件名(根据之前的java文件生成的) 使用jni作为输出目录后的截图如下: 头文件出现了!! 下图是头文件内容。里面有一个函数声明,它是自动生成的,名字不要改动!! 5、编写C源文件com_lcj_ndk_demo_2_HelloNDK.c。注意这里的函数名称一定要从之前生成的h文件里面复制过来,以免出错。 6、配置build.gradle文件,加入下图中的语句。 moduleName 就是将来生成的so文件名称的一部分,修改它可以修改so的文件名。 ldLibs 目前不知道是什么 abiFilters 是生成os文件的平台,这里选择了3种。 7、配置ndk路径。打开local.properties,加入NDK的路径(ndk需要单独下载,我在网上下载ndk后放在了和sdk相同的路径下) 8、生成os文件。 8.1、Build-Make Project生成so文件,这时如果只有一个c文件,就会报错,这是一个bug,解决办法很简单,随便新建一个空的c文件就行了。图中bugUtil.c就是我建的空文件。 再次运行,没有出错。 8.2、查看 工程目录\ndk_demo_2\build\intermediates\ndk\debug\lib目录里面各有一个os文件 9、调用jni。 运行!!成功!!

文档评论(0)

pao0969363mou8 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档