写点什么

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

  • 2012-03-26
  • 本文字数:3725 字

    阅读完需:约 12 分钟

背景:

笔者 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 服务。
    UniSDP 可以采用自己的定制跨平台的增强浏览器内核实现更强大的功能。
  1. 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2012-03-26 00:0017084

评论

发布
暂无评论
发现更多内容

5 分钟内搭建一个免费问答机器人:Milvus + LangChain

Zilliz

Milvus 向量数据库 langchain rag

《用“开源”的方式讲开源的法律,有问必答,一问到底》——开源合规分论坛为你答疑解惑

开放原子开源基金会

开源

使用极狐GitLab Triage 来自动管理 Issue 和 MR

极狐GitLab

终端闲思录(3)- 标准三剑客的本质

黑客不够黑

终端 文件描述符

万能扫描仪整合软件:ExactScan pro免激活中文版

胖墩儿不胖y

Mac软件 扫描工具

前端 JS 安全对抗原理与实践

vivo互联网技术

前端加密 JS混淆 调试和反调试

边缘计算的深入学习之路

Geek-yan

一款DC-DC控制器应用方案

二哈侠

边缘计算技术:深度学习与人工智能的融合

熬夜磕代码、

大咖云集,2023开放原子开发者大会助力开发者实现梦想

开放原子开源基金会

开源

深度盘点:除了BRC20外 这些公链潜力铭文也值得关注

大瞿科技

Typora+PicGo 搭建免费图床

吳先森321

经验分享

技术创新,照见未来 | 2023开放原子开发者大会OpenHarmony分论坛圆满举行

开放原子开源基金会

开源

感谢同行者|携手相伴前行路,共筑开源创未来

开放原子开源基金会

开源

开源赋能汽车智能化演进分论坛圆满举办

开放原子开源基金会

开源

开源治理与开发者运营分论坛圆满举办

开放原子开源基金会

开源

软件测试/测试开发丨持续交付与 DevOps 体系

测试人

软件测试 测试开发

适用各种行情,使用网格交易策略实现自动高效套利

EOSdreamer111

Inscribe:应用非定向资产交易协议 布局巨大铭文赛道

股市老人

创新铸就卓越 HashData再度荣获 IT168技术卓越奖

酷克数据HashData

书写开源之魂|2023年活力开源贡献者、开源项目揭晓

开放原子开源基金会

开源

Inscribe:应用非定向资产交易协议 布局巨大铭文赛道

鳄鱼视界

适用各种行情,使用网格交易策略实现自动高效套利

股市老人

大模型 “下沉时刻”,容联云完成“三级跳”

脑极体

AI

Inscribe:应用非定向资产交易协议 布局巨大铭文赛道

EOSdreamer111

KubeWharf:构建下一代分布式操作系统的云原生力量

不会算法。

云手机解决Tik Tok运营难题

Ogcloud

短视频 跨境电子商务 短视频直播 TikTok 电子商务

鸿蒙、ChatGPT 入选全球十大工程成就丨 RTE 开发者日报 Vol.111

声网

深度盘点:除了BRC20外 这些公链潜力铭文也值得关注

石头财经

深度盘点:除了BRC20外 这些公链潜力铭文也值得关注

BlockChain先知

软件开发

Geek_8da502

基于HTML5技术跨平台混合式应用开发解决方案UniSDP_《架构师》月刊_孙广宇_InfoQ精选文章