基于HTML5技术跨平台混合式应用开发解决方案UniSDP

2012-05-23 09:24:00来源:InfoQ 作者:孙广宇热度:

笔者2004~2008年初,从事移动互联网开发,学习使用了J2ME、Brew、Symbian等开发技术。08年加入东软商用,从事JavaEE、RIA企业应用和智能设备开发,主要使用ActionScript、JavaScirpt、iOS、Android、linux平台上开发技术。笔者感到,在学些各种开发语言和平台开发技术时,花费了太多的时间和精力。无法将更多的精力投入到更深层次技术学习、以及业务积累和以及创新、创意中去。2010年笔者在Adnroid、iOS、Linux平台上测试了对HTML5的支持情况,发现可以尝试利用HTML5来改变这一情况。2010年我们在开发某DLNA相关产品分别在Linux、Meego、iOS、Android平台进行开发。在平台移植、程序架构、程序逻辑和用户界面方面重复性开发浪费了很多资源,UniSDP最初就是为了解决这一问题而起始的。

这篇文章不会讨论过多的技术细节,而是把我们在多平台应用开发经验,以及智能家电嵌入式领域研发方向的最新动态与大家分享。

一.Hybrid Application:

混合式应用程序采用Web开发技术与Native系统技术相结合的方式开发的应用程序。 由于HTML5标准尚未正式发布,基于HTML5技术的WebAPP尚不能完全实现Native APP的全部功能,因此Hybrid APP在相当长一段时间内是全面解决跨平台问题的最佳方案。

Native APP、Web APP、Hybrid APP特性对比表:

Native App

Web App

Hybrid App

开发成本

跨平台

需要安装

首次安装

实时增量更新

支持

支持

系统API调用

开发灵活度

对AppStore依赖

二.UniSDP定义:

UniSDP (Unified Smart Device Development Practices)项目启始于2010年12月,它是一个用于构建支持PC和智能设备混合式应用开发的整体解决方案,它是由开发框架,运营平台,公共构件和方法学组成的。

UniSDP是NeuSoft Smart TV TurnKey Solution的核心技术之一,我们在UniSDP在Neusoft DTV解决方案基础上构建Android、Linux通用的Smart TV解决方案。通过UniSDP来集成各领域的中间件,支撑构建跨平台的资讯、影音、游戏的应用平台。目前我们与合作伙伴共同研发的很多产品和项目,都采纳了UniSDP的设计思路,整体或部分使用了UniSDP的相关技术。

三.UniSDP的开发理念:

1、UniSDP是Hybrid APP开发及运营的整体解决方案。
2、UniSDP可以支持PC、手机、平板、Smart TV、车载系统等硬件平台开发。
3、UniSDP能实现跨平台统一的或接近系统原生的用体验。
4、基于UniSDP开发,效率高、成本低、学习曲线低。
5、UniSDP集成了众多专业领域原生组件,开发者无需掌握专业即可开发相应产品。
6、UniSDP的HybridAPP只需首次安装,可以支持集中控制,统一发布。
7、UniSDP能实现在运行期实时的、增量更新。
8、UniSDP拥有敏捷软件工厂和开发者体系结构。
9、UniSDP Hybrid APP Store是NativeApp模式新颖,商业前景广阔。

四.UniSDP的开发SDK:

UniSDP的开发框架由HTML5、JavaScirpt、CSS3和UniSDP核心组件构成。UniSDP的开发SDK在不同的系统和硬件平台上都有不同的版本,使用者可以根据具体项目需求进行剪裁或补充。UniSDP保证对于最上层的应用开发者在各个平台上相同功能的编程接口的一致性。

五.UniSDP的核心组件:

UniSDP核心组件是由下图所示六大核心组件共同组成的。此外UniSDP最新在正在开发提供针对不同系统和硬件平台,提供图形、影音硬件加速的浏览器核心,来进一步提升图形图像性能。

UniSDP核心组件构成图

UniSDP核心组件说明

Native MiddleWare:原生系统中间件层,该层实现各个系统平台如Linux,Android、iOS等平台上与本地系统API接入和资源的访问、设备调用以及各个平台扩展中间件的。

