`
hyshucom
  • 浏览: 802629 次
文章分类
社区版块
存档分类
最新评论

跨平台移动开发实战(一)------总体架构和技术路线

 
阅读更多

最近两个月以来工作之余一直在做一件事情,就是把现在的产品移植到各主流移动平台上。其实需求很简单,就是想让现有的产品能在各大移动平台上有个端,让客户能移动办公。这个需求大概也是个大众化普遍的需求,于是乎就饶有兴趣地把它当作一个主题比较深入地研究了一下。两个时间自己没事儿就倒腾一下,做了一个像模像样的产品,并覆盖到IOS、Andriod、WebOS、Chrome和Windows Phone(还在开发中),基本上把跨平台的移动开发这条路探明了一下,这几天就以blog的方式把这两个月的心得和收获总结一下。

移动平台和服务器端的开发还真有很大的差别,现在还没有像Java那样解决服务器端跨平台问题的解决移动端跨平台的方案,但这个跨平台的需求比服务器端更强烈,现在数得出来的主流平台就IOS、Android和WP三条技术路线,并且势均力敌,导致移动产品都起码得覆盖这三个平台。另外传统的B/S优势在移动端不明显,C/S依然是移动端的主流,这必然导致移动开发人员负担很重,Java、C#、Objective-C、C++......,横跨这么多技术路线不是所有人都做得到的。现在看来,比较靠谱的跨平台开发语言就是Javascript,也就只有这个语言是各个平台都原生态支持的。于是乎,Javascript最近几年火爆地不行,市面上也有各种基于Javascript的跨平台方案。总体考察下来,Phonegap+HTML5的组合是一个比较成熟,并且行得通的方案。我这两个月,就是基于这样的总体路线做到了能覆盖几大平台的产品。

但Phonegap+HTML5不是万能的,不是所有类型的产品都适合,通过自己的实际体验,只有那种交互性不强,以信息获取为主的产品比较适合采用这种技术路线。关键问题就是,它没有native来得直接,为了跨品台所带来的性能损耗比较大,无法做出交互性很强,非常流畅高效的应用。因此,别奢望用它来开发很炫的游戏。那些基于HTML5做移动网页游戏的公司,比如UCWeb,做出的东西实在没法和native的游戏相比,限制太多。但用它开发一些信息类应用或企业级向移动端移植的产品是没问题的。因此,这里谈的技术架构和路线也是基于这样的前提,如果是开发游戏类产品,那应该是另外的景象。

废话说了好多,下面来看看如何开始跨平台的移动开发。

撇开产品设计和需求分析不谈,就开发而言,主要要解决两个问题,一是开发平台的搭建。二是解决主要的技术障碍。

开发平台的搭建:

  • IOS:Mac+Xcode
  • Android:Eclipse+Android SDK
  • WP:.net studio
  • WebOS:Eclipse+WebOS SDK+VirtualBox
  • Chrome:Chrome开发者工具
  • HTML5:各平台的编辑和调试器

主要的技术障碍及解决方案:

  • UI:JQuery Mobile等UI组件
  • Native化:Phonegap+各平台对HTML5的支持
  • 服务器端数据通信:Jetty(HTTP)+Netty(Websocket)
  • 移动端数据通信:Ajax(客户端到服务端请求)+Websocket(服务器端向客户端推送)
  • 移动端存储:HTML5(Localstorge)+文件系统访问
  • 与其他移动产品的整合
  • 各平台上产品的包装和项目结构
  • 安全
  • 效率
当以上的问题得到验证后,大概也能判断是否这条路能行得通,下面我也是按以上内容的划分,详细地阐述里面的细节,供大家将来技术选型的判断依据,毕竟不是所有人都有两个月来做技术选型。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics