手机跨平台方案介绍

  引述

  现在手机平台种类繁多,主流平台有Symbian、IOS、Android、WM6.5、WP7以及中国山寨机所普遍使用的MTK,展讯, MSTAR。

  作为开发者来说,特别是学生,要做一款软件支持如上平台,实在是一件遥不可及的事情。

  不同种类的应用,成功的条件是不同的。有些应用是以质取胜的,有些应用则在质的同时必须要有足够的用户群(如LBS应用相关),也就是量的优势。因此,不同应用对于多平台支持的需求是有差异的,这也是本文探讨如何跨平台开发的价值所在。

  跨平台开发有许多种方式,在文献中可查到有下列方式。


方案名称


简述


特点


性能


方案开发难度


使用难度


使用成本


案例


动态脚本


使用脚本语言进行动态载入或对特定的数据格式进行解析,类似于浏览器工作方式:

wml

javascript

xml表单

私有数据格式


开发快,灵活配置。性能差,表现形式有限


30


40


30


40


msn/fetion/qq 内置wap浏览器使用服务器把网页转换成wml,客户端进行解析展示。

移动MM使用xml进行界面定义

微软oneapp 使用 java script进行服务武器编写,客户端进行展示和交互

很多电子阅读软件都使用自有的格式在服务器端进行编写,客户端进行展示


私有跨平台


公司内部使用,进行很"粗略"的封装


使用范围受限


90


120


70


60


不公开的内部引擎,比如Gameloft的游戏引擎

很多公司的UI引擎

针对特殊的领域,比如Poc(按键通话对讲机)引擎


抽象中间件


有自己的编程标准,完善的文档和规范化的接口


学习成本高,使用平台所限,在不损失性能得前提下解决特定的问题


85


300


100~150


50


Nokia的Qt

沃勤的 mtk中间件

Brew 开发接口


虚拟机


使用字节码解析执行


开发容易,跨平台性好,但性能差,扩展难,维护成本高


50


有开源方案,自己开发成本很高


60


60


标准的j2me虚拟机

开源的llvm, eve, flash最新版使用llvm

私有的,掌上明珠自己开发了虚拟机用于开发游戏


代码转换


使用java转换成c代码,再编译执行


使用标准j2me接口开发,一份代码,好维护,但目前还没官方公开版


84


300


60


70


棱镜方案

Fetion 3.0

正在开发的联通应用商店

目前都还是公司内部使用

  备注:

  性能:我们以纯本地代码开发出来的程序性能为100做基数,其他使用相对百分比。

  难度:我们以纯本地代码开发的难度100做基数,其他使用相对百分比。

  棱镜方案由北京创世互动总经理张盛毅介绍,目前仅在北京创世互动公司内部使用,期待尽快与众多开发者见面。

  (1)

  我们可以看到,使用动态脚本、虚拟机及代码转换等方式是比较廉价的跨平台开发方式。接下来本文将会介绍几种跨平台方式下进行跨平台开发的方案。

  动态脚本

  现在比较火的使用动态脚本的跨平台开发方案大部分是即基于HTML5的。事实上即对传统浏览器的一种扩展,提供了离线浏览功能、对本地设备的访问功能等。但由于大部分编码是使用脚本语言,因此性能较低。如果做图片处理等应用,则缺少相应成熟库支持。

  RhoMobile - one codebase, every
smartphone

  基于HTML5及Ruby构建跨平台应用的工具,号称支持iPhone, Windows Mobile,
