博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio 一个简单的非传统Jni例子
阅读量:7114 次
发布时间:2019-06-28

本文共 621 字,大约阅读时间需要 2 分钟。

hot3.png

Jni是Java运行、调用C和C++代码的一个中间件,可以理解为是一个转接头。

我的C/C++水平仅限于大学时候的课程的算法例子,还真没拿来写过东西。

首先在Android Studio中安装NDK环境和CMake(让C/C++语言也能自动提示)

172357_bVqd_1462828.png

然后创建一个项目,记得把include C++ support勾上

172446_QHuQ_1462828.png

创建之后,会发现目录上多了cpp目录,和CMakeLists.txt文件(如果你以前弄过jni开发,可以发现不同,以前的jni目录变成了cpp,CMakeLists.txt的作用大概就是替代Android.mk这个文件的作用,传统jni和当前jni的区别,下面就不在复述了)

172803_pavB_1462828.png

然后直接运行项目,页面中间就会打印出来“hello from C++” 的字样了

然后我们再编写一个简单的例子,输入两个整数,输出最大的那个:

首先Java端的代码:

175908_YNyj_1462828.png

然后Jni端的代码:

175930_AszW_1462828.png

直接运行就能得出结果

180010_q0qH_1462828.png

如果只是简单的jni的hello world程序,基本上就是这样了!

题外话:用CMake来打包的话,比原来的jni方便快捷很多,原本的jni开发,需要创建native描述的方法,然后再生成.h文件,再然后创建.c文件,接着再编写android.mk文件,再接着使用terminal命令行生成so文件,最后引用so文件然后运行……麻烦得很

 

转载于:https://my.oschina.net/u/1462828/blog/1552937

你可能感兴趣的文章
最大子树和 树形dp
查看>>
英文换行
查看>>
天码记账软件使用心得
查看>>
关于在IE浏览器中使用控件问题
查看>>
缩减apk大小
查看>>
filter
查看>>
作业2 questions 1101220965张君杰
查看>>
64位读取注册表与32位的区别
查看>>
7. DateTime,TimeSpan
查看>>
一起谈.NET技术,C#中使用#region指令的一些想法
查看>>
iOS json数据解析
查看>>
php关于精准计算的模块 BCMath
查看>>
【Android的从零单排开发日记】——Android数据存储(上)
查看>>
subversion配置(ubuntu,debian)
查看>>
SAMBA 共享服务器搭建
查看>>
windows安装React Native开发运行环境
查看>>
sharepoint 中根据loginName获取displayName以及用户信息 .
查看>>
t - sql的阶梯:超越基础水平9:动态t - sql代码
查看>>
第十一周进度条
查看>>
1140 - How Many Zeroes?
查看>>