跨平台工具、组件和框架的汇总

本文主要是对跨平台工具、组件和框架的汇总,包括游戏引擎、编程语言、移动开发、网络通信、图形界面等等

  • Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

Qt支持下述平台:

MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008、win10

Unix/X11 -Linux、Sun Solaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台

Macintosh -Mac OS X

Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE、Symbian、Symbian^3、SymbianAnna、Symbian Belle、MeeGo、haiku-os。

  • wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI(图形用户界面)和其它工具。目前的2.x版本支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。一个支持OS/2的版本正在开发中。

  • Php****javascript,跨平台的脚本语言php和JavaScript开发的程序可以不经修改运行在,windows.linux,unix等多个操作系统上

  • Java,跨平台的静态语言Java(家喻户晓),包括使用Java开发的Swing 或者AWT界面

  • U3D

  • HTML5

  • Cocos2d-html5 : Cocos2D-HTML5 是基于HTML5 规范集的 Cocos2D 引擎分支,具有跨平台的能力和强大的性能,是Cocos2D 系列引擎随着互联网技术演进而产生的一个分支,该分支基于 HTML5 规范集,目标是可对游戏进行跨平台部署,Cocos2D-HTML5 采用MIT 开源协议,设计上保持 Cocos2D 家族的传统架构,并可联合Cocos2D-X JavaScript-binding 接口,最大程度地实现游戏代码在不同平台上的复用。

  • JSB :Cocos2D-X JavaScript-binding 是使用 SpiderMonkey 引擎实现 C++ 接口到JavaSciprt 的绑定方案,它可以使用 Js 快速开发游戏,以更简单的语法实现功能,并且能与Cocos2D-HTML5 相互兼容,使同一套代码,运行两个平台,这是相比使用 Lua 实现的一个明显优势。

  • Corona SDK ,(Lua语言开发)差不多与Cocos2d齐名的另一个优秀的框架,在早期Apple对第三方语言开发App还严格禁止的时候这个工具就已经出现了,我关注到这个框架的时候正逢Apple开始解禁第三方编程语言,那时候Corona还在做低价促销,可惜当时我没有购买 J。

同样的,看一眼Corona SDK的Showcase列表也会热血沸腾,这么多优秀的App,不过问题也还是有的:

没有集成开发环境,必须自己使用lua语言一行行写出一个App来。

Android的支持还非常不完善,Corona基本上也是在iOS做的比较成熟后再移植到Android上的,这个移植工作还处于非常初期的阶段,所以不要指望它在Android上的表现能有多好,能够正常运行就不错了。

最大的一个问题是使用Corona开发的应用必须提交到它的服务器上去编译生成App,当然你可以先在本地使用模拟器来开发,但最后的发布包必须在服务器上生成,为此你必须每年交349美元的授权费,这比苹果的年费可高多了。

  • PhoneGap宣传的是唯一一个同时支持6种移动平台的开发框架,这个没错,因为它的应用是基于Html的,本身就比较容易做到跨平台。但是 PhoneGap也为应用做了一层封装,把一些系统级的API封装为Javascript API提供给应用开发者,然后启动一个WebView来加载实际应用。

这样的做法使得PhoneGap的应用基本上限制于Web类,对于游戏应用就不大合适,当然网页类SNS游戏除外.

至于为什么要用PhoneGap而不是直接让玩家用Safari打开一个URL,原因基本上有从点:一是应用可能需要一些系统底层功能,比如想要获取地理位置信息,或者是照相机等等,另一种情况是做成一个独立APP可以放到Store上去收费,而URL的收费就不那么方便了。

  • Titanium,但是与PhoneGap类似,Titanium也是用于Web类的移动应用开发,但是Titanium似乎做的更进一步,把部分UI组件编译成了 Native Code,这样使得应用看起来更像是专为这个平台开发的。在功能实现上,Titianium内置了一个JS脚本引擎,这比PhoneGap直接使用 WebView也要更强大一些。

