您的位置:首页 > 其它

图解框架-跨平台应用开发方案

2012-03-27 10:55 239 查看
前言

各种本地框架(比如android的java api,iphone的#C api)对应用开发者来说,绝对不是那么好伺候的大爷。如果开发者需要为一款应用开发Android和IPhone两个版本,如何做到使尽量多的代码重用,尽量减少开发成本和维护负担?

方案1:独立Ui+公用Engine



优点:应用逻辑部分可以重用

缺点:用户交互部分需要开发和维护两份,依然是不可忽略的工作量。

适用场合:团队或个人很熟悉Android和IPhone平台应用开发框架或者对效率要求很苛刻

方案2:公用Ui+公用Engine






优点:Ui可以借助于基于Html5、javascript、css3的库来实现,比如JQuery Mobile。 应用逻辑也完全用Javascript实现,最大限度的重用代码

缺点:效率会比方案1差,如果不是太在乎效率的情况,比如大型游戏,效率的小小损失与减少的工作量相比,完全可以忽略不计。

适用场景: 对效率要求不是很苛刻即可

进军Html5:

Html5相比以前的版本定义了一些新的标签和内置的Javascript Api,和移动应用开发关系比较密切的是对本地设备访问的支持。比如有定义访问Camera、GSensor的标准javascript接口。 如果需要访问Html5标准里定义好的本地硬件就很方便,如果需要访问本地的Hdmi,那就需要自己做Javascript的扩展来实现。

下图是Android设备里通过Javascript访问本地硬件的框架图,(图右边)Html5标准定义好的硬件Webkit有内建的js接口提供,(图左边)木有定义的就需要应用自己向Webkit注册。

目前Html5标准并未在很多设备上都有很好的支持,所有就出现了PhoneGap这种好帮手,PhoneGap分别在Android/IPhone/WP等平台实现了好多NativeJsAdapter(carmera/gsensor等等)来通过图左边的方式访问本地设备。






云端交互:

前面说的都是如何用Html5实现本地应用,并未涉及到和服务器的交互。服务器对本地应用可以不是必须的,就拿水果忍者来说,不联网可以玩,但联网就可以看到积分排名,也是很有用的功能。首先需要解释一下网络前端技术和网络后端技术这两个概念,前端就是在本地设备上运行的东西,后端就是在服务器端运行的东西。 大家都知道javascript是动态生成html和css的, 那后端的php或servlet等后端技术就是动态生成html和css以及javascript的,在本地你是看不到php或servlet的(幕后工作者嘛)。
下图是整个Ui和AppEngine全部部署在服务器端的框架图,这种情景适用于不联网就不能用的场景,当然这种应用并不算多,但这种应用的升级异常简单,在服务器端替换文件即可。更多的是部分功能部署的服务器端的情况。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: