OSG for Android新手教程系列(四)——JNI与NDK的使用

本文是OSG for Android教程系列的第四篇,详细讲解了如何在Android项目中使用JNI和NDK来调用C++的OSG库。介绍了Java层的native方法声明、C/C++层的函数实现以及NDK编译C/C++文件生成.so库的过程。
摘要由CSDN通过智能技术生成

  上一篇教程中,我针对一个最简单的HelloWorld示例进行了详细讲解,从宏观上讲明了OSG for Android项目的开发方法。这里给出链接:http://blog.csdn.net/dongzhong1990/article/details/51736868

  如果阅读过上一篇教程,也许会对一些细节上的问题还不是很清楚。例如,示例中osgNativeLib.cpp中那些奇怪命名方法的函数是怎样产生的,为什么要这样写。本篇教程将对该问题进行详细解答。

--------------------------------------------------

  众所周知,在开发Android项目时,我们通常使用的是Java语言。然而OSG却是一个基于C++平台的三维渲染引擎。于是,在这里就有了一个小小的冲突。那么,为了能够在Android平台上使用基于C++的OSG,我们应该怎么做呢?通常情况下,我们也许会产生以下两种想法:第一,将OSG重新用Java编写一遍;第二,通过某些方法,使Java可以调用C++;第三,算了,不用Java了。

  我们分别看看这三种方法。第一种方法,如果是对于一些小型的框架引擎,这也不失为一种办法。但是很多情况下,框架引擎代码量都是比较庞大的,如果对每个框架引擎都重新更换语言编写,那么工作量会十分巨大,而且很容易出现错误。第二种方法,简单可行高效,通过这种方法可以快速地将不同语言编写的框架引擎融合到同一个项目中,同时这种方法也是现阶段对不同平台融合的首选方法。第三种方法,算了,不考虑。

  那么,现在我们所要考虑的就是如何使Java与C++之间进行沟通。正如前几篇教程所提到的那样,在Java程序中使用C/C++需要使用JNI,即Java Native Interface。而Google公司又为Android开发提供了NDK,即Native Development Kit,作为Android项目中使用C/C++的工具集。本篇教程将对JNI和NDK的使用方式进行详细讲解,使学习者能够更加深入的理解Android调用OSG函数的内部机制。

  本文所用的NDK为r10d版本,下载链接:http://developer.android.com/tools/sdk/ndk/index.html。如果链接不上,可以百度一下,会有不少网盘中分享安装包。

  与上篇教程一样,本文默认项目已经配置完毕。具体配置方式,参考本系列教程(二),链接:http://blog.cs

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董小虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值