gpt4 book ai didi

android - 原生 Android/iOS 开发与 Marmalade SDK

转载 作者:行者123 更新时间:2023-12-02 06:02:37 28 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。




Improve this question




我们公司即将在原生 Android/iPhone 开发和一些跨平台解决方案之间进行选择,特别是 Marmalade SDK(以前的 Airplay SDK)。

我们是一家计算机视觉公司,这意味着我们需要对相机设备进行低级别访问。此外,我们的应用程序在计算上是昂贵的,这意味着我们倾向于挤出每一点可用的处理能力。

我们的团队在 Objective-C 和 Java(或 C)方面有足够的经验来提供特定于平台的解决方案。然而,我们的主要重点始终是 C++,因此我们希望防止团队 split ,而是使用跨平台解决方案。

我们最大的担忧是,选择 Marmalade 要么会牺牲处理速度(主要关注点),要么会导致对相机帧缓冲区的低级访问复杂化,从而严重增加开发时间。

所以我的问题是,除了显而易见的优势之外,Marmalade SDK 对处理器密集型视频处理应用程序有哪些优势,但特别是局限性。

最佳答案

我已经在我的独立游戏公司使用 Marmalade/Airplay 近两年了。对我来说这是一个胜利,因为我只是一名程序员,我几乎可以使用 MS Dev Studio(这是我最喜欢的开发环境)在 Windows 中完成我的所有工作,因为它使我不必处理很多特定于平台的细节,尤其是各种开发工具,可能会占用我宁愿花在游戏内容上的大量时间。

速度不会成为果酱的问题。您的 C++ 代码 native 运行。此外,访问相机和其他功能应该不是什么大问题;它要么已经提供,要么可以使用扩展 SDK 添加,使用起来非常简单。

Marmalade 是一个成熟的产品,该公司在快速解决问题方面非常有帮助,即使对于免费使用该产品的独立开发人员也是如此。除了跨平台性之外,它还内置了一些不错的工具,例如内存泄漏跟踪器、日志记录系统、图形分析工具等。

我对果酱有一些缺点。

  • 尽管理论上任何 API 或第三方 SDK 都可以通过扩展系统访问,但实际上您需要的东西可能还不存在。例如,许多开发人员目前正在努力集成分析包 Flurry,这对某些人来说是一个挑战。这种情况与许多其他第三方 SDK 类似;如果您正在进行 Objective-C 开发,它们可能只是需要集成的几行代码,但通过 Marmalade 可能会更加困难。
  • 由于您操作的跨平台层,有些事情不太自然。我的一些例子是:
  • 我无法在 iOS 和 Android 上的所有屏幕尺寸中正确显示我的初始屏幕(应用程序启动屏幕)。在 Marmalade 应用程序本身的设备加载和 Marmalade 加载应用程序代码的步骤之间转换时,很难让它们在不出现闪烁、短暂的停电期或调整图像大小的情况下显示。
  • Marmalade 强加了一个非常简单的内存模型,您可以预先获得一个固定的堆,所有内存分配都是通过 Marmalade 完成的。从系统的角度来看,应用程序只拥有并保留了一大块(或几个大块)内存。这有一些优势,但我在将此模型与 iOS 模型平方时遇到了问题,例如,接收内存警告并预计会丢弃任何不必要的资源。似乎是“一刀切”最终实际上失去了一些关键功能的情况。
  • 您可以使用扩展管理器和其他一些方法来显示 native UI 元素,但集成大量 native 外观和感觉的 UI 可能是一个挑战。因此,如果您的应用程序类似于游戏,并且用户可以处理非标准按钮等,那很好,但是如果您预计需要重要的原生 UI,那就更难了。 [编辑:Marmalade 的最新版本添加了一个 native UI 框架,该框架允许您以通用方式指定标准 UI 元素,然后实现然后使用设备的适当小部件。我没用过这个,但看起来还算全面。]
  • 如果您遇到问题,通常不清楚是通用操作系统问题还是 Marmalade 问题,并且尝试寻求帮助可能会很孤独。例如,我最近在 iOS 和 Android 上为我的游戏添加了应用内购买。 IAP 具有挑战性,即使没有额外的 SDK 层,也有很多特殊情况需要处理。就我而言,我的应用程序因一个小问题而被 Apple 拒绝,当它处于拒绝状态时,我的应用程序内购买也处于“拒绝”状态(即使没有任何问题) IAP 本身;这只是 Apple 流程的一个怪癖)。当我尝试回归测试应用内购买功能时(当我提交此非应用内购买相关问题的修复程序时)​​,游戏实际上崩溃了,而不是获得适当的错误结果。我能够确定崩溃不在我的游戏代码中,所以它要么是操作系统(不太可能),要么是用于处理应用内购买回调的果酱中间层(结果是 [更新 11/28/2012:据报道,Marmalade 在最近的 SDK 更新中解决了这个问题])。

    因此,在这种情况下,您可以尝试使用 Stack Overflow 寻求帮助,但实际上没有人可以帮助您,因此您需要依靠 Marmalade 团队来回复您。正如我所说,他们在这方面做得很好,但它无法与来自全局普通 iOS 程序员社区的 Stack Overflow 上几乎即时的响应相媲美。所以我想说最后一个是我对使用像 Marmalade 这样的系统最关心的问题。它可以节省您的时间,而不必 catch 各种平台 SDK 的细节,但是当您遇到问题时,您将“任由”Marmalade 团队(或友好的 Marmalade 社区成员)返回你有一个答案。 (请记住,我是作为一个免费的独立开发者来写作的,他只是获得了问题解决的标准优先权。你可以付费以获得有保证的快速解决。)就我个人而言,很难一直回到我的制作人和说“我正在等待 Marmalade 家伙对这个问题的回答。”

    (问题 3 的另一个例子是,直到最近,某些 Android 设备上还存在音效延迟的问题。这是一个 Marmalade 问题,他们最终确实解决了这个问题,但花了一段时间,基本上你无能为力同时。)

  • 请记住(正如其他响应者指出的那样)即使没有 Marmalade,您仍然可以在 iOS 或 Android 上使用 C++ 编写大量代码库。

    尽管上面列出了一长串潜在问题,但我还是 Marmalade 的粉丝,我感谢公司免费为我提供的一切。当涉及到其他您永远不会打扰的其他平台时,该工具真的很出色,例如(对我而言)bada 或 PlayBook。您真的可以在舒适的 PC 和 Developer Studio 中部署到各种设备(或者如果您想让自己的生活更加艰难,则可以从带有 xcode 的 Mac 部署;)。他们拥有的模拟器工具很棒,而且只有少数实例需要我在设备上进行调试;一般来说,如果它在模拟器上工作,它就可以工作。 IdeaWorks 接受了一个巨大的挑战,他们在所有这些平台(即现有的所有重要设备,Windows Phone 除外)上处理所有这些功能(即基本上移动设备上提供的所有功能)做得很好7 因为它当前不允许 native 代码)。它只是带有一些警告。

    关于android - 原生 Android/iOS 开发与 Marmalade SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7555134/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com