8

我正在使用它们的原生 SDK 分别为 Android 和 iOS 开发一个应用程序。但是,应用程序中有一些模块应该支持基本的 2D(也可以是 3D)能力,例如矢量图形的倾斜、缩放、旋转以及在简单纹理平面上的各种可选花哨效果。

我想将这个模块托管在某个视图中,并且它的代码将尽可能在 iOS 和 Android 平台之间共享。

我一直在网上寻找各种解决方案。

  1. 首先是 OpenGL,问题是我不熟悉 OpenGL 的编码,我无法理解我将使用 OpenGL 编写的代码是否可以在 2 个平台之间共享。似乎没有人真正尝试过使用 NDK 等来做到这一点。
  2. 有这样的平台

    一个。Clutter (http://www.clutter-project.org/) - 我找不到任何关于它在移动设备上使用的例子。

    湾。像 Unity3D 这样的平台,虽然我认为它们对我帮助不大,因为据我所知,整个应用程序必须在他们的平台上运行,而这不是我想要的。

那么,你们认为在 iOS 和 Android 之间共享 2d/3d 代码可行吗?如果是这样,您有什么方法可以推荐吗?

还是我应该使用每个设备的原生方法来处理 2d 或 3d 图形?

谢谢!

4

3 回答 3

7

Kivy:一种开源跨平台编程语言,用于为 Linux、Windows、MacOSX、Android 和 iOS 编写基于 OpenGL 的绘图、界面、视觉效果等任何东西。kivy.org

您可能会放弃对 Kivy 小部件使用 Android 或 iOS 原生小部件,并且您的应用程序将在所有平台上具有相同的 OpenGL 驱动界面。

编辑 2011 年 9 月 27 日下午 1 点:我做了更多的研究。总而言之,您应该自己查看这 4 个开源框架并决定哪个最适合您(我可以列出商业框架,但这些很容易找到):

  1. 基维(kivy.org
    • 惊人的 GUI 和小部件库。
  2. HaxeNME ( haxenme.org )
    • 用于制作 OpenGL 图形的非常好的 2D/3D API。
    • 惊人的跨平台支持。所有框架中最好的。
    • 不幸的是,虽然没有内置 GUI 或 Widget 库。
  3. Qt Quick QML ( qt-project.org )
    • 用于制作 OpenGL 图形的非常好的 2D/3D API。
    • 类似于 HTML,但用于 OpenGL。已经了解 HTML 和 JavaScript?QML(快速标记语言)包括文本字段、单选按钮、复选框等基本必需品,可以使用事件处理程序进行动画和控制。QML 应用程序中的动画、事件处理程序等是用 JavaScript 编写的;不同之处在于 JavaScript 被编译而不是解释。
    • Qt Quick 真的很棒;我个人的最爱。阅读 Qt Quick QML,然后尝试适用于 Android 的Animated Tiles应用程序,了解 Qt Quick 的潜力。Qt 的最新版本(即将推出)支持 iOS、Android 和 Blackberry 以及所有桌面操作系统。Windows Phone 是一项正在进行的工作,但考虑到 Qt Quick 已经支持 Windows 8 的 Metro 平台,它很快就会到来。Qt Quick 非常好,但它并不像 HaxeNME 那样在每个平台上都有效。
  4. MoSync ( mosync.com )
    • 一颗隐藏的宝石。这个框架需要更多的曝光。MoSync SDK 提供了一个跨平台的 OpenGL 框架、一个类似于 PhoneGap 的 HTML/JavaScript 框架、一个用于跨平台编写使用每个平台的本机 UI 小部件的应用程序的 NativeUI 框架,以及一个用于编写 C++ GUI 的 MAUI。
    • 如果您打算只编写纯 OpenGL,那么我至少建议您检查一下 MoSync,因为它提供了 OpenGL ES 1.0/2.0 的一对一实现。

此外,如果您的应用程序将基于表单(不像游戏那样具有动画效果),那么 PhoneGap 可能会满足您的需求。如果您使用 HTML5 的正确功能,您可以使应用程序感觉是原生的(不像那里的许多可怕和令人沮丧的例子)。如果您想尝试使用 PhoneGap 制作的“原生”应用,请尝试“ Go 2012 ”。Go 2012 应用程序证明,如果您正确使用 HTML5,您可以利用跨平台的硬件加速(iOS、Android、Blackberry 和 Windows Phone(我在所有平台上都测试过))。Go 2012 中的动画(滚动等)都是 CSS3 硬件加速动画。不要让 PhoneGap 展示中的大多数应用程序质量低劣欺骗了您!

于 2012-09-09T13:48:50.147 回答
2

使用 OpenGL ES 并用 C 编写代码。为 Android 编写一个 NDK 包装器。从理论上讲,您的开放式 GL C 代码应该可以在 2 个平台之间重用。

于 2012-03-12T20:11:55.890 回答
1

你有没有对小公司名称Adob ​​e 很感兴趣

尝试使用空气。

人们不欣赏 Adob​​e 所做的辛勤工作,但它是市场上最强大的跨平台!

IT支持:

  • 具有 DirectX 访问权限的 Windows 可在 3D 和 2D 中加速您的应用程序。
  • Linux
  • 具有OpenGL背景的Android(2.2及以上)
  • 带有 OpenGL 的 iOS
  • 黑莓

还有更多……如果您想在高水平上工作,请使用 Air!

于 2012-09-09T14:24:00.643 回答