【问题标题】:Comparison mobile devices as dev. platforms iPhone, Blackberry Windows Mobile将移动设备作为开发者进行比较。平台 iPhone、黑莓 Windows Mobile
【发布时间】:2011-01-08 02:57:37
【问题描述】:

我试图比较上述三个平台,以及在编程时需要考虑哪些因素,以便创建可以在所有三个平台上运行的某种代码库。

这是我为 iPhone 收集的 - 如果其他人可以为其他两个写类似的东西,那就太好了。

  1. 任何时候都只能运行一个应用程序 给定的时间。也就是说,这就是为什么 SQLLite 数据库作为文件加载 进入应用程序而不是作为 传统上具有某种 要连接的服务器。
  2. 只有一个固定大小的窗口 480x320 像素
  3. 在沙盒中运行,当应用程序处于 已部署沙箱已创建 “围绕”应用程序,应用程序只能 从其中读/写文件 区域。也可以低级访问 手机受到限制。
  4. 因为程序可以在 任何时候(见第 1 点)这需要 设计时要考虑 应用程序,该应用程序必须在任何时候 能够将其当前状态写入 磁盘,以便稍后恢复。如果 这需要超过五秒钟 应用程序将被中止。
  5. 128MB RAM,大约是 64MB 的一半 可用于应用程序。有 典型的 4GB 存储空间(取决于 模型),没有虚拟内存,如果内存 正在运行的应用程序可能是 中止。

编辑:为了清楚起见,我不关注哪个平台/操作系统最适合开发人员,我只是对规范感兴趣。比较以了解如果一个人拥有三个目标平台并为每个平台使用本地语言(不是 Web 应用程序)会发生什么,内存和其他注意事项是什么。

编辑:删除语言,因为它假定将使用平台的本地语言。

【问题讨论】:

  • 投票结束,因为这不是一个真正的问题。

标签: iphone windows-mobile blackberry


【解决方案1】:

对于 Windows Mobile 我想添加:

  • 与 iPhone 相比,Windows Mobile 允许同时运行多个应用程序。
  • 它具有可变的屏幕尺寸和不同的 SDK ( 适用于带有触摸屏的“Windows Phones”(智能手机)的 Windows Mobile Professional“Windows Phones”的 Windows Mobile 标准,带有常规屏幕
  • 一般使用的框架是.Net Compact Framework,除了有些人还喜欢open-net这个开源框架。
  • 与 iPhone 不同,Windows Mobile 没有私有 api,这意味着它为开发人员提供了更多功能。
  • 程序允许的内存大小为 32 mb
  • 尽管 windows mobile 本身会提示您避免安装来自未知发行商的应用程序,但您不需要开发人员许可证即可在 windows mobile 上开发和发布应用程序。(这更有趣,不像在 iPhone 中您需要拥有许可证,而您只想在您的设备上调试您的应用程序(不适用于越狱设备。))

关于 windows mobile 的一些坏处,请参阅link

谢谢,

马杜普

【讨论】:

  • 由于发帖人同时针对所有平台,他不需要知道 Windows Mobile 在哪些方面比 iPhone 限制更少,他需要知道它在哪些方面限制更大。屏幕是相关的 - 不能在应用程序中假设屏幕尺寸。内存也是。 WinMo 也不可能没有私有 API。
  • 由于对 WM 的应用程序分发没有限制,因此在您考虑 iPhone 开发的方式中基本上没有私有 API。您可能不想调用未发布的 API,因为您的应用程序更脆弱,但没有什么能阻止您这样做并分发应用程序。当然,这个回复只列举了较少的分发限制,忽略了在移动平台上开发的较大限制,而没有 iPhone 拥有的大量 CoreData 和 CoreAnimation 等库......
  • 欢迎提供所有信息,windows mobile 有虚拟内存吗?还是 32Mb 是固定大小。我不追求哪个平台最好
【解决方案2】:

我觉得最终列表几乎没有用,因为收集到的所有数据点的内容都会与您的最后一个有很大不同。对您的 iPhone 列表的一些更正:

1) 诸如 SQLLite 之类的本地数据库“传统上”也不是作为服务器在其他移动平台上实现的(它们也使用各种面向文件的数据库)。

2) 很快,单一的固定大小假设很可能不准确。

3) 应用在沙箱中,但可以通过 API 调用写入沙箱之外的某些区域(例如,照片库或通讯录)。

5) 这个数字在 3G 和 3G/2G/Touch 之间变化(旧型号的内存只有一半)

6) Monotouch 是可用的,但我不确定基于 Java 的 iPhone 开发有什么进展。还有一个来自 Adob​​e 的 Flash 编译器。

基本上,如果您考虑跨平台,内存/屏幕大小/系统访问/常用数据库都会有所不同 - 所以整个事情归结为语言和库。这就是跨平台方法真正存在问题的地方,因为每个系统的库都非常不同......最后你可能能够跨平台二进制文件共享数据结构和一些纯数据处理代码,每个系统的 GUI 代码都非常不同。但是限制每个客户的发展真的值得吗?

顺便说一句,Blackberry 是基于 Java 的,因此它为这种尝试带来了另一个障碍。

如果您真的想了解跨平台的最终结果,请查看 Waze 的代码库 - 一个跨平台的开源导航应用程序:

http://www.waze.com/wiki/index.php/Source_code

iPhone 和 Windows Mobile 的客户端源就在那里。

【讨论】:

  • 2) 你的意思是如果桌子上的谣言是真的?
  • 一般来说,我只是想弄清楚所有三个平台的液晶显示器,因为它会影响架构,这就是我提出问题的原因。我知道这是一项复杂的任务,并且考虑到不同的语言和操作系统,它不是很简单。
  • 问题是,您列出的设备之间确实没有 LCD。 Windows Mobile 和 iPhone 之间几乎没有区别,只是因为 MonoTouch……基本上我的立场一直是,你不为任何给定平台编写最好的应用程序,从而改变自己。或者,为什么您此时不为桌面编写 Java 应用程序以便可以在 Mac 和 PC 上运行?
  • imo 可以使应用程序的某个部分更通用,并拥有一个更原生的部分,例如 GUI/OS,然后它有助于了解所有三个至少有多少内存可用或其他一些规格。这就是我对LCD的意思。不是语言,也许我不应该在问题中提到清楚的语言。
  • 但我的意思是,没有足够的你可以保持一般,使努力值得。即使数据模型相同,创建对象需要付出多少努力?一小时?除非您想使用某种跨平台库,否则您无法保证尝试跨平台制作兼容的二进制文件所需的努力水平 - 然后您总是在您可以实际访问的系统框架上缩短自己。
【解决方案3】:

有一篇关于 Codeproject 的优秀文章将对您的问题有所帮助。前往here 阅读。

希望这会有所帮助, 最好的祝福, 汤姆。

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 2010-11-10
    • 1970-01-01
    • 2010-10-02
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    相关资源
    最近更新 更多