首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何开发多平台应用程序?

如何开发多平台应用程序?
EN

Stack Overflow用户
提问于 2010-11-19 06:28:32
回答 7查看 551关注 0票数 3

我想知道多平台应用程序是如何开发的。Microsoft Office for MAC/Windows,FireFox for MAC/Windows/Linux等应用程序。

如果他们必须为不同的平台编写代码,那么就很难管理,而且还涉及到许多其他的复杂性。

问:开发团队如何管理为多个平台进行开发的复杂性?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-11-19 07:05:11

Microsoft office不是多平台应用程序。如果你曾经使用过Mac版本,你就会知道。Office的上一个多平台版本是1998年声名狼藉的Office6.0。发生的事情是,用户抱怨外观和感觉,并谴责“移植”的心态。

Mac版的Office不仅是由一个不同的团队编写的,而且是由一个完全不同的部门编写的: Mac业务部门,也被称为MacBU。不同的部门主管,不同的经理,我相信也有不同的销售和营销人员。

这是一种方法。在Mac用户中也被称为“正确的方式”。

当然,并不是每个人都有微软那么大的规模,他们有能力创建一个完全不同的子公司来支持Mac用户(更不用说Linux用户)。更明智的做法是为图形用户界面使用跨平台库,比如wxWidgets、QT或GTK。毕竟,你的大部分核心C代码不会在平台上改变太多,只是像GUI和文件管理这样的专有东西。见鬼,您甚至可以坚持使用POSIX函数调用来实现跨平台的文件管理和联网。但请注意,Mac用户很有可能会讨厌最终的结果(就像发生在MS Office6.0上的事情一样)。

第三条路是中道。将通用的核心应用程序代码与专有的GUI内容分开(就可维护性而言,这无论如何都是一个好主意)。MVC设计模式是实现这一点的好方法。有一种方法(使用#define或不同的构建脚本/makefile)来切换MVC框架的View和Controller组件。这就是谷歌对Chrome所做的事情。Mac版本使用原生Mac图形,Windows/Linux版本使用一个名为Skia的图形引擎。Chrome的核心是WebKit和V8,两者都是跨平台的。

票数 6
EN

Stack Overflow用户

发布于 2010-11-19 06:34:34

解决这个问题的方法可能和多平台应用程序一样多。一般来说,它们可以归结为几种不同的策略:

  1. 使用一种具有可移植运行时的语言--例如,.NET,或者无数种不同的解释型脚本语言中的任何一种。
  2. 使用跨平台工具包(例如QT)来隐藏平台和C或C++等语言中的条件编译,以更改不同平台的代码库。这与#2类似,不同之处在于您实际上是在应用程序中构建自己的跨平台工具包。
票数 1
EN

Stack Overflow用户

发布于 2010-11-19 06:35:55

如果您谈论的是已编译的C++,那么您最终会得到一些条件定义,比如代码中一些地方的#IFDEF WIN32。当你编写跨平台代码时,你必须测试跨平台。像Hudson这样的构建系统可以在你签入时在所有平台上构建你的代码。

对于GUI的东西,使用像QT这样的好的跨平台库是非常有帮助的。它允许您以大致相同的方式编写gui代码,但在为其编译的任何系统上都保持原生感觉。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4220272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档