1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 一种移动端动态化方法及装置与流程

一种移动端动态化方法及装置与流程

时间:2023-08-01 12:01:29

相关推荐

一种移动端动态化方法及装置与流程

本发明涉及移动客户端动态化技术领域,尤其涉及一种移动端动态化方法及装置。

背景技术:

随着移动互联网、云计算、物联网等信息技术的飞速发展,移动终端的应用愈来愈广泛,各种应用程序(application,app)层出不穷,种类繁多,并且随着网络的信息量日益增多,为满足用户的阅览需求,app的界面呈现内容也在不断更新中,用户打开app时一开始看到的界面是最近一次停留的页面,之后看到的界面是实时更新后的界面,这里就运用到了移动端动态化技术。

目前移动端动态化技术方案在app的软件开发工具包(softwaredevelopmentkit,sdk)中内置xml模板文件,再使用渲染方式处理移动端的动态化,这种方式下由于xml模板文件的内置导致了sdk包体积较大,不论是安装时还是使用app时都会占有较多存储空间。

现有技术的动态化处理方式中sdk包体积较大,在提倡轻量级处理的今天,显然是一个亟待解决的问题。

技术实现要素:

本申请实施例提供一种移动端动态化方法及装置,解决了现有技术中由于xml模板文件内置导致sdk包体积较大的问题。

本申请实施例提供一种移动端动态化的方法,具体包括:

启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;

根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

一种可能的实现方式,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面包括:

当所述第二xml模板文件和所述第一xml模板文件不同,所述第二脚本文件和所述第一脚本文件相同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,以及根据所述网络视图执行所述第一脚本文件,获得所述app的更新界面。

一种可能的实现方式,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面还包括:

当所述第二xml模板文件和所述第一xml模板文件不同,且所述第二脚本文件和所述第一脚本文件不同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,根据所述网络视图执行所述第二脚本文件,获得所述app的更新界面。

一种可能的实现方式,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面还包括:

当所述第二脚本文件和所述第一脚本文件不同,所述第二xml模板文件和所述第一xml模板文件相同时;

根据所述网络视图执行所述第二脚本文件,以及根据所述原生渲染引擎渲染所述第一xml模板文件,获得所述app的更新界面。

一种可能的实现方式,所述当所述第二资源包与所述第一资源包不同时,之后还包括:

获得所述app的更新界面后,将所述第一资源包替换为所述第二资源包,并存储在所述移动终端本地的安全存储区域。

一种可能的实现方式,还包括:

在确定所述第二资源包与所述第一资源包相同时,保持所述app的开启界面。

一种可能的实现方式,还包括:

当所述第一xml模板文件有更新时,将所述第一xml模板文件的更新转化成系统生命周期函数中的参数值,所述系统生命周期函数用于与所述第一脚本文件绑定,并将所述参数值传递给第一脚本文件中的页面请求指令;

通过所述网络视图执行所述第一脚本文件中的页面请求指令,将所述第一xml模板文件的更新上传至服务器端并重新存储。

本申请实施例提供一种移动端动态化的装置,具体包括:

第一处理单元,用于启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

执行单元,用于根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

第二处理单元,用于在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

一种可能的实现方式,所述第二处理单元还用于:

当所述第二xml模板文件和所述第一xml模板文件不同,所述第二脚本文件和所述第一脚本文件相同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,以及根据所述网络视图执行所述第一脚本文件,获得所述app的更新界面。

本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,使得计算机执行上述任一种可能的设计中的方法。

利用本发明提供的一种移动端动态化方法及装置,具有以下有益效果:通过解析xml模板并转换成xml模板的规则的方式,将xml模板文件独立出来,这样可以不用内置在app的sdk中,从而减少了sdk包较大的体积。

附图说明

图1为本申请实施例提供的一种移动端动态化方法的技术架构示意图;

图2为本申请实施例提供的一种移动端动态化方法的流程图;

图3为本申请实施例提供的一种移动端动态化方法的资源包执行过程的示意图;

图4为本申请实施例提供的一种移动端动态化方法的资源包更新的流程图;