RIM, Symbian and Android。同时提供开发、同步、源码管理等全方位产品。具有IDE。

  然而,当仔细看开发文档的时候,发现对Symbian提都不提了,实在是一件让我的N95伤心的事情(http://docs.rhomobile.com/rhodes/introduction)。况且作者对Ruby了解甚少,也就没有进一步尝试。

  Appcelerator

  Appcelerator的Titanium是使用HTML、JavaScript及CSS等Web技术构建移动(iPhone、Android及iPad)与桌面(Windows、OS X及Linux)应用的平台。此外,还可以使用Python、PHP及Ruby构建Titanium的桌面应用。这些应用还可以交叉编译到所有的目标平台上。 

  (2)

  PhoneGap

  PhoneGap是一款开源的手机应用开发平台,它仅仅只用HTML和JavaScript语言就可以制作出能在多个移动设备上运行的应用。PhoneGap将移动设备本身提供的复杂的API进行了抽象和简化,提供了一系列丰富的API供开发者调用,只要你会HTML和Javascript或者Java语言,就可以利用PhoneGap提供的API去调用各种功能,PhoneGap就能让你可以制作出在各种手机平台上运行的应用,这对移动应用开发者来说无疑是个福音。

   (3)

  这个对Symbian的支持也很不好,官方的Symbian demo在我的N95上无法跑。

  代码转换

  由于代码转换直接生成目标平台的应用程序,因此效率比较高。然而如引文中提到的,大部分项目都是私有的。

  MoSync

  MoSync是一个开源的C/C++的集成开发环境。可以简化移动开发程序的开发难度,并且能够大大提高移动程序开发人员的工作效率。其主要优点:开源,跨平台android, j2me, Symbian等,易于移植。

   (4)

  官方的DEMO很成功的在我的手机上跑了起来,还有几个是OPENGL的。不过极其不爽的是,对中文的支持性很糟糕。MoSync所提供的UI系统压根没考虑对中文的支持,有国人问如何显示中文,MoSync的回复让我感到很雷,要制作一个一个byte的中文字符字体。难道他们以为汉字是拼音么。

  不过MoSync正在做native ui的相关工作,不过,恐怕还需要相当长的时间来发展。

  虚拟机

  我认为虚拟机其实是很尴尬的,对多平台的支持远不如上文提到的几个强悍,编码过程中要考虑的也比较多。

  J2ME

  iPhone压根不支持。Android则自己搞了套,估计合理利用设计模式,改动也不需要太大。Symbian还是对这个很友好的,WM6.5要装虚拟机,WP7未知。

  在编码过程中,由于J2ME也没有为多种设备提供一个十分统一的访问方式(如加速度传感器等),所以需要考虑的事情也比较多。

  Silverlight、MonoDroid、 MonoTouch

  这个就压根谈不上跨平台了,UI都是要各自写一套,而且后两者也特别臃肿。

  值得一提的是,有个基于C#的游戏引擎delta engine,可以在PC、WP7、Android及iPhone上跑。

  Skyengine

  这里介绍一下这个,其实也是最近斯凯的老大宋涛来我们天大才听说的。之前对山寨机一直没有关注过。

  斯凯SDK处理了MTK、展讯、MSTAR平台的差异性,封装了统一、易用、功能强大的API。
功能涵盖了图形文字处理,声音,文件IO,
网络通信等;同时完美支持THUMB指令,插件机制,
图形加速等高级特性。
斯凯SDK将使你轻松开发出优秀的OTA应用。

  开完会后过去聊,说已经放出Android的来了,但是后来在斯凯的网站找也没找到。估计还在内部测试,不过如果要做山寨机的平台的话,可能用这个会速度好多。

  小结

  扯这么多,最后也没扯出个真正的Write once,run anywhere的巨无霸。开发过程中,应该有机的选择几种跨平台技术,覆盖自己所关注的平台。

  我们的团队近期在做一些个项目,也还在讨论跨平台的方案。我们还是比较关注手机程序的Native特性的。譬如Symbian用户更喜欢sis,而不喜欢jar。

  总而言之,跨平台远没想象中的那样靠谱。

  引用作品

  1. 一尘. 手机跨平台开发五大方案对比. 博客园. [链接]
http://www.cnblogs.com/wmj/archive/2010/11/29/1891086.html.

  2. InfoQ.
Aptana被Appcelerator收购. [链接]
http://www.infoq.com/cn/news/2011/01/aptana-appcelerator.

  3. 跨平台开发:初探PhoneGap移动开发框架. [链接] http://mobile.51cto.com/android-229213.htm.

  4. liuhuigx.
MoSync: 跨多平台android, j2me,
Symbian, wm的开发工具。. [链接] http://www.iteye.com/topic/600808.

  作者:马昊伯

  出处:http://loning.cnblogs.com/

  个人网站: http://loning.wiisio.com/

  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。

时间: 2024-10-26 18:04:34

手机跨平台方案介绍的相关文章

手机跨平台方案介“.NET研究”绍

引述 现在手机平台种类繁多,主流平台有Symbian.IOS.Android.WM6.5.WP7以及中国山寨机所普遍使用的MTK,展讯, MSTAR. 作为开发者来说,特别是学生,要做一款软件支持如上平台,实在是一件遥不可及的事情. 不同种类的应用,成功的条件是不同的.有些应用是以质取胜的,有些应用则在质的同时必须要有足够的用户群(如LBS应用相关),也就是量的优势.因此,不同应用对于多平台支持的需求是有差异的,这也是本文探讨如何跨平台开发的价值所在. 跨平台开发有许多种方式,在文献中可查到有下

详细版的《玛雅手机网计划书》:市场分析+网站规划+推广方式+手机网店介绍

中介交易 SEO诊断 淘宝客 云主机 技术大厅 玛雅手机网我打印了大约十六七页,由于公司未批准我的方案,所以将计划书的全部公布于此,版权所有,请署名龙伊 QQ:2826119 1,网上手机市场分析和优势弊端 据中国互联网信息中心cnnic统计,截止到2007年7月,我们网民总人数已达1.62亿.只是统计,估计实际会更多.网上购物已经被众多的网民接受.网下手机的需求量很多吧.随着我们网民的大幅度增加,具有一定消费水平的网民也会相对增多.其实,手机网站,就是将在手机实体店铺中的产品展示到网上.网上有

选手机要看“芯” 手机主流处理器介绍

手机主流处理器介绍大家都知道,智能手机性能的高低,很大程度上取决于其内部搭载的处理器的性能.目前主流的手机处理器厂商主要有高通.德州仪器.三星. 英伟达等.这些处理器厂商的历史背景各不相同,其性能特点也有很大的区别.如果我们在选购手机的时候,对其搭载的处理器有一定了解的话,将有助于我们购买 到称心如意的手机,也可以避免某些奸商的恶意炒作和虚假宣传.今天,笔者为大家简单介绍一下各品牌处理器,希望对大家有所帮助.

新浪博客优化方案介绍

如今第三方的博客越来越多,像新浪博客.天涯博客.网易博客.搜狐博客等等,但从受众的角度来说,还是数新浪博客最多,而且新浪在国内也是最人性化.最成熟的博客.对于做SEO的人来说,应该没有人不知道新浪博客的吧,毕竟这么好的外链平台.今天我们来为大家讲解下新浪博客的优化方法. 1.新浪博客的建立.首先得注册一个新浪博客,注册成功后,你就拥有一个新浪博客了,当然并不是拿着这个新浪博客就开始发一些内容到博客上,我们得先设置好博客的路径,可能很多人不知道如何去设置路径,因为我看很多人的博客都是新浪默认的系统

干货满满,Android热修复方案介绍

摘要:在技术直播中,阿里云客户端工程师李亚洲(毕言)从技术原理层面解析和比较了业界几大热修复方案,揭开了Qxxx方案.Instant Run以及阿里Sophix等热修复方案的神秘面纱,帮助大家更加深刻地理解了代码插桩.全量dex替换.资源修复等常见场景解决方案,本文干货满满,精彩不容错过. 以下内容根据演讲视频以及PPT整理而成. 视频分享链接,点击这里! 在传统的修复模式下,如果线上的App出现Bug之后进行修复所需要的时间成本非常高,这是因为往往需要发布一个新的版本,然后将其发布到对应的应用

这可能是最全的 Redis 集群方案介绍了

由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以达到100GB.200GB的规模,但是单实例模式限制了Redis没法满足业务的需求(例如新浪微博就曾经用Redis存储了超过1TB的数据).Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正式版.各大企业在3.0版本还没发布前为了解决Redis的存储瓶颈,纷纷推出了各自的Redis集群方案.

Hadoop2.0 Namenode HA实现方案介绍及汇总

基于社区最新release的Hadoop2.2.0版本,调研了hadoop HA方面的内容.hadoop2.0主要的新特性(Hadoop2.0稳定版2.2.0新特性剖析): hdfs snapshots: apache官方对hdfs snapshots说明 namenode federation: namenode在集群规模大了之后会成为性能瓶颈,尤其是内存使用量急剧增大,同时hdfs所有元数据信息的读取和操作都要与namenode通信.而联邦模式解决的就是namenode的可扩展性问题.更多内

Redis集群Proxy支持select命令方案介绍

目前Redis集群开源的方案主要有Redis Cluster,Codis,Twemproxy等,这几个方案里面都不支持select命令,即用户无法使用select进行逻辑db的切换,这样会给之前使用Redis单机的用户带来一定困扰,导致很多用户在迁移到集群方案的时候需要改造代码,本文探讨Redis集群支持select命令的方案实现. 阿里云Redis集群 阿里云的redis集群版由3大组件构成: redis-config : 集群管理工具 redis-server : 优化过源码的redis,支

阿里云NAS文件存储部署方案介绍和对比

NAS业务上云的背景 作为国内最大的公有云厂商,阿里云为广大的个人用户.初创团队和企业提供了多种多样的公有云服务,包括弹性计算,数据库,存储和网络等.阿里云弹性伸缩,按需付费,无限容量,便捷使用等特性吸引了大量的客户把他们的应用以及服务部署到阿里云,其中就包括一部分部署NAS应用的客户,对于这些客户,面临的一个问题就是如何以最大的性价比来将原有的NAS应用部署到云上.本文介绍了三种可能的部署方案,并比较了他们的优缺点,包括用户最关心的价格,性能以及扩展性等.   对于企业级NAS应用,大部分企业