- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AndroidStudio环境下的jni调用(NDK)的方法
注意:如果要在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。
运行!!成功!!
您可能关注的文档
- 2014年青岛市社区工作者招募公告.doc
- 2014年黑龙江省“三支一扶”计划招募公告.doc
- 2014德州宁津事业的单位招聘简章-46人.doc
- 2014排球比赛日程表.doc
- 2014接种证附件.doc
- 2014枣庄市直事业单位招聘261人简章.doc
- 2014济南章丘广播电视台公开招聘编外人员简章.doc
- 2014湘潭市高校毕业生“三支一扶”计划招募公告.doc
- 2014滨州无棣县招聘教师104名简章.doc
- 2014滨州沾化县事业单位招聘69人简章.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)