使用JNI for IOS和Android

时间:2016-07-27 09:59:25

标签: android c++ ios java-native-interface

是否建议使用JNI和C ++代码在IOS和Android之间建立共享库代码? 我之所以这样问,是因为我认为它不仅可以节省我们在两个平台上实现相同逻辑所浪费的大量时间,而且我们将拥有C ++核心的速度支持我们模块的逻辑过程。

更新:

我以另一种方式问我的问题:

是否建议为Android和IOS版本的类似应用程序的核心功能共享C ++库?或者将代码完全迁移到多平台语言会更好吗?

1 个答案:

答案 0 :(得分:0)

由于我记得当时的需求,我知道混合应用程序不是一个选项,JNI也不用于制作跨平台应用程序,但最好的用途是通过Android的原生UNIX脚本驱动硬件外围设备或运行c ++ Android上的代码。因此,如果我们省略PhoneGapAppceleratorIonic等,我们将面临多种跨平台技术,这些技术到目前为止吸引了许多开发人员的注意。

Xamarin:

该框架由创建Mono的人创建,Mono是符合Ecma标准且与.NET Framework兼容的工具集。 Xamarin为开发人员提供了一个C#代码库,可用于为所有主要移动操作系统生成本机应用程序。

与许多其他框架不同,Xamarin已被全球140多万开发人员使用。感谢Xamarin for Visual Studio,开发人员可以利用Microsoft Visual Studio的强大功能及其所有高级功能,包括代码完成,IntelliSense以及在模拟器或设备上调试应用程序。 Xamarin Test Cloud可以在云中的2,000个真实设备上即时测试应用程序。这是迄今为止处理Android生态系统繁重碎片的最佳方式,并发布了无任何重大问题的无错应用程序。 但说实话,我并不喜欢与Xamarin第一次面对面交流。有太多的错误,速度和性能问题也困扰着。

React Native

React Native由Facebook开发,并被Instagram,Airbnb,沃尔玛,特斯拉,百度和许多其他财富500强公司使用。它是Facebook的React JavaScript框架的开源版本。由于React Native使用与常规iOS和Android应用程序相同的UI构建块,因此无法区分React Native应用程序与使用Objective-C或Java构建的应用程序。更新源代码后,您可以立即在应用预览窗口中看到更改。如果您想要手动优化应用程序的某些部分,React Native可以将本机代码与使用Objective-C,Java或Swift编写的组件结合起来。

我上面提到的那些并不是唯一的选择,但从现在开始它们是程序员之间最常用的框架。但请注意,Google已在 Google IO 中公开宣布Flutter,并且很可能很快就会创建。