AndroidStudio环境下的jni调用(NDK)的方法 - 图文
更新时间:2023-12-02 06:36:01 阅读量: 教育文库 文档下载
注意:如果要在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
javah是生成jni头文件的命令;
-d是生成的头文件存放的目录(这个目录如果事先没有建立,那么运行成功会自动新建);
4.2、进入到使用cd命令进入HelloNDK.java的文件夹main。
cd
错误: 找不到 '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。
10、运行!!成功!!
正在阅读:
AndroidStudio环境下的jni调用(NDK)的方法 - 图文12-02
流体输配管网 - 习题课1+210-25
研究生学位课——高等量子力学教学大纲03-20
重庆南开中学高2017级高一(上)期末考试化学试题及其答案 - 图06-04
采购部工作总结报告10-08
造价员管理基础知识讲义及精练 - 图文05-03
消费心理学(动科系)第三章09-03
英派斯补充协议书05-30
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- AndroidStudio
- 调用
- 图文
- 环境
- 方法
- jni
- NDK
- 2018年中国女式长款大衣行业供需趋势及投资风险研究报告目录
- 青春不负才能不负青春作文正式版
- 四年级上册数学第一单元练习题2
- 北师大版一年级数学上册第五单元测试卷 - 图文
- 石室佳兴高三地理资源开发对区域可持续发展 - 图文
- 高中语文第3单元第10课谈中国诗(第1课时)针对性训练新人教版必修5
- 中国二氨基二苯醚行业市场前景分析预测年度报告(目录) - 图文
- 2019-2020人教新部编版语文四年级上册-5 一个豆荚里的五粒豆创新教案
- 汽车检测与维修毕业综合实践环节任务书
- 山东省师大附中2018届高三下学期第八次模拟考试 文综-含答案 师生通用
- 浅谈包豪斯设计教育体系及其影响-最新教育资料
- 《散文诗两首》学案
- 一年级数学上册第8单元《20以内的加法》(8加几)教学建议(新版)冀教版完美版
- 八年级数学上册 6.2 中位数与众数 平均数、众数和中位数的区分和应用素材(新版)北师大版
- 五年级上册语文试题-期中试卷(江苏扬州2018年真卷) 苏教版
- 初一历史试题精选2018年北师大版七年级历史期中考试题(附答案)
- 加盟连锁合同书范本 - 图文
- 关于表彰2009年度全县档案工作先进集体和先进个人的决定
- 最新-入党积极分子学习2019年两会精神思想汇报 精品
- 军事理论(2018超星尔雅同济版)章节测验题参考答案(第2章 国防概述)