图5为本申请实施例提供的一种移动端动态化方法的装置结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

现有技术中,app的sdk中内置了可扩展标记语言(extensiblemarkuplanguage,xml)模板文件,其中xml模板文件包括用户界面(userinterface,ui)的布局、字体格式以及行间距等,在开启app时,系统直接调用xml模板文件,应用网络视图webview渲染方式或者原生native渲染方式得到第一层渲染界面。但因为xml模板文件是内置于sdk的原因,会导致sdk的体积较大,占据较多存储空间;同时,如果使用webview渲染方式,它的渲染效率并不太高,界面偶尔会有卡顿或白屏的现象;如果使用native渲染方式,app应用开发者在进行应用开发前需要学习一些相关技术,比如react.js或vue.js,这种情况下开发的周期会拉长、人力成本会上升。

图1为本申请实施例提供的一种移动端动态化方法的技术架构示意图。技术架构包括服务器101、资源包102、xml模板文件103、脚本文件104、手机105、app106、sdk107。

其中,服务器101包含资源包102,用于存储资源包102、并发送资源包102给app106。

资源包102包含xml模板文件103和脚本文件104,用于存储xml模板文件103和脚本文件104。

xml模板文件103,用于用户界面ui的布局、字体格式以及行间距的记录。

脚本文件104,用于记录页面请求、数据转换、事件响应和业务字段的指令,这里的脚本文件104是用javascript语言编写。

手机105,用于承载app106的安装、使用,以及用于存储资源包102。

app106,用于安装在手机105内,并运行使用。

sdk107,内置于app106内,用于将开发者解析xml模板再转换成的xml模板的规则内置其中;

还用于打开app106时,对资源包102进行渲染时的调用处理。

图2为本申请实施例提供的一种移动端动态化方法的流程图,通过本申请实施例提供的这种移动端动态化方法能够减少sdk包的体积,并能够复用现有移动开发技术从而降低开发周期和成本。具体的技术方案如下。

步骤201:启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

步骤202:根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;

步骤203:根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

步骤204:在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

其中,步骤201具体的,在用户启动移动终端的app时,先加载存储在移动终端本地的安全存储区域的第一资源包。这里的第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件,其中,第一脚本文件包括第一指令,第一指令是用于设置页面请求、数据转换、事件响应以及业务字段的第一标记;第一xml模板文件包括第一记录,第一记录用于设置用户界面ui的布局、字体格式以及行间距的第一参数。这里的第一资源包还包含有其他辅助文件,如初始化的静态数据等。

步骤202具体的,解析出xml模板中的内容及内容间的对应关系,再转换成xml模板的规则,将这个规则内置于app内的sdk中。通过这种方式的处理可以将xml模板独立出来,不必非要内置在sdk中,app应用的开发者只需要按照规则开发相应的xml模板文件就可以,从而使app应用的开发者不用考虑xml模板以及怎样在app系统中调用xml模板,减轻了开发的工作量。

步骤203具体的,app内的sdk根据规则调用xml模板,并根据native渲染引擎渲染第一xml模板文件,根据webview执行第一脚本文件;得到app的开启界面。

其中,native渲染引擎渲染第一xml模板文件得到app的开启界面呈现的动态化;

webview执行第一脚本文件得到app的开启界面内在逻辑的动态化;

根据app的开启界面呈现的动态化和内在逻辑的动态化得到完整动态化的app的开启界面。

举例来说,这里得到的app的开启界面对应的场景是:新安装的app在打开时呈现的界面,或者已经打开过的app,再开启时最近一次停留的界面。

步骤204具体的,在获得所述app的开启界面之后的预设时间段内,比如5秒内,从服务器端获取第二资源包,对第二资源包进行解密解包,得到其中的第二xml模板文件和第二脚本文件;将第二资源包与存储在移动终端本地的安全存储区域中的第一资源包进行比较,检查资源包是否有更新。在确定所述第二资源包与所述第一资源包不同时的具体情况如下所述。

(1)当第二xml模板文件和第一xml模板文件不同,第二脚本文件和第一脚本文件相同时;