但是在StackOverFlow以及Titanium论坛上看到大量的抱怨,问题集中在文档的老旧以及BUG的修复太过于缓慢,还有在跨平台方面的支持不够完善,需要为不同平台编写大量的特定代码,这些问题对于应用开发者来说都是致命的。

  • Xamarin,(c#语言开发),在过去的一年里,Xamarin的势头可以说是颇为强劲,而其跨平台应用开发工具使用份额比也有着显著增加。通过Xamarin,开发者只需使用C#语言即可开发出iOS、Android、Mac及Windows原生App,不仅可以实现“一次编写,随处运行”,更可达到原生UI的跨平台效果。与基于HTML/JS/CSS的PhoneGap相比,Xamarin最大的优势是通过与系统的底层API通信并与系统原生UI直接交互,可以保证应用的高性能和UI流畅性。

Xamarin主要特性:
(1). 快速开发移动原生应用
(2). 程序代码共享
(3). 与Visual Studio整合
(4). 确保第一时间更新
(5). 原生的用户接口及效能

  • LiveCode是由RunRev公司推出的一款强大的图形化开发环境,不仅免费,还可以提供10倍的效率提升并减少90%的代码。其强大之处在于非常容易学习和使用,可以让一个不会编程的人在很短的时间内就能开发出原生的,能够运行于PC、服务器、移动设备上的应用程序。
    LiveCode拥有一个类似于VB的所见即所得的界面设计工具,用户可以使用拖拽的方式来实现应用界面的设计和布局,并通过一种类似于英语的自然脚本语言来编写应用功能,最后,通过LiveCode强大的部署工具来生成可运行于Mac、Windows、Linux、iOS、Android等各种平台上的应用程序。

  • Unity在全球开发者圈子里的受欢迎程度自不必多言,这样一款功能强大的跨平台游戏引擎,全面覆盖了Windows、Mac、iOS、Android、Windows Phone、BlackBerry、Xbox360、Wii等桌面、移动及掌机平台,支持JavaScript、C#、Boo三种脚本语言,拥有着大量的第三方插件和工具,可以帮助开发者极大地提升工作效率。
    容易上手、多语言编程、专业级的效果、傻瓜式的调试和编译、强大的扩展性,在跨平台、光影特效及模型渲染等各方面都有着非常不错的表现,让Unity无论在3D还是2D游戏开发中都是当之无愧的“最好用的游戏引擎之一”。

  • MoSync是一款开源的免费移动游戏开发引擎,易于移植,允许开发者使用C/C++、HTML5或JavaScript来为iOS、Android、WindowsPhone、Java Mobile、WindowsMobile等平台进行游戏应用开发。开发者可通过MoSync精简库调用本地设备API,并且,所开发的App还能使用本地的UI控件。
    通过MoSync精简库,开发者可以调用本地设备API,并且,所开发的App还能使用原生UI控件。此外,通过MoSyncIDE,开发者可以调用任何仿真器,包括本地平台的仿真器,及MoSync ReferenceEnvironment。

  • Delphi, 是Windows平台下著名的快速应用程序开发(Rapid ApplicationDevelopment,简称RAD)。通过Delphi XE2所带的FireMonkey平台,Delphi可以开发跨平台应用程序,并原生编译到Windows和Mac OS X平台。FireMonkey还可以为iPhone、iPod Touch和iPad创建iOS应用,并分发到苹果公司的应用商店。Delphi的FireMonkey应用程序拥有完全的硬件加速。

https://www.embarcadero.com/products/delphi

  • C++Builder (官网原话,感觉很强大)givesyou fast, powerful, modern C++; one compiler, one debugger, one IDE, fourplatforms; amazing frameworks; and lets you speed up your development, focus onyour code and bring your app to market faster than any other C++ toolchain. https://www.embarcadero.com/products/cbuilder

  • Socket.IO**:支持*WebSocket*协议、用于实时通信和跨平台的框架**

WebSocket是HTML5的一种新通信协议,它实现了浏览器与服务器之间的双向通讯。而Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。Socket.IO除了支持WebSocket通讯协议外,还支持许多种轮询(Polling)机制以及其它实时通信方式,并封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。Socket.IO实现的Polling通信机制包括AdobeFlash Socket、AJAX长轮询、AJAXmultipart streaming、持久Iframe、JSONP轮询等。Socket.IO能够根据浏览器对通讯机制的支持情况自动地选择最佳的方式来实现网络实时应用。当前,Socket.IO最新版本是于2015年1月19日发布的1.3.0版本,该版本增强了稳定性和提高了性能,并修复了大量Bug。还可以参考:http://www.cnblogs.com/mracale/p/5735985.htmlqinfo

  • Facebook**开源*ReactNative*以及相应的*IDE***Nuclide

近日,Facebook开源了能够使用JavaScript开发iOS和Android原生应用的React Native。目前,React Native已实现了对iOS平台的支持,并且Facebook已经使用React Native开发出了多个产品,如iOS平台下的聊天工具Groups等。同时,Facebook还为React Native开发了一款基于跨平台文本编辑器Atom的开源IDE:Nuclide。具体可以参考:Nuclide

  • GOOGLE INBOX**如何跨平台重用代码(用例)**

Google Inbox 覆盖 iOS, Android, Web 三个平台,它们使用的是同一个后台代码逻辑,只是前端的用户体验和平台相关特性的实现有所不同。Google自主开发了一套辅助工具将Android 版本的 Java 代码逻辑编译为Objective-C (针对 iOS 平台) 和JavaScript (针对 Web 浏览器)。 Java 到JavaScript 的编译由 Google Web Toolkit SDK 完成,Java 到Objective-C 的编译则由 J2ObjC (j2objc.org)来完成。

AvantX采用了MVVM架构,并且在ViewModel和View层之间添加视图抽象层,将XML编写的UI组件映射到对应平台的原生UI组件。在跨平台上,它需要首先编写Java代码,然后通过J2OBJC将代码转换为iOS平台的代码,另外开发团队还计划通过SharpenGWT支持Windows Phone和MobileWeb平台。具体可参考:Qinfo

  • Visual Studio Code**:来自微软的跨平台的代码编辑器**

微软宣布了VisualStudio家族新成员Visual Studio Code。这是一款免费的轻量级代码编辑工具,可以用于MacOS X、Linux和Windows平台,旨在为开发人员构建和调试Web及云应用程序提供一种新的选择。

  • 微信开源组件****Mars

简单说,就是一个网络库,这个网络库是跨平台的(跨平台就是能同时运行在windows,mac,iOS,android,wp上),虽然可以“简单说”,但是绝对不简单,这个库提供了网络的方方面面,包括日志,socket,长连接,短连接,网络诊断,网络连通性等等

  • 谷歌****ARC Beta让 Android应用可以运行在主流操作系统上

2014年9月,谷歌推出App Runtime for Chrome(ARC),旨在使Android应用可以运行在Chrome OS上。ARC的早期测试版本只移植了少数应用。但据Ars Technica报道,现在,谷歌正在推行两项重大举措:一是允许开发者通过新的Chrome应用打包器在ARC上运行他们的应用;二是允许ARC在任何安装了Chrome浏览器的桌面操作系统上运行。对谷歌而言,ARC和NaCL两个项目均非常重要,它们可能是谷歌推行“通用二进制(universal binary)”的法宝。“为Android编写应用,我们将使它运行在几乎所有流行的操作系统上(iOS除外)。”总有一天,这将成为谷歌说服开发人员为Android开发应用的响亮口号。

https://zh.wikipedia.org/zh-cn/Delphi

https://www.embarcadero.com/products/delphi

https://www.embarcadero.com/products/cbuilder

http://mobile.51cto.com/hot-273779_3.htm

http://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html

http://www.csdn.net/article/2014-02-24/2818511-cross-platform-developer-tools/2

http://arstechnica.com/information-technology/2014/11/how-google-inbox-shares-70-of-its-code-across-android-ios-and-the-web/

http://www.cnblogs.com/mracale/p/5735985.html

http://www.infoq.com/cn/news/2015/01/socket-io-websocket?utm_source=news_about_cross-plantform&utm_medium=link&utm_campaign=cross-plantform

http://socket.io/blog/socket-io-1-3-0/

http://www.infoq.com/cn/news/2016/11/weixin-mars?utm_source=news_about_cross-plantform&utm_medium=link&utm_campaign=cross-plantform

http://arstechnica.com/gadgets/2014/09/chrome-os-can-now-run-android-apps-no-porting-required/

http://www.infoq.com/cn/news/2015/04/google-arc-beta?utm_source=news_about_cross-plantform&utm_medium=link&utm_campaign=cross-plantform

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页