笔者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最初就是为了解决这一问题而起始的。
这篇文章不会讨论过多的技术细节,而是把我们在多平台应用开发经验,以及智能家电嵌入式领域研发方向的最新动态与大家分享。
混合式应用程序采用Web开发技术与Native系统技术相结合的方式开发的应用程序。 由于HTML5标准尚未正式发布,基于HTML5技术的WebAPP尚不能完全实现Native APP的全部功能,因此Hybrid APP在相当长一段时间内是全面解决跨平台问题的最佳方案。
Native APP、Web APP、Hybrid APP特性对比表:
Native App |
Web App |
Hybrid App |
|
开发成本 |
高 |
低 |
低 |
跨平台 |
否 |
是 |
是 |
需要安装 |
是 |
否 |
首次安装 |
实时增量更新 |
支持 |
支持 |
是 |
系统API调用 |
能 |
否 |
能 |
开发灵活度 |
中 |
中 |
高 |
对AppStore依赖 |
高 |
低 |
低 |
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的开发框架由HTML5、JavaScirpt、CSS3和UniSDP核心组件构成。UniSDP的开发SDK在不同的系统和硬件平台上都有不同的版本,使用者可以根据具体项目需求进行剪裁或补充。UniSDP保证对于最上层的应用开发者在各个平台上相同功能的编程接口的一致性。
UniSDP核心组件是由下图所示六大核心组件共同组成的。此外UniSDP最新在正在开发提供针对不同系统和硬件平台,提供图形、影音硬件加速的浏览器核心,来进一步提升图形图像性能。
UniSDP核心组件构成图
Native MiddleWare:原生系统中间件层,该层实现各个系统平台如Linux,Android、iOS等平台上与本地系统API接入和资源的访问、设备调用以及各个平台扩展中间件的。
Hybrid App Engine:混合式应用支撑层,通过该层衔接浏览器(WebAPP)与各平台系统的Native接口。
UniSDP可以采用自己的定制跨平台的增强浏览器内核实现更强大的功能。
WebApp Engine:由HTML5、CSS3、JS框架组成,包括UI框架、公共组件和WEB桌面系统,用于支撑Web APP开发。
首次安装UniSDP程序后,在Online模式下,程序可以在后台自动与服务器同步更新,可以按照用户设定或云端设置按照页面单元、模块、文件、程序组等维度,在Hybrid App运行期进行增量、实时更新。在Offline 模式下,程序仍可使用非网络功能,访问本地资源正常使用。
敏捷软件工厂和开发者体系结构
我们使用UniSDP开发SmartTV相关产品的项目时,是由TV领域专家、Linux、Adnroid嵌入式专家,UniSDP核心组件开发人员,云服务开发者和应用开发者共同协作开发的。开发者开发测试自的模块根据约定的接口进行装配和测试。开发者无需掌握其他模块全部知识,能专注自己喜欢的领域,工作效率更高,掌握程度更深。对于应用开发者可以完全不懂iOS、Android、Linux等开发技术,也不需要过多了解诸如DTV、DLNA等专业领域知识,只需掌握HTML5、JavaScript、CSS调用UniSDP相应开发SDK即可完成应用开发。
UniSDP:通过UniSDP在Native扩展控件实现不同控件之间数据交互。
PhoneGap:单纯采用Web技术通过单页面方式开发。
如果你对UniSDP感兴趣,可以到http://www.youku.com/playlist_show/id_17105254.html 查看相关演示视频,其中包括:
孙广宇,东软集团(大连)有限公司运营经理 商用软件事业部 产品经理、UniSDP首席架构师。HTML5研究小组大连负责人。