根据原生渲染引擎渲染第二xml模板文件,以及根据网络视图执行第一脚本文件,获得app的更新界面。

(2)当第二xml模板文件和第一xml模板文件不同,且第二脚本文件和第一脚本文件不同时;

根据原生渲染引擎渲染第二xml模板文件,根据网络视图执行第二脚本文件,获得app的更新界面。

(3)当第二脚本文件和第一脚本文件不同,第二xml模板文件和第一xml模板文件相同时;

根据网络视图执行第二脚本文件,以及根据原生渲染引擎渲染第一xml模板文件,获得app的更新界面。

举例来说,这里得到的app的更新界面对应的场景是:用户在打开app界面时在短暂停留之前呈现的界面后,呈现的实时更新后的界面。

通过上述步骤,将这些模板文件从原来内置在sdk中的方式改为独立的方式存储在移动终端本地的安全存储区域以及服务器端,不但减轻了sdk包的体积大小,而且可以使sdk变成通用的方式,跨平台、不同app应用都可直接使用。

图3为本申请实施例提供的一种移动端动态化方法的资源包执行过程的示意图,如图所示,资源包执行并得到app的开启界面或者app的更新界面的过程详细描述如下。

sdk根据规则调用xml模板文件,并根据native渲染引擎渲染xml模板文件,同时将native架构中的系统生命周期函数与脚本文件绑定,根据webview执行脚本文件。这里的系统生命周期对应app的创建、运行和销毁的各个环节,当app创建、销毁或者在运行时涉及到xml模板文件有更改时,将更改的操作转化为系统生命周期函数中的参数值,并转发给绑定的脚本文件,由webview执行脚本文件将app创建、销毁或在运行时涉及到xml模板文件更改的页面请求指令发送至服务器端,服务器端接收到请求指令后对资源包进行更新,再将更新后的资源包发送给app进行界面渲染。这里的app创建是指开启app,app销毁是指关闭app。

此外,在用户安装新的app后,第一次使用时,通过内置资源包的方式获取第一xml模板文件和第一脚本文件,按照native渲染引擎渲染第一xml模板文件,根据webview执行第一脚本文件对app的界面进行渲染。之后再从服务器端拉取第二资源包进行界面渲染。而如果在app内没有内置资源包,则在第一次使用时,app的界面会有短暂的白屏现象出现,但因为在打开app的同时,native架构中的系统生命周期函数的创建环节引起的xml模本文件更新的页面请求会触发并转给绑定的脚本文件,由webview执行脚本文件将页面请求指令发送至服务器端,服务器端接收到指令后对资源包进行更新,再从服务器端拉取更新后的资源包进行界面渲染,所以app界面在出现短暂的白屏的现象后即呈现出实时更新的动态界面。

图4为本申请实施例提供的一种移动端动态化方法的资源包更新的流程图,如图所示,具体步骤如下。

步骤401:本地资源包的尝试预加载。

具体的,将用户开启app获取到的资源包存储在移动终端本地的安全存储区域,当用户再次开启app时,首先根据存储在移动终端本地的安全存储区域的资源包进行本地预加载,根据资源包里的xml模板文件和脚本文件,按照native渲染引擎渲染xml模板文件,根据webview执行脚本文件对app的界面进行第一次渲染得到app的开启界面。

步骤402:服务器端的资源包版本查询与更新。

具体的,当对资源包的xml模板文件和脚本文件有更新时,在服务器端查询资源包版本并对应进行更新。例如,开发者对xml模本文件中的字体颜色有改动或脚本文件中的按钮的事件响应有更改等。

步骤403:服务器端的资源包下载、校验及缓存。

具体的,再从服务器端下载更新后的资源包,解密解包后,与存储在移动终端本地的安全存储区域的资源包进行比较,看两者是否有不同,若两者有不同则将存储在移动终端本地的安全存储区域的资源包更新成新的资源包;若两者相同,则存储在移动终端本地的安全存储区域的资源包保持不变。

图5为本申请实施例提供的一种移动端动态化方法的装置结构示意图。包括第一处理单元501、执行单元502和第二处理单元503,详细描述如下。