1、各个平台的文件系统,数据库扩展、网络io、文件上传、Socket增强(用于不支持webSocket)情况。
2、设备调用、摄像头、麦克风、传感器等多媒体接等。
3、原生UI组件调用接口、比如图层控制、WebView行为控制、等等。
4、中间件扩展如DLNA(数字家庭网络联盟)、DTV(数字电视相关接口)、语音识别、人脸识别、SDM(智能设备管理)、DCM(设备连接管理)等。

Hybrid App Engine:混合式应用支撑层,通过该层衔接浏览器(WebAPP)与各平台系统的Native接口。

1、统一的UI显示,比如Android和iOS系统的UI和操控有很大不同,如果基于系统原生组件开发将非常困难实现相同UI显示。UniSDP采用HTML5技术开发跨平台的通用的UI,构建与众不同的用户体验。

2、统一的系统行为,HTML5控件在不同系统下行为会有差异,比如video标签。在移动设备上往往是全屏播放,无法嵌入在页面显示。UniSDP统一了此类行为。

3、安全认证:所有Web与系统底层的接口的访问都必须经过授权认证,来自远程页面发起的访问认证在访问时申请,会话内有效。

4、原生API开发:基于原生组件的开发增强。举例DLNA组件是基于标准C开发,在集成到iOS、与Android时分别基于ObjectC和Java开发相关功能。

5、Web与Native调用方式,UniSDP在不同平台可以采用下列方式

(1)、拦截Web浏览器URL解析。
(2)、扩展js引擎、和tag解析。
(3)、通过本地HTTP或Socket服务。

UniSDP可以采用自己的定制跨平台的增强浏览器内核实现更强大的功能。

6、Web增强,UniSDP针对很多HTML5做了web增强。比如音频和视频标签与系统原生媒体播放时的是否可以同时播放。

WebApp Engine:由HTML5、CSS3、JS框架组成,包括UI框架、公共组件和WEB桌面系统,用于支撑Web APP开发。

1、Cloud Service Engine:用于服务继承,版本控制、开放认证,更新控制支持云服务开发。
2、Hybrid App Store:提供Hybrid App的应用商店,及版本管理。
3、Cloud Device Management:完成设备的的云端管理功能。

七.UniSDP Hybird APP 运行模式:


首次安装UniSDP程序后,在Online模式下,程序可以在后台自动与服务器同步更新,可以按照用户设定或云端设置按照页面单元、模块、文件、程序组等维度,在Hybrid App运行期进行增量、实时更新。在Offline 模式下,程序仍可使用非网络功能,访问本地资源正常使用。

八.Unisdp的开发模式:

敏捷软件工厂和开发者体系结构

我们使用UniSDP开发SmartTV相关产品的项目时,是由TV领域专家、Linux、Adnroid嵌入式专家,UniSDP核心组件开发人员,云服务开发者和应用开发者共同协作开发的。开发者开发测试自的模块根据约定的接口进行装配和测试。开发者无需掌握其他模块全部知识,能专注自己喜欢的领域,工作效率更高,掌握程度更深。对于应用开发者可以完全不懂iOS、Android、Linux等开发技术,也不需要过多了解诸如DTV、DLNA等专业领域知识,只需掌握HTML5、JavaScript、CSS调用UniSDP相应开发SDK即可完成应用开发。

九.UniSDP与PhoneGap的区别:

使用场景上的区别:

PhoneGap主要是用来支持跨平台的应用程序开发的解决方案,PhoneGap希望开发者只需要懂得web开发技术即可开发跨平台应用程序。

UniSDP是用来满足在智能设备及PC上用来研发操作系统、应用平台、应用程序等企业级开发和第三方开发者开发需求的。它是包含大量专业领域的中间件DTV、DLNA、CDM、MDM等,以及混合式应用商店、云服务平台等。UniSDP开发,往往是由领域专家、嵌入式开发者、UniSDP开发者、云服务开发者、应用开发者协同工作的。希望能为第三方开发者提供更多专业领域的API来简化开发。

设计原理上的区别:

PhoneGap是单页面应用程序(Single Page Application),整个应用程序是运行在WebView中,一个应用是在一个Web页面完成的,全面Ajax化,整个程序运行在一个WebView中。

