针对多个 iDevice 时资源管理的最佳实践?

Posted

技术标签:

【中文标题】针对多个 iDevice 时资源管理的最佳实践?【英文标题】:Best practices for resource management when targeting multiple iDevices? 【发布时间】:2011-05-17 10:30:57 【问题描述】:

考虑到 iDevices 的家族正在扩大,我想这是一个比我更多的人开始遇到的问题:

当您编写面向多个 iDevice 的应用时,您如何有效地管理资源,例如 3D 模型、纹理、全屏图像等?

基本上这个问题有两个部分:

1) 是否可以为同一应用程序提供单独的捆绑包到 AppStore,其中将为不同的设备提供不同的捆绑包(例如,与 iPhone 3GS 相比,用户为 iPad 下载的单独包) 或者是提供似乎在 AppStore 上流行的“Game X”和“Game X HD”的唯一方法?

2) 如果#1 的答案是否定的,那么最佳实践是什么?只保留所有资源的最高分辨率,并在运行时进行下采样或保留现成的(例如与 iPad、iPhone 和 iPhone 4 显示器匹配的全屏图像)?

非常欢迎任何意见和建议。我目前的方法是在设备之间保持 3D 和纹理等效,但为任何应该完全填满屏幕的东西保留现成的图像 - 但我觉得这是对带宽的极大浪费,尤其是在将其下载到 iPhone 3 时永远不会使用所有高分辨率图像。

提前谢谢你!

【问题讨论】:

【参考方案1】:

    您可以为“游戏”和“游戏高清”提交不同的申请。不过,Apple 对此很挑剔——iPad 版本必须“提供任何附加功能,以将其与仅 iPhone 的版本区分开来。如应用审查指南第 2.11 节所述”——否则 Apple 将拒绝它——就像他们对应用程序所做的那样我从谁的回复电子邮件中获取了报价:(

    在创建通用二进制文件时,您可以为资源文件添加前缀,例如:

ipad~picture.xib

iphone~picture.xib

仅在适用平台上运行时使用那些资源。因此,您可以使用“png”文件等来执行此操作,只需加载“picture.png” - 自动使用正确的文件。

【讨论】:

谢谢,我不希望有“高清”版本的游戏,因为我觉得如果你为 iPhone 购买它,你应该在 iPad 上免费获得它,而不是必须买两本。

以上是关于针对多个 iDevice 时资源管理的最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章

项目管理学习总结——项目管理最佳实践入门

是否有专门针对拥有大量受众的网站的可扩展性最佳实践?

lerna管理前端packages的最佳实践

使用 RemoteObject 和多个组件时的 Flex 4 最佳实践

安全的基于Web的应用程序的测试分片的最佳实践是什么?

来自 Vue 中不同组件的多个请求 - 最佳实践