第一处理单元501,用于启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

执行单元502,用于根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

第二处理单元503,用于在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

一种可能的实现方式,所述第二处理单元,还用于:

当所述第二xml模板文件和所述第一xml模板文件不同,所述第二脚本文件和所述第一脚本文件相同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,以及根据所述网络视图执行所述第一脚本文件,获得所述app的更新界面。

最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

技术特征:

1.一种移动端动态化的方法,其特征在于,包括:

启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;

根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

2.如权利要求1所述的方法,其特征在于,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面包括:

当所述第二xml模板文件和所述第一xml模板文件不同,所述第二脚本文件和所述第一脚本文件相同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,以及根据所述网络视图执行所述第一脚本文件,获得所述app的更新界面。

3.如权利要求1所述的方法,其特征在于,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面还包括:

当所述第二xml模板文件和所述第一xml模板文件不同,且所述第二脚本文件和所述第一脚本文件不同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,根据所述网络视图执行所述第二脚本文件,获得所述app的更新界面。

4.如权利要求1所述的方法,其特征在于,所述在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面还包括:

当所述第二脚本文件和所述第一脚本文件不同,所述第二xml模板文件和所述第一xml模板文件相同时;

根据所述网络视图执行所述第二脚本文件,以及根据所述原生渲染引擎渲染所述第一xml模板文件,获得所述app的更新界面。

5.如权利要求1所述的方法,其特征在于,所述当所述第二资源包与所述第一资源包不同时,之后还包括:

获得所述app的更新界面后,将所述第一资源包替换为所述第二资源包,并存储在所述移动终端本地的安全存储区域。

6.如权利要求1所述的方法,其特征在于,还包括:

在确定所述第二资源包与所述第一资源包相同时,保持所述app的开启界面。

7.如权利要求1所述的方法,其特征在于,还包括:

当所述第一xml模板文件有更新时,将所述第一xml模板文件的更新转化成系统生命周期函数中的参数值,所述系统生命周期函数用于与所述第一脚本文件绑定,并将所述参数值传递给第一脚本文件中的页面请求指令;

通过所述网络视图执行所述第一脚本文件中的页面请求指令,将所述第一xml模板文件的更新上传至服务器端并重新存储。

8.一种移动端动态化的装置,其特征在于,包括:

第一处理单元,用于启动应用程序app,并加载用于生成所述app的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言xml模板文件;

执行单元,用于根据xml模板规则调用所述第一资源包中的所述第一xml模板文件;根据原生渲染引擎渲染所述第一xml模板文件,并根据网络视图执行所述第一脚本文件,获得所述app的开启界面;

第二处理单元,用于在获得所述app的开启界面之后的预设时间段内,如果从服务器端获取第二资源包,所述第二资源包中包括第二脚本文件和第二xml模板文件;在确定所述第二资源包与所述第一资源包不同时,根据所述原生渲染引擎渲染所述第二资源包中的第二xml模板文件,和/或,根据所述网络视图执行所述第二资源包中的第二脚本文件,获得所述app的更新界面。

9.如权利要求8所述的装置,其特征在于,所述第二处理单元还用于:

当所述第二xml模板文件和所述第一xml模板文件不同,所述第二脚本文件和所述第一脚本文件相同时;

根据所述原生渲染引擎渲染所述第二xml模板文件,以及根据所述网络视图执行所述第一脚本文件,获得所述app的更新界面。

10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。

技术总结

本发明公开了一种移动端动态化方法及装置,涉及移动客户端动态化技术领域,其中方法包括:启动应用程序APP,并加载用于生成所述APP的开启界面的第一资源包;所述第一资源包中包括第一脚本文件和第一可扩展标记语言XML模板文件;根据XML模板规则调用所述第一资源包中的所述第一XML模板文件;根据原生渲染引擎渲染所述第一XML模板文件,并根据网络视图执行所述第一脚本文件,获得所述APP的开启界面。

技术研发人员:刘盟;顾少丰

受保护的技术使用者:上海上湖信息技术有限公司

技术研发日:.10.10

技术公布日:.02.21

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。