基于时间戳机制的应用启动方法、装置及设备与流程

文档序号:31406191发布日期:2022-09-03 06:54阅读:81来源:国知局
基于时间戳机制的应用启动方法、装置及设备与流程

1.本说明书涉及应用启动技术领域,尤其是涉及一种基于时间戳机制的应用启动方法、装置及设备。


背景技术:

2.客户端在启动时,一般需要后台系统的接口获取配置数据(如广告图片、主题数据、功能开关、功能入口位置等数据),由于后台系统功能解耦的要求,不同配置数据需通过不同接口请求,导致客户端启动时需要调用大量接口来获取最新的数据信息,从而大大拖慢了客户端的启动时长。


技术实现要素:

3.本说明书实施例的目的在于提供一种基于时间戳机制的应用启动方法、装置及设备,以降低客户端的启动时长。
4.为达到上述目的,一方面,本说明书实施例提供了一种基于时间戳机制的应用启动方法,包括:
5.在启动时向后台系统获取配置项集合对应的更新时戳列表;所述更新时戳列表中包含所述配置项集合内每个配置项的第一更新时戳;
6.当启动至需要加载目标配置项时,将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较;
7.当目标配置项的第一更新时戳不晚于目标配置项的第二更新时戳时,从本地加载目标配置项的数据。
8.本说明书实施例的基于时间戳机制的应用启动方法中,在将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较之后,还包括:
9.当目标配置项的第一更新时戳晚于目标配置项的第二更新时戳时,从所述后台系统加载目标配置项的数据。
10.本说明书实施例的基于时间戳机制的应用启动方法中,在启动时向后台系统获取配置项集合对应的更新时戳列表,包括:
11.在启动时通过访问时间戳接口向后台系统获取配置项集合对应的更新时戳列表。
12.本说明书实施例的基于时间戳机制的应用启动方法中,在从所述后台系统加载目标配置项的数据之后,还包括:
13.本地保存从所述后台系统加载目标配置项的数据及其更新时戳。
14.本说明书实施例的基于时间戳机制的应用启动方法中,所述配置项集合中的配置项包括:
15.主题参数配置;
16.功能开关配置;
17.功能入口位置配置;
18.广告信息配置。
19.本说明书实施例的基于时间戳机制的应用启动方法中,所述后台系统包括配置中心。
20.另一方面,本说明书实施例还提供了一种基于时间戳机制的应用启动装置,包括:
21.获取模块,用于在启动时向后台系统获取配置项集合对应的更新时戳列表;所述更新时戳列表中包含所述配置项集合内每个配置项的第一更新时戳;
22.比较模块,用于当启动至需要加载目标配置项时,将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较;
23.加载模块,用于当目标配置项的第一更新时戳不晚于目标配置项的第二更新时戳时,从本地加载目标配置项的数据。
24.另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
25.另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
26.另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
27.由以上本说明书实施例提供的技术方案可见,本说明书实施例中,当更新时戳列表中的配置项对应的更新时戳与本地存储的该配置项的更新时戳相同时,表明地存储的该配置项的数据为即最新数据,可直接加载本地存储的该配置项的数据,而无需再向配置中心请求,从而避免了无效的接口调用,进而减小了客户端的启动耗时,即加速了客户端的启动,提高了用户的客户端使用体验。
附图说明
28.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
29.图1示出了本说明书一些实施例中基于时间戳机制的应用启动的场景示意图;
30.图2示出了本说明书一些实施例中基于时间戳机制的应用启动方法的流程图;
31.图3示出了本说明书一些实施例中app通过多个接口与配置中心通信的示意图;
32.图4示出了本说明书一些实施例中基于时间戳机制的应用启动装置的结构框图;
33.图5示出了本说明书一些实施例中计算机设备的结构框图。
34.【附图标记说明】
35.10、客户端;
36.20、配置中心;
37.41、获取模块;
38.42、比较模块;
39.43、加载模块;
40.502、计算机设备;
41.504、处理器;
42.506、存储器;
43.508、驱动机构;
44.510、输入/输出接口;
45.512、输入设备;
46.514、输出设备;
47.516、呈现设备;
48.518、图形用户接口;
49.520、网络接口;
50.522、通信链路;
51.524、通信总线。
具体实施方式
52.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
53.本说明书实施例涉及客户端的启动技术。其中,客户端可以为自助终端设备、移动终端(即智能手机)、显示器、台式电脑、平板电脑、笔记本电脑、数字助理或智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜或智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件(例如移动端应用(app)等)。例如,以客户端为app为例,app中大多数的配置信息不会频繁变动,但app启动时并不知晓后台系统中的配置信息是否发生变动,所以每次启动时都需要调大量接口以更新app本地的数据,从而导致存在大量的无效的接口调用,进而大大拖慢了app的启动时长,影响了用户体验。
54.有鉴于此,本说明书实施例提供了改进的客户端的启动技术,并在该启动技术引入了时间戳的概念。如图1所示,作为后台系统的配置中心20可以在完成配置信息更新后,自动更新配置信息的更新时戳。客户端10则在启动时将配置中心20提供配置信息的更新时戳,与本地存储的配置信息的更新时戳进行比较,若配置中心20提供配置信息的更新时戳晚于本地存储的配置信息的更新时戳,则从配置中心20请求更新后的配置信息并加载;若配置中心20提供配置信息的更新时戳与本地存储的配置信息相同时,则加载本地的配置信息,而无需从配置中心20请求数据,从而大大减少无效的接口请求,缩减了客户端的启动时长,提升了用户体验。
55.在一些实施例中,配置中心20可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软件(例如统一管理各种应用配置项(以下简称配置项)的基础服务组件)。
56.本说明书实施例提供了一种基于时间戳机制的应用启动方法,可以应用于上述客户端(例如app)侧,参考图2所示,在一些实施例中,基于时间戳机制的应用启动方法可以包括以下步骤:
57.步骤201、在启动时向后台系统获取配置项集合对应的更新时戳列表;所述更新时戳列表中包含所述配置项集合内每个配置项的第一更新时戳。
58.以安卓(android)app为例,安卓app的启动大致包括如下过程:
59.(1)、启动app进程:
60.当用户点击app图标时,桌面启动器(launcher)会调用启动活动(startactivity())函数,通过粘合剂(binder)机制跨进程通信,发送消息给系统服务(system_server)进程。在system_server进程中,由活动管理器服务(activity manager service,ams)通过套接口(socket)通信告知接合子(zygote)进程派生出一个子进程(即app进程)。
61.(2)、开启app主线程:
62.app进程启动后,会实例化一个活动线程(activitythread),并执行其主(main)函数,同时会创建应用线程(applicationthread)、循环者(looper)、搬运工(handler)对象,开启主线程消息循环(looper.loop())。
63.(3)、创建并初始化应用(application)和活动(activity):
64.activitythread的main函数通过调用关联(attach)方法进行binder通信,通知system_server进程执行ams的关联应用(attachapplication)方法。在attachapplication方法中,ams分别通过绑定应用(bindapplication)、调度启动活动(schedulelaunchactivity)方法,通知app进程的主线程handler,对app进程的application和activity进行初始化,并执行application、activity的生命周期。
65.(4)、用户界面(user interface,ui)布局和绘制:主线程handler初始化activity时,会执行创建手机窗口(phonewindow)、初始化布局视图(decorview)的操作,并且添加布局到decorview的内容视图(contentview)中。
66.因此,在本说明书的实施例中,启动时具体可以是指:创建并初始化应用和活动阶段以及ui布局和绘制阶段。
67.配置项集合是客户端启动所需的配置项的集合,配置项集合中的配置项具体可以由系统或用户自定义。在一些实施例中,配置项集合中的配置项例如可以包括:主题参数配置、功能开关配置、功能入口位置配置和广告信息配置等。结合图3所示,以作为后台系统的配置中心20为例,除了设有针对客户端10的多个配置项的管理功能外,配置中心20还可以设有更新时间管理功能,以管理多个配置项的更新时间(例如在更新时戳列表中记录各个配置项的数据更新时间)。更新时戳列表中维护有配置项集合内每个配置项的最新更新时戳。在一示例性实施例中,更新时戳列表可以如下表1所示。
68.表1
69.客户端配置项更新时间客户端x配置项a2022/02/24 23:40:00客户端x配置项b2022/01/01 24:00:00客户端x配置项c2022/03/15 12:18:00客户端x
……
70.在此基础上,配置中心20可以对外暴露一个时间戳接口,以供客户端10基于该时间戳接口获取更新时戳列表。因此,在启动时向后台系统获取配置项集合对应的更新时戳列表,可以包括:在启动时通过访问时间戳接口向配置中心20获取配置项集合对应的更新时戳列表。
71.步骤202、当启动至需要加载目标配置项时,将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较。
72.例如,当启动至需要加载配置项a时,从更新时戳列表中找出配置项a对应的更新时戳,并与从本地存储的配置项a的更新时戳进行比较,以便于确认本地存储的配置项a的数据是否为最新数据。
73.在一些实施例中,如果客户端本次启动为首次启动,本地没有目标配置项的数据,则需向配置中心请求数据并加载。
74.步骤203、当目标配置项的第一更新时戳不晚于目标配置项的第二更新时戳时,从本地加载目标配置项的数据。
75.当目标配置项的第一更新时戳不晚于目标配置项的第二更新时戳时,表明本地存储的目标配置项的数据为即最新数据,因而可直接加载本地存储的目标配置项的数据,而无需再向配置中心20请求,从而避免了无效的接口调用,进而减小了客户端的启动耗时。例如,当启动至需要加载配置项a时,如果更新时戳列表中配置项a对应的更新时戳与本地存储的配置项a的更新时戳相同,则表明本地存储的配置项a的数据即为即最新数据,从而可以直接加载本地存储的配置项a的数据,而无需再向配置中心20请求。
76.一些实施例中,在步骤202之后还可以包括:当目标配置项的第一更新时戳晚于目标配置项的第二更新时戳时,从后台系统加载目标配置项的数据。当目标配置项的第一更新时戳晚于目标配置项的第二更新时戳时,表明本地存储的目标配置项的数据不是最新数据,因此需向配置中心20请求数据并加载。
77.为了方便下一次启动使用,在从所述后台系统加载目标配置项的数据之后,还可以本地保存从所述后台系统加载目标配置项的数据及其更新时戳。具体的,如果本地存储有目标配置项的旧数据,则用从后台系统加载目标配置项的数据替换该旧数据(包括更新时戳的替换);如果本地此前已保存目标配置项的数据;如果本次启动为首次启动,本地未存储有目标配置项的旧数据,则直接保存从后台系统加载目标配置项的数据及其更新时戳。
78.通过重复执行步骤202及其后续步骤,可以完成客户端启动时所需的所有配置项的加载。基于本说明书实施例的应用启动方法,当更新时戳列表中的配置项对应的更新时戳与本地存储的该配置项的更新时戳相同时,表明地存储的该配置项的数据为即最新数据,可直接加载本地存储的该配置项的数据,而无需再向配置中心请求,从而避免了无效的接口调用,进而减小了客户端的启动耗时,即加速了客户端的启动。
79.虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
80.与上述的基于时间戳机制的应用启动方法对应,本说明书实施例还提供了一种基于时间戳机制的应用启动装置,其可以配置于上述的客户端侧,参考图4所示,在一些实施
例中,基于时间戳机制的应用启动装置可以包括:
81.获取模块41,用于在启动时向后台系统获取配置项集合对应的更新时戳列表;所述更新时戳列表中包含所述配置项集合内每个配置项的第一更新时戳;
82.比较模块42,用于当启动至需要加载目标配置项时,将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较;
83.加载模块43,用于当目标配置项的第一更新时戳不晚于目标配置项的第二更新时戳时,从本地加载目标配置项的数据。
84.一些实施例的基于时间戳机制的应用启动装置中,在将所述更新时戳列表中对应于目标配置项的第一更新时戳与本地存储的目标配置项的第二更新时戳进行比较之后,还包括:
85.当目标配置项的第一更新时戳晚于目标配置项的第二更新时戳时,从所述后台系统加载目标配置项的数据。
86.一些实施例的基于时间戳机制的应用启动装置中,在启动时向后台系统获取配置项集合对应的更新时戳列表,包括:
87.在启动时通过访问时间戳接口向后台系统获取配置项集合对应的更新时戳列表。
88.一些实施例的基于时间戳机制的应用启动装置中,在从所述后台系统加载目标配置项的数据之后,还包括:
89.本地保存从所述后台系统加载目标配置项的数据及其更新时戳。
90.一些实施例的基于时间戳机制的应用启动装置中,所述配置项集合中的配置项包括:
91.主题参数配置;
92.功能开关配置;
93.功能入口位置配置;
94.广告信息配置。
95.一些实施例的基于时间戳机制的应用启动装置中,所述后台系统包括配置中心。
96.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
97.需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
98.本说明书的实施例还提供一种计算机设备。如图5所示,在本说明书一些实施例中,所述计算机设备502可以包括一个或多个处理器504,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备502还可以包括任何存储器506,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器506上并可在处理器504上运行的计算机程序,所述计算机程序被所述处理器504运行时,可以执行上述任一实施例所述的基于时间戳机制的应用启动方法的指令。非限制性的,比如,存储器506可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以
表示计算机设备502的固定或可移除部件。在一种情况下,当处理器504执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备502可以执行相关联指令的任一操作。计算机设备502还包括用于与任何存储器交互的一个或多个驱动机构508,诸如硬盘驱动机构、光盘驱动机构等。
99.计算机设备502还可以包括输入/输出接口510(i/o),其用于接收各种输入(经由输入设备512)和用于提供各种输出(经由输出设备514)。一个具体输出机构可以包括呈现设备516和相关联的图形用户接口518(gui)。在其他实施例中,还可以不包括输入/输出接口510(i/o)、输入设备512以及输出设备514,仅作为网络中的一台计算机设备。计算机设备502还可以包括一个或多个网络接口520,其用于经由一个或多个通信链路522与其他设备交换数据。一个或多个通信总线524将上文所描述的部件耦合在一起。
100.通信链路522可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路522可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
101.本技术是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
102.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
103.这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
104.在一个典型的配置中,计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
105.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
106.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何
其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
107.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
109.还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
110.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
111.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
112.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1