android - 将 JNI 用于 IOS 和 Android

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

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

更新:

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

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

最佳答案

因为我记得我当时的需求,我知道混合应用程序不是一个选项,而且 JNI 不用于制作跨平台应用程序,但最好的用途是通过 Android 的 native UNIX 脚本驱动硬件外围设备或运行 c++安卓上的代码。所以如果我们省略 PhoneGap , Appcelerator , Ionic等等,我们将面对目前已引起许多开发人员关注的几种跨平台技术。

Xamarin:

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

与许多其他框架不同,Xamarin 已被全局超过 140 万开发人员使用。得益于 Xamarin for Visual Studio,开发人员可以利用 Microsoft Visual Studio 的强大功能及其所有高级功能,包括代码完成、IntelliSense 以及在模拟器或设备上调试应用程序。 Xamarin Test Cloud 可以在云中的 2,000 台真实设备上即时测试应用程序。这是迄今为止处理 Android 生态系统严重 fragment 化和发布无错误应用程序的最佳方式,这些应用程序可以在没有任何重大问题的情况下运行。 但老实说,我并不喜欢第一次与 Xamarin 面对面会面。错误太多,速度和性能问题也很困扰。

React Native

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

我上面提到的那些并不是唯一的选择,但从现在开始它们是程序员之间使用最多的框架。但要注意 Flutter由 Google 在 Google IO 中公开宣布,也许它很快就会大受欢迎。

关于android - 将 JNI 用于 IOS 和 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38609733/

相关文章:

android - 无法在android上运行robotium单元测试应用程序

android listview 在顶部加载以前的帖子按钮

java - 在尝试一些 ProGuard 规则后,使用 ProGuard 会导致构建失败或强制关闭并显示空 UI

android - 将屏幕移动到特定位置

C++ 初学者使用序列和 float

c++ - 这个自初始化有效吗?

c++ - 基于 bool 模板参数的启用方法

ios - 无法将关系映射到restkit中的数组

ios - 核心数据和数组 swift 2.0

ios - 将照片上传到特定相册