CN106815055B - 移动应用动态布局的方法与系统 - Google Patents
移动应用动态布局的方法与系统 Download PDFInfo
- Publication number
- CN106815055B CN106815055B CN201710082452.2A CN201710082452A CN106815055B CN 106815055 B CN106815055 B CN 106815055B CN 201710082452 A CN201710082452 A CN 201710082452A CN 106815055 B CN106815055 B CN 106815055B
- Authority
- CN
- China
- Prior art keywords
- compressed packet
- dynamic layout
- layout program
- server
- local
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F8/656—Updates while running
Abstract
本发明公开了一种移动应用动态布局的方法与系统,所述方法通过获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。本发明实现应用的动态布局本地化。将动态布局程序上传服务器,由于使用通用的脚本语言编写的程序可以上传对应的压缩包到服务器然后下发到客户端,通过下载压缩包实现更新。由此在保证和本地化方案一样的用户体验的同时能够实现热更新,并且采用通用的脚本编程语言编写,便于扩展和推广。
Description
技术领域
本发明涉及移动应用开发领域,尤其涉及一种移动应用动态布局的方法与系统。
背景技术
目前大多数的应用程序都是使用Java语言编写的原生应用程序,或者为使用HTML5脚本编写的网络应用程序。以安卓系统为例,一种是进行安卓原生应用程序的开发,另一种是开发HTML5类型的web页面。原生应用程序的优点是用户体验好,缺点是必须通过发版进行升级而不能直接在线更新。所以原生应用程序不仅容易受到发版频率的限制,而且会容易产生碎片化的版本。而使用HTML5编写的网络应用程序的优点是可以实现在线更新,不需要通过发版进行升级,缺点是只能在浏览器中加载,以致其性能受到影响,造成网络应用程序的用户体验不如原生应用程序。
发明内容
本发明的主要目的在于提供一种移动应用动态布局的方法与系统,旨在解决不能保证用户体验的同时实现热更新的技术问题。
为实现上述目的,本发明提供的一种移动应用动态布局的方法,所述方法包括以下步骤:
获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;
通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;
将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。
可选地,所述获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写的步骤之前包括:
当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
可选地,所述通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象的步骤包括:
初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
可选地,所述方法还包括:
检测标志位判断所述动态布局程序是否需要更新;
当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
可选地,所述当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染的步骤包括:
当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
此外,为实现上述目的,本发明还提供一种移动应用动态布局的系统,所述系统包括:
第一获取模块,用于获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;
解析模块,用于通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;
渲染模块,用于将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。
可选地,所述系统还包括:
上传模块,用于当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
可选地,所述解析模块包括:
初始化单元,用于初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
加载单元,用于根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
转换单元,用于通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
可选地,所述系统还包括:
判断模块,用于检测标志位判断所述动态布局程序是否需要更新;
第二获取模块,用于当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
可选地,所述第二获取模块包括:
判断单元,用于当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
转换单元,当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
本发明提供一种移动应用动态布局的方法,所述方法通过获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。本发明通过使用通用的JS脚本编程语言编写动态布局程序,然后通过JS解析引擎将所述动态布局程序解析转换为本地对象,以实现应用程序的动态布局本地化。由于JS脚本语言编写的程序可以上传对应的压缩包到服务器然后下发到客户端进行升级,因此,本发明可以通过下载压缩包实现热更新。通过上述方式,本发明在保证用户体验的同时能够实现热更新,并且采用通用的JS脚本编程语言编写,便于扩展和推广。
附图说明
图1为本发明移动应用动态布局的方法第一实施例的流程示意图;
图2为本发明移动应用动态布局的方法第二实施例的流程示意图;
图3为本发明移动应用动态布局的系统第一实施例的功能模块示意图;
图4为本发明移动应用动态布局的系统第二实施例的功能模块示意图;
图5为本发明移动应用动态布局的系统的框架图;
图6为JS桥与Java桥通信的时序图;
图7为本地化模块结构图;
图8为应用加载动态布局的流程;
图9为应用热更新的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种移动应用动态布局的方法。
参照图1,图1为本发明移动应用动态布局的方法第一实施例的流程示意图。
本实施例中,该方法包括:
步骤S10,获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写。
具体地,本实施中选取JS脚本语言为例进行说明。当检测到根据用户操作触发的加载动态布局程序指令时,从服务器中获取动态布局程序的压缩包,并将该压缩包加载到移动平台中。
在本步骤之前通过开发者开发层实现动态布局程序的编写。
在步骤S10之前还包括:
步骤S01,当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
具体地,当接收到外界发送的使用JS脚本语言编写的动态程序对应的压缩包时,将所述压缩包上传至服务器上进行存储。由于JS脚本语言具有放在服务器上然后到下发到客户端的特性,就像网页支持热更新一样,所以,我们的系统就支持热更新。
步骤S20,通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象。
具体地,应用将所述压缩包加载到本地后,通过JS解析引擎将所述压缩包由磁盘解析到内存中,并将其转换为内存对象。获取所述内存对象后,JS桥和JAVA桥会根据预存的映射表将所述内存对象映射为本地对象。
步骤S30,将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。
具体地,在将所述内存对象映射为本地对象后,进一步将所述对象挂载到控件模块中,将程序中的本地对象渲染成可在界面显示的本地对象。
本发明提供一种移动应用动态布局的方法,所述方法通过获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。本发明通过使用通用的JS脚本编程语言编写动态布局程序,然后通过JS解析引擎将所述动态布局程序解析转换为本地对象,以实现应用程序的动态布局本地化。由于JS脚本语言编写的程序可以上传对应的压缩包到服务器然后下发到客户端进行升级,因此,本发明可以通过下载压缩包实现热更新。通过上述方式,本发明在保证用户体验的同时能够实现热更新,并且采用通用的JS脚本编程语言编写,便于扩展和推广。
为了进一步说明从用户启动应用开始来加载本系统的流程,如图8所示,步骤S20包括:
步骤S21,初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
具体地,初始化全局管理对象,启动应用的第一个流程是初始化全局管理对象。把必要的全局设置进行初始化,是为后续流程提供应用配置。初始化根UI控件模块,是要渲染视觉元素,首先将根元素进行初始化,然后在根元素上挂载子元素。同时初始化核心框架模块,初始化框架的核心框架模块包块层次管理等。
步骤S22,根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
具体地,全局管理对象创建Java模块注册表、JS模块注册表。只有先把各个控件模块注册到这两个映射表中,才能够解析后面JS脚本加载进来的对象。装载器加载JS压缩包、并传给JS解析引擎。装载器根据全局管理对象的加载方式,加载路径去请求或者加载JS压缩包,并传递给解析引擎。
步骤S23,通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
具体地,通过解析引擎将所述动态布局程序解析并转换为内存对象,然后通过Java和JS桥将内存对象映射为本地对象,然后挂载到根UI控件进行渲染。
参照图2,图2为本发明移动应用动态布局的方法第二实施例的流程示意图。
为了使客户端应用需要发布新版本时,不需要通过应用市场让用户去更新应用,而是通过热更新达到目的。所述方法还包括:
步骤S40,检测标志位判断所述动态布局程序是否需要更新。
具体地,当接收到根据用户操作所触发的更新指令时,通过检测应用的标志位进行判断,所述动态程序是否需要更新。
步骤S50,当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
具体地,当检测到更新所述动态布局程序的指令时,获取服务器中更新后的动态布局程序所对应的JS第二压缩包,并下载所述JS第二压缩包,将所述压缩包按照应用加载动态布局程序的流程,进行解析、转换及渲染。
如图9所示,步骤S50包括:
步骤S51,当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
具体地,程序启动时判断是否需要远程加载JS第二压缩包,即判断是否需要加载更新后的JS第二压缩包。若判断需要加载更新后的JS第二压缩包,进一步向服务器确认是否存在更新的JS第二压缩包。
步骤S52,当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
具体地,当服务器存在更新的JS第二压缩包时,下载所述JS第二压缩包,将其加载到本地并传送至JS解析引擎。先把压缩包解压缩,然后加载进JS解析引擎进行解析,映射及渲染。
通过判断是否需要更新然后再决定下载,同时能减少数据传输,加快应用程序的启动速度和布局显示速度。
本发明进一步提供一种移动应用动态布局的系统。
参照图3,图3为本发明移动应用动态布局的系统第一实施例的功能模块示意图。
本实施例中,该系统包括:
第一获取模块10,用于获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;
具体地,具体地,本实施中选取JS脚本语言为例进行说明。当检测到根据用户操作触发的加载动态布局程序指令时,从服务器中获取动态布局程序的压缩包,并将该压缩包加载到移动平台中。
在本步骤之前通过开发者开发层实现动态布局程序的编写。
该系统还包括:
上传模块01,用于当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
具体地,当接收到外界发送的使用JS脚本语言编写的动态程序对应的压缩包时,将所述压缩包上传至服务器上进行存储。由于JS脚本语言具有放在服务器上然后到下发到客户端的特性,就像网页支持热更新一样,所以,我们的系统就支持热更新。
解析模块20,用于通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;
具体地,应用将所述压缩包加载到本地后,通过JS解析引擎将所述压缩包由磁盘解析到内存中,并将其转换为内存对象。获取所述内存对象后,JS桥和JAVA桥会根据预存的映射表将所述内存对象映射为本地对象。
渲染模块30,用于将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。
具体地,在将所述内存对象映射为本地对象后,进一步将所述对象挂载到控件模块中,将程序中的本地对象渲染成可在界面显示的本地对象。
本实施例提供一种移动应用动态布局的系统,所述系统通过获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;将所述本地对象挂载到控件模块中进行渲染使其在界面中显示。本发明通过使用通用的JS脚本编程语言编写动态布局程序,然后通过JS解析引擎将所述动态布局程序解析转换为本地对象,以实现应用程序的动态布局本地化。由于JS脚本语言编写的程序可以上传对应的压缩包到服务器然后下发到客户端进行升级,因此,本发明可以通过下载压缩包实现热更新。通过上述方式,本发明在保证用户体验的同时能够实现热更新,并且采用通用的JS脚本编程语言编写,便于扩展和推广。
为了进一步说明从用户启动应用开始来加载本系统的流程,解析模块20包括:
初始化单元21,用于初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
具体地,初始化全局管理对象,启动应用的第一个流程是初始化全局管理对象。把必要的全局设置进行初始化,是为后续流程提供应用配置。初始化根UI控件模块,是要渲染视觉元素,首先将根元素进行初始化,然后在根元素上挂载子元素。同时初始化核心框架模块,初始化框架的核心框架模块包块层次管理等。
加载单元22,用于根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
具体地,全局管理对象创建Java模块注册表、JS模块注册表。只有先把各个控件模块注册到这两个映射表中,才能够解析后面JS脚本加载进来的对象。装载器加载JS压缩包、并传给JS解析引擎。装载器根据全局管理对象的加载方式,加载路径去请求或者加载JS压缩包,并传递给解析引擎。
转换单元23,用于通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
具体地,通过解析引擎将所述动态布局程序解析并转换为内存对象,然后通过Java和JS桥将内存对象映射为本地对象,然后挂载到根UI控件进行渲染。
参照图4,图4为本发明移动应用动态布局的系统第二实施例的功能模块示意图;
为了使客户端应用需要发布新版本时,不需要通过应用市场让用户去更新应用,而是通过热更新达到目的。该系统还包括:
判断模块40,用于检测标志位判断所述动态布局程序是否需要更新;
具体地,当接收到根据用户操作所触发的更新指令时,通过检测应用的标志位进行判断,所述动态程序是否需要更新。
第二获取模块50,用于当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
具体地,当检测到更新所述动态布局程序的指令时,获取服务器中更新后的动态布局程序所对应的JS第二压缩包,并下载所述JS第二压缩包,将所述压缩包按照应用加载动态布局程序的流程,进行解析、转换及渲染。
所述第二获取模块50包括:
判断单元51,用于当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
具体地,程序启动时判断是否需要远程加载JS第二压缩包,即判断是否需要加载更新后的JS第二压缩包。若判断需要加载更新后的JS第二压缩包,进一步向服务器确认是否存在更新的JS第二压缩包。
转换单元52,用于当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
具体地,当服务器存在更新的JS第二压缩包时,下载所述JS第二压缩包,将其加载到本地并传送至JS解析引擎。先把压缩包解压缩,然后加载进JS解析引擎进行解析,映射及渲染。
通过判断是否需要更新然后再决定下载,同时能减少数据传输,加快应用程序的启动速度和布局显示速度。
如图5所示,本系统包含三个层次:动态布局开发层(JS层)、解析引擎层(C++层)、本地化层(Java层)。
层次具体功能如下:
1)JS层:JS层是开发者开发层,用于实现产品功能的主要层面。它包含UI(UserInterface,用户交互)布局、组件、生命周期管理。在开发的时候,布局主要是通过CSS(Cascading Style Sheets,层叠样式表)加上JS来实现,而在JS需要定义所需组件,以及进行生命周期的管理。
2)C++层:这一层是封装了JS解析引擎。JS引擎加载JS文件,将脚本文件解析成需要渲染的对象,然后通过Jni接口传递给Java层使用。
3)Java层:这一层是实现本地化渲染的层次。它包含原生布局、桥接器、工具库、模块。原生布局是我们最终需要生成的结果;桥接器是实现映射的关键、工具库则包含图片库、Http库等工具库,实现网络图片加载和Http的请求、模块则是平台本地化模块,例如对话框、视图、列表、输入框、文本等。
通过上述三层,实现JS脚本编写程序就能够生成本地化布局。
为了能够将JS动态布局的事件转化为本地布局的事件。以下详细说明从JS程序解析成移动平台本地程序的具体流程。
首先从JS层然后通过JS桥和Java桥映射到Java层,回调过程则反过来。JS桥和Java桥是类似于注册表的两个模块,JS桥完成JS调用及回调侧的注册;Java桥则实现Java层模块映射和注册及回调的注册。
如图6所示的是JS与Java通信的时序图,具体步骤如下:
Step1:JS模块对象调用方法。例如用户点击应用的一个按钮,这个按钮是JS的模块对象,点击触发了点击事件,进而导致点击监听方法的调用,该方法的调用会传递到JS桥;
Step2:JS桥获取{moduleId,methodId,args},即{模块标识,方法标识,参数列表}。这里面的具体工作是JS解析引擎加载JS脚本,解析JS脚本,然后构建好映射表,当用户触发的时候会由JS传递{moduleId,methodId,args}参数到JS桥,JS桥通过JS桥的注册表知道其含义;
Step3:注册回调CallbackId(回调标识)。注册回调方法,以CallbackId去标示它。回调是当调用逆向返回的时候进行调用,用于处理调用结果的一个方法。
Step4:发送{moduleId,methodId,callbackId,args},即{模块标识,方法标识,回调标识,参数列表}到Java桥;
Step5:Java桥收到后进行解析及映射。通过查找Java桥的注册表进行解析和映射。例如对话框模块、文本模块、列表模块、自定义组件模块等。
Step6:创建回调Block(块)。Java桥的回调块里面可以设置JS桥侧的回调方法以及额外的一些方法。
Step7:调用本地方法。例如解析到的是对话框弹窗,那么在这一步则调用对话框的显示方法进行显示;
Step8:调用Block回调方法。本地方法执行完毕后,进行逆向回调处理。首先调用Java桥的Block回调方法。
Step9:Java桥回调CallbackId对应的方法。
Step10:JS桥回调JS回调方法。
至此,JS到Java的调用流程以及从Java回调到JS的流程结束。
如图7所示,实现JS动态布局的事件转化为本地布局的事件的本地化模块包含如下模块:
解析渲染引擎:解析渲染引擎是指JS的解析引擎,它支持各个版本的JS解析,是一个采用C++编写的本地库。之所以采用C++实现是为了提高其解析效率,解析渲染引擎完成了从JS脚本到内存对象的转换;而Java层又通过Jni(Java Native Interface,Java本地化接口)接口来进行获取和通信。
全局管理对象:全局管理对象实现一些需要应用全局属性的管理,例如脚本加载方式、脚本加载路径、是否调试等。
Java层模块注册表:Java层模块注册表包含平台系统控件的注册以及自定义控件的注册。新开发一个本地化组件的时候,需要按照注册模块的流程注册该自定义组件,而系统组件则不需要。
核心框架模块:这个模块是完成诸如初始化、核心流程、层次管理等工作的一个模块。
根UI控件:所有的应用控件都来自于应用的根UI控件,依照树形关系进行连接。所以根UI控件是根节点,是所有视觉元素的祖先。
JS层模块注册表:JS层模块注册表是注册JS模块、方法的一个表,用于登记JS组件和方法的模块。通过JS模块注册表和Java模块注册表两个映射,来实现模块和方法的解析映射。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种移动应用动态布局的方法,其特征在于,所述方法包括以下步骤:
获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;
通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;
将所述本地对象挂载到控件模块中进行渲染使其在界面中显示;
其中,所述方法还包括:
检测标志位判断所述动态布局程序是否需要更新;
当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
2.如权利要求1所述的方法,其特征在于,所述获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写的步骤之前包括:
当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
3.如权利要求1所述的方法,其特征在于,所述通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象的步骤包括:
初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
4.如权利要求1所述的方法,其特征在于,所述当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染的步骤包括:
当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
5.一种移动应用动态布局的系统,其特征在于,所述系统包括:
第一获取模块,用于获取服务器中动态布局程序的压缩包,并将所述压缩包加载到本地,其中,所述动态布局程序使用JS脚本语言编写;
解析模块,用于通过JS解析引擎将所述压缩包解析并转换为内存对象,然后将所述内存对象映射为本地对象;
渲染模块,用于将所述本地对象挂载到控件模块中进行渲染使其在界面中显示;
其中,所述系统还包括:
判断模块,用于检测标志位判断所述动态布局程序是否需要更新;
第二获取模块,用于当判断所述动态布局程序需要更新时,获取服务器中的第二动态布局程序对应的第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
6.如权利要求5所述的系统,其特征在于,所述系统还包括:
上传模块,用于当接收到外界发送的使用JS脚本语言编写的动态布局程序所对应的压缩包,将其上传至服务器。
7.如权利要求5所述的系统,其特征在于,所述解析模块包括:
初始化单元,用于初始化全局管理对象以及控件模块,通过全局管理对象创建映射表,并将控件模块注册到所述映射表中;
加载单元,用于根据全局管理对象的加载方式和加载路径,在装载器中加载所述压缩包,并将其传送给JS解析引擎;
转换单元,用于通过JS解析引擎将所述动态布局程序解析并转换为内存对象,并通过所述映射表将所述内存对象映射为本地对象。
8.如权利要求5所述的系统,其特征在于,所述第二获取模块包括:
判断单元,用于当判断所述动态布局程序需要更新时,判断服务器中是否存在第二动态布局程序对应的第二压缩包;
转换单元,用于当服务器中存在所述第二压缩包时,获取所述第二压缩包,并将所述第二压缩包进行解析、转换并渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710082452.2A CN106815055B (zh) | 2017-02-15 | 2017-02-15 | 移动应用动态布局的方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710082452.2A CN106815055B (zh) | 2017-02-15 | 2017-02-15 | 移动应用动态布局的方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106815055A CN106815055A (zh) | 2017-06-09 |
CN106815055B true CN106815055B (zh) | 2020-06-23 |
Family
ID=59111099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710082452.2A Active CN106815055B (zh) | 2017-02-15 | 2017-02-15 | 移动应用动态布局的方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815055B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121557A (zh) * | 2017-12-28 | 2018-06-05 | 福州汇思博信息技术有限公司 | 远程控制安卓设备的方法及计算机可读存储介质 |
CN108804177A (zh) * | 2018-05-23 | 2018-11-13 | 北京五八信息技术有限公司 | 更新界面视图的方法、装置、计算机设备及存储介质 |
CN111596996A (zh) * | 2020-05-07 | 2020-08-28 | 湖南金鹰卡通传媒有限公司 | 动态化布局方法以及系统 |
CN111857782B (zh) * | 2020-07-27 | 2021-11-16 | 企查查科技有限公司 | 界面更新方法、装置、计算机设备和存储介质 |
CN112559121A (zh) * | 2020-10-20 | 2021-03-26 | 四川天邑康和通信股份有限公司 | 一种IPTV浏览器JavaScript扩展对象的处理方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194730B2 (en) * | 2000-06-03 | 2007-03-20 | International Business Machines Corporation | System and method for the configuration of software products |
CN105404622A (zh) * | 2014-08-20 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种客户端页面显示方法、装置及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799447B (zh) * | 2012-06-19 | 2016-12-21 | 优视科技有限公司 | 移动终端内部软件的更新方法及系统 |
CN105354013B (zh) * | 2014-08-18 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN105824900A (zh) * | 2016-03-14 | 2016-08-03 | 传线网络科技(上海)有限公司 | 一种基于react-native的页面展示系统 |
-
2017
- 2017-02-15 CN CN201710082452.2A patent/CN106815055B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194730B2 (en) * | 2000-06-03 | 2007-03-20 | International Business Machines Corporation | System and method for the configuration of software products |
CN105404622A (zh) * | 2014-08-20 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种客户端页面显示方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106815055A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815055B (zh) | 移动应用动态布局的方法与系统 | |
CN106997298B (zh) | 一种应用资源获取方法及装置 | |
CN108614776B (zh) | 跨语言协议测试请求的动态构建方法和系统 | |
US10956179B1 (en) | Third party integration of plugins and widgets | |
US20110154305A1 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
WO2019000627A1 (zh) | 软件定制服务器、方法、程序及计算机可读存储介质 | |
CN106686200B (zh) | 移动应用程序更新方法、移动终端及更新系统 | |
JP2015167014A (ja) | ウェブアプリケーションを実施する方法、装置、サーバ、及びシステム | |
CN111010438B (zh) | 远程过程调用方法、装置、服务器及存储介质 | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
CN106911500B (zh) | 物理机的配置方法、装置和物理机 | |
CN106850563B (zh) | 访问支付终端的方法及装置 | |
CN107193565B (zh) | 跨移动端开发原生app的方法 | |
CN104536752A (zh) | 自动生成apk的方法及装置 | |
US20160004782A1 (en) | Script caching method and information processing device utilizing the same | |
CN113761412A (zh) | 应用页面的显示方法、装置、电子设备、介质及应用系统 | |
CN107239265B (zh) | Java函数与C函数的绑定方法及装置 | |
CN104796929A (zh) | 网络调试方法及装置 | |
CN109240673B (zh) | 一种基于react-native的视图动态加载更新方法及系统 | |
CN110825373A (zh) | 一种移动端动态化方法及装置 | |
US20170168923A1 (en) | System and method for creating a test application | |
CN110874278A (zh) | 外部系统的嵌入方法、工作流系统、设备及存储介质 | |
JP2006276939A (ja) | 仮想マシンのプログラム起動方法およびクライアントサーバシステム | |
CN107391132B (zh) | 目标App执行预设动作的方法及装置、设备 | |
KR102316084B1 (ko) | M2m 어플리케이션 테스트 장치 및 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |