BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 孙广宇 关注 0 他的粉丝 发布于 2012年3月27日. 估计阅读时间: 13 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

背景:

笔者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在不同平台可以采用下列方式
    • 拦截Web浏览器URL解析。
    • 扩展js引擎、和tag解析。
    • 通过本地HTTP或Socket服务。
  6. UniSDP可以采用自己的定制跨平台的增强浏览器内核实现更强大的功能。

  7. 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相册,非常简单的实现相册功能。

PhoneGap:单纯采用Web技术通过单页面方式开发。

十. 相关演示

如果你对UniSDP感兴趣,可以到http://www.youku.com/playlist_show/id_17105254.html 查看相关演示视频,其中包括:

  1. 语音控制UniSDP HTML5 SmartTV Demo,HTML5相关展示。
  2. 语音控制平板电脑 UniSDP HTML5 Tablet Demo
  3. UniSDP Hybrid APP Sotre 运行期安装新应用
  4. UiniSDP HTML5 Auido 扩展
  5. HTML5 EPG Demo
  6. HTML5 Smart TV SNS社交&多设备协作

关于作者

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


感谢侯伯薇对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不错不错 by 冯 希顺

支持HTML5相关技术的分享和交流。

开源么? by Wang Frank

RT

有demo吗 by 李 兆飞

有demo吗,放出来看看

我是该文章作者,欢迎大家交流讨论技术和商业模型相关问题。 by guangyu sun

我的Sina微博: 天行者-阿纳金 ,微地址:skywalker.w.cn

Re: 开源么? by guangyu sun

由于主要用的嵌入式的商业产品中,目前还暂时还没计划开源。由于很多中间件都是商业组件,在没有好的商业模型下还无法开源,我们会进一步努力探索可行的模式。

Re: 有demo吗 by guangyu sun

www.youku.com/playlist_show/id_17105254.html 这里有下列Demo. 等近期一些大型展会结束后会有些新Demo发布。
1.语音控制UniSDP HTML5 SmartTV Demo,HTML5相关展示。
2.语音控制平板电脑 UniSDP HTML5 Tablet Demo
3.UniSDP Hybrid APP Sotre 运行期安装新应用
4.UiniSDP HTML5 Auido 扩展
5.HTML5 EPG Demo
6.HTML5 Smart TV SNS社交&多设备协作

挺不错的 by 钟 生

学习!谢谢!

Phonegap並非single page app吧? by Lee Cash

我覺得phonegap並非要求single page app。因為在實際的開發過程中,複雜的頁面設計必定會導致前端架構的繁雜。這個時候single page app是一個理想狀態,但是並非一個理智的做法。往往性能上就跟不上。加上,singgle page app一般是前端框架提出的概念,而並非phonegap這種類中間件的工具提出的要求。

Hybrid App用户体验如何?使用是否流畅?还有这个平台如何面对如何面对各底层平台的版本升级和碎片化? by 李 玉珏

Hybrid App用户体验如何?使用是否流畅?还有这个平台如何面对如何面对各底层平台的版本升级和碎片化?

Re: Phonegap並非single page app吧? by guangyu sun

目前用Phonegap能做多页面么?多页面间交互,管理有很多工作要做。多os就更多的工作量。

他山跨平台混合应用开发框架 by yao lixing

他山跨平台混合应用开发框架(OHUI),是使用Gecko(v1.9~v52)嵌入,实现跨平台混合应用的开发。
支持xp/2003/win7,8,9,10+ x32/x64,Linux,Android 系统,支持xul, html(5), css(3), js,c/c++/java混合编程开发界面。OHUI v22.0发行包大小13MB(Linux下21MB).V45 for Android 23MB.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

11 讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT