CN108737899A - 视频互动***动态更新方案 - Google Patents
视频互动***动态更新方案 Download PDFInfo
- Publication number
- CN108737899A CN108737899A CN201810293315.8A CN201810293315A CN108737899A CN 108737899 A CN108737899 A CN 108737899A CN 201810293315 A CN201810293315 A CN 201810293315A CN 108737899 A CN108737899 A CN 108737899A
- Authority
- CN
- China
- Prior art keywords
- lua
- business
- bridge
- interactive system
- system dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种视频互动***动态更新方案,选择了Lua的技术解决方案。业务搭建,整个SDK目前可大致分为四层;最底层是lua解释器,因为lua其解释器基于C,故Android(java)利用LuaJ.vm(Lua官方推出的Lua在java平台的实现)框架进行代理。OC上更是接近直接运行。平台层为我们根据V++业务做的业务定制。同时提供基础的各种数据存储模型。其中业务定制中,采用了常见的app架构模式,在整体结构中实现了常见的网络,请求,长链,UI等模块的基础框架;本发明相对于现有技术具有如下优点:Lua的优势在此处得到体现,其优秀的跨平台能力,轻量的解释器在这里得到了很好的发挥,能有效降低SDK包体大小。
Description
技术领域
本发明属于互联网视频行业,基于Lua技术的视频互动动态更新,具体是视频互动***动态更新方案。
背景技术
随着视频行业的发展,为了改进用户体验和增强用户交互互动性,频内互动技术越来越流行,包括竞猜,投票,播放广告等。现在行业实现移动端效果有两种方式,第一种是用Native方式来解决,用Java和Object C来实现Android和iOS端的开发,第二种用H5来实现开发,可以实现跨平台,所有更新在服务器上实现,不需要更新客户端代码。
现有技术中存在的缺陷:
Native方式实现的缺陷:
1)当产品功能需要迭代更新的时候,移动端需要更新,有更新版本问题,造成每个版本的展示和逻辑不一致,更新成本很高。
2)Native会造成移动端的包越来越大,对于移动端APP来说也是个很大的成本。
H5实现的缺陷
1)H5现状对webview的兼容性普遍不好。
2)H5由于性能问题导致的用户体验不如Native实现方式。
发明内容
本发明采用的技术方案是提供一种视频互动***动态更新方案,具体技术方案为:
选择Lua的技术解决方案:
业务搭建
整个SDK目前可大致分为四层;
最底层是lua解释器,因为lua其解释器基于C,故Android(java)利用LuaJ.vm框架进行代理,OC上更是接近直接运行;
平台层为根据V++业务做的业务定制,同时提供基础的各种数据存储模型;
bridge层为串联平台层和lua执行层的核心;在Lua的运行过程中bridge是至关重要的支撑层,bridge是lua api与android或者IOS运行的通道,所有的native class,method都可以通过brdige代理形成lua的可调用api;此为lua脚本执行解释,实际上是native代码构建提供了可能;
前端展示层为LuaView和NativeView的协作层,各模块组件支持通过Router规则进行交互。
平台层,在SDK环境中主要用到了3种存储方式来做数据保存,其中sqlite作为Android,IOS自带的关系型数据库,主要用在了日志收集模块;轻量级的存储例如Android的sharedprefences和IOS的沙盒,主要存储需要长久保存的数据模型,例如:版本记录;而File存储,主要用于lua脚本的更新,持久化的资源。
bridge层,在Lua的bridge中代理了如下几种类型:
原生method:md5,encode,
原生控件:ImageView,TextView
原生class:HTTP请求封装类,MQTT功能封装类。
前端展示层,其中LuaView与NativeView是共存的,特别是一些特别复杂,定制性高的View在已有bridge难以支持通过Lua实现的时候,可以定义好NativeView然后将NativeView通过Bridge桥接给Lua,形成Lua里面的API,这一点为持续拓展LuaView api提供了可能,同时也能很好的响应业务的特殊需求。
平台层,其中业务定制中,采用了常见的app架构模式,在整体结构中实现了常见的网络,请求,长链,UI模块的基础框架;同时拓展了用户行为统计模块,webview业务定制模块,跟实际业务关联性较强的功能。
本发明相对于现有技术具有如下优点:Lua的优势在此处得到体现,其优秀的跨平台能力,轻量的解释器在这里得到了很好的发挥,能有效降低SDK包体大小。同时其也提供了丰富的C Api来让其它的语言对其功能进行扩展,能够真正做到按需定制方案执行。
同时Lua因为只是脚本解释器,在我们实际的运行中,Lua只是负责了动态的解释,大部分核心运行仍然是Android、IOS的Native代码。尤其是不同平台View的构建,这保持了C端很好的运行性能,对用户交互体验也没有伤害。
附图说明
图1为视频互动***动态更新方案的整体架构图。
具体实施方式
下面结合实施案例对本发明作进一步的描述。
在TOB的场景中,移动端会面临两个痛点:1)发布版本受合作平台方限制;2)新内容更新和发布,bugfix等双方联调测试时间长。基于以上技术分析唯有较为完善的热更新方案可最大限度避免相关问题。调研了很多方案后,移动端决定引入脚本语言Lua作为构建整体公司移动端业务方案;
方案抉择
在目前移动行业内几大厂商有推出自己的热更新方案,来做到客户端不升级版本来做功能上线的策略,但基本分为以下几个技术方向:
1)跨平台动态语言方案,利用js,lua,python等脚本语言做native功能的拓展,需要定义各个跨语言的bridge。
2)利用JVM或者IOS的Runtime来做动态生成代码或动态修改代码后做代码注入。
其中,第二点中动态代码注入或者生成需要掌控app的启动等事件。作为我们做嵌入式功能的提供商不太适合,同时IOS的审核规则对于第二点会拒绝。
第一种方案中,较为成熟的代表方案有ReactNative,weex等,大部分为js的方案,优点在于js的较好的跨平台性和支持动态发布。但是缺点在于js的解释器会比较大,同时可能对合作平台代码兼容性和侵入性比较大。所以在SDK的实现中不是最优方案。而Lua是一种轻量级的脚本语言,它的脚本解析器很小,编译出来只有100多kb,因此,作为一个内嵌的脚本解析器是首选的;而且Lua除了提供基本的脚本语言特性和***功能外(IO读写),没有多余的功能性框架(JS解析器因为要配合Web的功能实现带有很多的工具库),这也是它轻量的表现,故最后选择了Lua的技术解决方案。
1)业务搭建
整个SDK目前可大致分为四层;
最底层是lua解释器,因为lua其解释器基于C,故Android(java)利用LuaJ.vm(Lua官方推出的Lua在java平台的实现)框架进行代理。OC上更是接近直接运行。
平台层为我们根据V++业务做的业务定制。同时提供基础的各种数据存储模型。其中业务定制中,采用了常见的app架构模式,在整体结构中实现了常见的网络,请求,长链,UI等模块的基础框架。同时拓展了用户行为统计模块,webview业务定制模块等跟实际业务关联性较强的功能。在SDK环境中主要用到了3种存储方式来做数据保存,其中sqlite作为Android,IOS自带的关系型数据库,主要用在了日志收集模块。轻量级的存储例如:Android的sharedprefences和IOS的沙盒,主要存储需要长久保存的数据模型,例如:版本记录。而File存储,主要用于lua脚本的更新,持久化的资源等。
bridge层为我们串联我们平台层和lua执行层的核心。在Lua的运行过程中bridge是至关重要的支撑层,bridge是lua api与android或者IOS运行的通道,所有的nativeclass,method都可以通过brdige代理形成lua的可调用api。此为lua脚本执行解释,实际上是native代码构建提供了可能。在Lua的bridge中我们代理了例如如下几种类型:
原生method:md5,encode,
原生控件:ImageView,TextView
原生class:HTTP请求封装类,MQTT功能封装类
前端展示层为LuaView和NativeView的协作层,各模块组件支持通过Router规则进行交互。其中LuaView与NativeView是共存的,特别是一些特别复杂,定制性高的View在已有bridge难以支持通过Lua实现的时候,我们可以定义好NativeView然后将NativeView通过Bridge桥接给Lua,形成Lua里面的API。这一点为我们持续拓展LuaView api提供了可能。同时也能很好的响应业务的特殊需求。
实施例:本发明的技术效果简述为,实现一个前端可视化的红包功能(用户观看视频的时候界面上出现一个红包的图案,用户点击红包后弹出产品详情介绍,详情也主要包含红包说明,使用场景等等,基本的是ImageView,TextView等控件构成)。经过市场验证后,产品需要做一次大的更新升级(其中详情介绍UI整体需要变更,同时拓展红包的进一步玩法,例如用户点击产品详情介绍中的图片后弹出电商商城页面),如果按照以往的开发模式中,客户端势必需要编写Android或者IOS的Native代码,最后打包后上传给appstore或者其他应用商店,用户通过应用商店检索到最新版本后下载。整个环节时间上线周期长,不可灵活调整。但目前采用本技术方案后,因为前段的渲染是Lua脚本解释,故可以更改Lua文件来满足需求,同时将更改后的lua文件采用热更新的方式下发给所有用户,用户通过下载服务端配置的最新版本lua后,实时改变了交互与现实,用户不在需要下载最新版本客户端。以此达到了所有功能的实时性和高度可控。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (5)
1.一种视频互动***动态更新方案,其特征在于:
选择Lua的技术解决方案:
业务搭建
整个SDK目前可大致分为四层;
最底层是lua解释器,因为lua其解释器基于C,故Android(java)利用LuaJ.vm框架进行代理,OC上更是接近直接运行;
平台层为根据V++业务做的业务定制,同时提供基础的各种数据存储模型;
bridge层为串联平台层和lua执行层的核心;在Lua的运行过程中bridge是至关重要的支撑层,bridge是lua api与android或者IOS运行的通道,所有的native class,method都可以通过brdige代理形成lua的可调用api;此为lua脚本执行解释,实际上是native代码构建提供了可能;
前端展示层为LuaView和NativeView的协作层,各模块组件支持通过Router规则进行交互。
2.如权利要求1所述的视频互动***动态更新方案,其特征在于:平台层,在SDK环境中主要用到了3种存储方式来做数据保存,其中sqlite作为Android,IOS自带的关系型数据库,主要用在了日志收集模块;轻量级的存储例如Android的sharedprefences和IOS的沙盒,主要存储需要长久保存的数据模型,例如:版本记录;而File存储,主要用于lua脚本的更新,持久化的资源。
3.如权利要求1所述的视频互动***动态更新方案,其特征在于:bridge层,在Lua的bridge中代理了如下几种类型:
原生method:md5,encode,
原生控件:ImageView,TextView
原生class:HTTP请求封装类,MQTT功能封装类。
4.如权利要求1所述的视频互动***动态更新方案,其特征在于:前端展示层,其中LuaView与NativeView是共存的,特别是一些特别复杂,定制性高的View在已有bridge难以支持通过Lua实现的时候,可以定义好NativeView然后将NativeView通过Bridge桥接给Lua,形成Lua里面的API,这一点为持续拓展LuaView api提供了可能,同时也能很好的响应业务的特殊需求。
5.如权利要求1所述的视频互动***动态更新方案,其特征在于:平台层,其中业务定制中,采用了常见的app架构模式,在整体结构中实现了常见的网络,请求,长链,UI模块的基础框架;同时拓展了用户行为统计模块,webview业务定制模块,跟实际业务关联性较强的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810293315.8A CN108737899A (zh) | 2018-03-30 | 2018-03-30 | 视频互动***动态更新方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810293315.8A CN108737899A (zh) | 2018-03-30 | 2018-03-30 | 视频互动***动态更新方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108737899A true CN108737899A (zh) | 2018-11-02 |
Family
ID=63941200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810293315.8A Pending CN108737899A (zh) | 2018-03-30 | 2018-03-30 | 视频互动***动态更新方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108737899A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN106155729A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | Lua脚本热更新方法、装置及*** |
CN106897318A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 移动终端设备上应用页面的展示方法及装置 |
CN107092514A (zh) * | 2016-08-25 | 2017-08-25 | 口碑控股有限公司 | 一种页面内容展示方法及装置 |
CN107092472A (zh) * | 2016-08-19 | 2017-08-25 | 口碑控股有限公司 | 一种动态发布方法及设备 |
CN107133064A (zh) * | 2017-03-16 | 2017-09-05 | 武汉斗鱼网络科技有限公司 | 原生应用的页面热更新方法及装置 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
CN107678789A (zh) * | 2016-07-27 | 2018-02-09 | 平安科技(深圳)有限公司 | Ui界面的更新方法及装置 |
-
2018
- 2018-03-30 CN CN201810293315.8A patent/CN108737899A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN106155729A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | Lua脚本热更新方法、装置及*** |
CN106897318A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 移动终端设备上应用页面的展示方法及装置 |
CN107678789A (zh) * | 2016-07-27 | 2018-02-09 | 平安科技(深圳)有限公司 | Ui界面的更新方法及装置 |
CN107092472A (zh) * | 2016-08-19 | 2017-08-25 | 口碑控股有限公司 | 一种动态发布方法及设备 |
CN107092514A (zh) * | 2016-08-25 | 2017-08-25 | 口碑控股有限公司 | 一种页面内容展示方法及装置 |
CN107133064A (zh) * | 2017-03-16 | 2017-09-05 | 武汉斗鱼网络科技有限公司 | 原生应用的页面热更新方法及装置 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
Non-Patent Citations (2)
Title |
---|
ALIBABA: "LuaViewSDK概述", 《LUAVIEWSDK;HTTPS://ALIBABA.GITHUB.IO/LUAVIEWSDK/GUIDE.HTML》 * |
朴诚等: "LuaView:基于Lua的移动端跨平台动态化方案", 《LUAVIEW:基于LUA的移动端跨平台动态化方案;HTTPS://MP.WEIXIN.QQ.COM/S?__BIZ=MZUXMZCXMZE5NG==&MID=2247488440&IDX=1&SN=ECF64EFA2D7F81EC60BB324082EFF77B&SOURCE=41#WECHAT_REDIRECT》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9715370B2 (en) | Method and system for providing content | |
US8850420B2 (en) | Dynamically updating on-demand runtime platforms executing business applications | |
CN105354013B (zh) | 应用界面渲染方法及装置 | |
CN107832108A (zh) | 3D canvas网页元素的渲染方法、装置及电子设备 | |
CN105824900A (zh) | 一种基于react-native的页面展示*** | |
CN107589947A (zh) | 一种sdk接入方法、客户端及*** | |
CN104615462B (zh) | 跨平台的移动应用生成服务端及*** | |
KR101787527B1 (ko) | 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법 | |
KR20020035567A (ko) | 레거시 데이터 구조용 객체 속성 메타 모델 에뮬레이터 | |
Hales | HTML5 and JavaScript Web Apps | |
CN108055570A (zh) | 一种视频播放方法及装置 | |
CN106815055A (zh) | 移动应用动态布局的方法与*** | |
CN112860260A (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
CN110580174A (zh) | 应用组件生成方法、服务器及终端 | |
CN102622217B (zh) | 一种跨屏运行应用的方法及*** | |
CN112215960A (zh) | 场景搭建方法、场景渲染方法、装置及计算设备 | |
CN113064593A (zh) | 移动app动态化的方法、装置、计算机设备及存储介质 | |
US10789751B2 (en) | Method and apparatus for implementing animation in client application and animation script framework | |
CN116974620A (zh) | 应用程序的生成方法、运行方法以及相应的装置 | |
CN112818176B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114297549A (zh) | 组件处理方法及装置 | |
CN108737899A (zh) | 视频互动***动态更新方案 | |
AU2019222873B2 (en) | Method and system for providing content | |
CN108804120A (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN112068879A (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |