我们公司正在挑选原生Android / iPhone开发和一些跨平台解决scheme,特别是Marmalade SDK(原Airplay SDK)。
我们是一家计算机视觉公司,这意味着我们需要低级别的摄像头设备。 而且,我们的应用程序在计算上是昂贵的,这意味着我们倾向于挤出可用的每一点处理能力。
我们的团队在Objective-C和Java(或C)方面都有足够的经验来提供平台特定的解决scheme。 然而,我们的主要焦点始终是C ++,因此我们希望防止团队分裂,而采用跨平台的解决scheme。
我们最大的担忧是,selectMarmalade会牺牲处理速度(主要关注点),或者通过复杂化低级访问相机帧缓冲区来严重增加开发时间。
所以我的问题是,除了显而易见的优点之外,还有Marmalade SDK对处理器密集型video处理应用程序的特殊限制。
我已经在我的独立游戏公司使用了近两年的果酱/ Airplay。 对我来说这是一个胜利,因为我只是一个程序员,而且我可以使用MS Dev Studio(这是我目前最喜欢的开发环境)在Windows中做几乎所有的工作,因为它使我不必处理大量的特定于平台的细节,尤其是各种开发工具,可能会让我花费大量时间花在游戏内容上。
速度不会是果酱的问题。 你的C ++代码本身运行。 另外,访问相机和其他function应该不是什么大问题; 它已经提供或可以使用扩展SDK添加,这是非常简单的使用。
Marmalade是一款成熟的产品,即使对于那些免费使用这款产品的独立开发者来说,该公司也可以快速解决问题。 除了跨平台性之外,它还内置了一些很好的工具,如内存泄漏跟踪器,日志logging系统,graphics分析工具等等。
我在果酱方面遇到了一些不足之处。
请记住,即使没有Marmalade(正如其他响应者指出的那样),您仍然可以在iOS或Android上使用C ++的大部分代码。
尽pipe上面列出了很多潜在的问题,但我是Marmalade的粉丝,我很欣赏公司为我提供的所有免费服务。 当涉及到其他平台的时候,这个工具真的很有用,比如(对于我)bada或PlayBook。 如果你想使自己的生活变得更加艰难,你真的可以从舒适的PC和开发人员工作室(或者使用xcode的Mac)部署到各种各样的设备。 他们拥有的模拟器工具非常棒,只有less量的实例需要在设备本身上进行debugging。 一般来说,如果它在模拟器上工作,它只是工作。 IdeaWorks面临着巨大的挑战,他们在所有这些平台上(即所有重要的设备,除了Windows Phone之外,都在为所有这些function(即,基本上所有在移动设备上提供的function) 7,因为它目前不允许本地代码)。 它只是有一些注意事项。
作为Marmalade的首席技术官,我是有偏见的,但是如果你的关键要求是(1)摄像头访问和(2)“挤出每一点点处理能力”的能力,那么Marmalade是一个不错的select。
Marmalade将您的C / C ++编译为本地ARM(或x86)指令…不需要转码,不需要虚拟机。 现有的C / C ++代码非常简单,支持几乎所有的C / C ++标准库等等。您可以在项目中使用ASM代码。 此外,无论您在哪个平台上部署,都可以在Windows或Mac上进行所有开发(是的,您甚至可以纯粹在Windws上编译/testing/部署到iOS)。
据我可以告诉你从Android开发:从Android本身的相机API似乎是一个小错误(例如:在2.1之前,没有解决scheme让相机显示在肖像模式没有扰乱图像)。 另外一个抽象层可能会更好(在可访问性,function等方面),甚至更糟糕。 它为舒适做了什么:它窃取资源,这可能是您自己的应用程序所需要的。
果酱提供了一个很好的原生扩展框架
这最终意味着你可以直接跳转到任何特定function的本地实现。 您仍然保留主应用程序跨平台开发的核心优势。
同样在android上,因为marmalade使用android NDK,你的c ++代码处理数据将会比相应的android Java代码运行得更快。
我使用Marmalade制作游戏以及扩展和原生代码的速度让我非常有信心能够提供至less “原生”的应用程序。
我会使用MoSync Android / iOS,但我会说,因为我在MoSync工作。
但平心而论,我更喜欢MoSync Camera API。
如果你真的想挤出所有的处理能力,你应该使用ASM。
/托尼
果酱没有坏,我在2013年使用它。一些错误,一些烦恼(固定内存池),但总体来说不是一个糟糕的经历。
唯一真正令人失望的是缺乏对Linux的支持。 我看不出Marmalade家伙如何支持像Blackberry这样的晦涩难懂的平台,而不是Linux。 这个不成立。 也许这会随着Steam OS(一个基于Linux的,以游戏为中心的平台)的成熟而改变,尽pipeSteam操作系统现在并没有在其他操作系统带来的东西上带来很多东西。
以上就是android开发分享原生Android / iOS开发vs Marmalade SDK相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/513009.html