UniSDP 在开发时可以根据实际情况选择基于Web开放技术和Native开发技术采用多个HTML页面和多个WebView来解决问题。有开发者反应WebView在Android系统下长时间运行后内存使用量消耗过多,导致系统出现各种问题。采用多页面或多WebView方式可以采取多种办法来缓解或解决这一问题。

UniSDP:通过UniSDP在Native扩展控件实现不同控件之间数据交互。

1、WebView1内通过HTML5实现EPG功能,与MediaPlayer完成交互。
2、js调用UniSDP组件动态调用MediaPlayerController。
3、WebView1的DIV调用UniSDP控件实现与底层系统交互,完成视频播放控制,相机调用等。
4、通过WebView2独立加载第三方web页面。
5、WebView上通过UniSDP动态调用相机接口,创建SufaceView ,完成相片拍摄。
6、MediaPlayerController的控制条。
7、WebView1中加载JQuery相册,非常简单的实现相册功能。

关于作者

孙广宇,东软集团(大连)有限公司运营经理 商用软件事业部 产品经理、UniSDP首席架构师。HTML5研究小组大连负责人。

责任编辑:51DTV编辑部

为您推荐

凤凰网推iPad应用:布局无线互联网

日前,凤凰新媒体COO兼CFO李亚表示,凤凰新媒体推出的iPad应用,看似只是一个移动终端软件,但却是凤凰在“三屏合一”方向上的重要探索,也是“在全球化时代为华语媒体争夺话语权”的一个重要组成部分。他同时表示,进入信息技术、媒体、娱乐、与宽带无线互联网大融合时代后,中国互联网行业某些目前看起来无法撼动的公司,未来一定会被创新企业所取代。使用HTML5技术iPad可播放高清凤凰视频凤凰新媒体高级经理李泓冰介绍,iPad客户端是凤凰独立推出的,5月20日正式发布,是全球首家推出iPad视频产品应用的华语媒体。他表示,这也是继iPhone版本后,凤凰网在移动互联网领域又一动作。而另一大移动平台And

移动互联网=移动+互联网?

从名词上看,移动互联网似乎就是互联网加上一个移动。但移动互联网远不是“移动的互联网”那么简单。它的本质——网络部分,就和互联网大不相同;而它的表现——移动部分,也正因为移动,造就了很多和互联网相当不一样的商业机会。而更重要也是很多人并没有注意到的是,它可能会改变整整一代人的信息处理习惯。硬件:网络与设备从网络部分而言,我们都知道,理论上互联网是没有拥有者的。但移动互联网并非如此。在中国,有三家运营商运行着制式完全不同的3G网络:中移动(中国自行研发的TD-SCDMA)、中联通(欧式WCDMA)、中电信(美式美国CDMA2000)。这三股势力各有各的长处,中移动胜在长期在移动领域中浸淫,中联通胜

电视3巨头联合发布智能电视开发套件

据国外媒体报道,电视三巨头LG,夏普,飞利浦,宣布将共同开发一款智能电视应用开发套件,使其发开者在该套件上开发出的应用程序能够跨平台使用。该通用套件的成立将重点着力与解决各家电视机智能应用平台混乱的问题,使其开发者只要在平台中制作一款应用程序便能直接在LG夏普,飞利浦智能电视上共同使用。该套件居于开放的网络标准,诸如HTML5,CE-HTML和HbbTV等。开发者预计能够在10月得到该平台的测试版,年底将会推出正式版。现在另一问题是LG,夏普与飞利浦怎样来

HTML5:下一个“苹果”?

苹果和网页视频播放软件FlashPlayer的争议,从来没有停过。iPad正式推出时,坚持不支持FlashPlayer;2011年10月,iOS5系统也同样宣布不支持Flash。乔布斯在《Flash之我见》的公开信指出,Flash是在PC时代,为PC和鼠标创造出来的,在新时代里,它的弊端太多,HTML5才是王道。业内人士认为,HTML5将成为Web应用的主流形式。HTML5能够横跨智能手机、功能手机、平板电脑、笔记本电脑、PC、电视,甚至汽车等多个领域,将来必然获得更广泛支持,成为引领移动互联网内容与消费井喷的另一“苹果”。摆脱操作系统制约HTML4自1999年发布后就没有修改过,面对互联网发