应用启动方法及装置转让专利
申请号 : CN202110449308.4
文献号 : CN112988281B
文献日 : 2021-08-03
发明人 : 李超 , 牛涛 , 诸佳俊
申请人 : 浙江口碑网络技术有限公司
摘要 :
权利要求 :
1.一种应用启动方法,其特征在于,方法包括:监听应用启动命令,对应用启动命令进行拦截;所述应用的终端设备为IOS终端设备;
根据所述应用启动命令确定对应的待启动应用,从业务层和/或应用框架层进行分层服务抽取,得到应用启动相关联的多个服务,并查询与应用启动相关联的多个服务的启动时间等级;其中,服务的启动时间等级依据服务与应用框架和/或应用启动过程中的待加载业务之间是否存在的依赖关系而确定;
按照各个服务的启动时间等级,将服务依次嵌入启动流程管控,以启动各个服务,完成对应用的启动。
2.根据权利要求1所述的方法,其特征在于,所述多个服务包含一个或多个第一服务以及一个或多个第二服务;其中,第一服务为与应用框架之间存在依赖关系的服务,第二服务为与待加载业务之间存在依赖关系的服务;
所述第一服务的启动时间等级高于所述第二服务的启动时间等级。
3.根据权利要求2所述的方法,其特征在于,所述多个服务还包含一个或多个第三服务;所述第三服务包括与应用启动时应用首页面的待加载业务之间存在依赖关系的服务;
所述第三服务的启动时间等级低于所述第二服务的启动时间等级。
4.根据权利要求3所述的方法,其特征在于,所述第三服务还包括与非应用首页面的业务之间存在依赖关系的服务;所述第三服务根据用户触发的业务场景和/或业务使用诉求启动。
5.根据权利要求1‑4中任一项所述的方法,其特征在于,所述按照各个服务的启动时间等级,将服务依次嵌入启动流程管控,以启动各个服务,完成对应用的启动进一步包括:按照各个服务的启动时间等级,并发启动同一启动时间等级的多个服务;其中,并发启动的服务数量根据终端设备的性能设置。
6.根据权利要求1‑4中任一项所述的方法,其特征在于,所述根据所述应用启动命令进行分层服务抽取,得到应用启动相关联的多个服务进一步包括:根据应用启动指令,确定待启动应用,获取应用的配置信息和/或网络传输信息;
根据应用的配置信息和/或网络传输信息,确定应用启动过程中的待加载业务以及应用框架信息;
根据待加载业务进行服务抽取,确定与待加载业务之间存在依赖关系的服务,以及,对应用框架层进行服务抽取,确定与应用框架之间存在依赖关系的服务。
7.根据权利要求1‑4中任一项所述的方法,其特征在于,所述方法还包括:当应用更新后,获取应用更新相关联的应用框架和/或应用启动过程中的待加载业务;
根据所述应用框架和/或应用启动过程中的待加载业务与各个服务间的依赖关系,更新各个服务的启动时间等级。
8.一种应用启动装置,特征在于,装置包括:拦截模块,适于监听应用启动命令,对应用启动命令进行拦截;所述应用的终端设备为IOS终端设备;
抽取查询模块,适于根据所述应用启动命令确定对应的待启动应用,从业务层和/或应用框架层进行分层服务抽取,得到应用启动相关联的多个服务,并查询与应用启动相关联的多个服务的启动时间等级;其中,服务的启动时间等级依据服务与应用框架和/或应用启动过程中的待加载业务之间是否存在的依赖关系而确定;
启动模块,适于按照各个服务的启动时间等级,将服务依次嵌入启动流程管控,以启动各个服务,完成对应用的启动。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1‑7中任一项所述的应用启动方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1‑7中任一项所述的应用启动方法对应的操作。
说明书 :
应用启动方法及装置
技术领域
背景技术
应用的黏度,用户使用体验较差时会导致用户流失等问题。
应用启动较慢,影响应用的整体启动。因此,优化应用启动,解决应用启动时可能遇到的各
种问题,是应用启动急需解决的问题。
发明内容
用框架和/或应用启动过程中的待加载业务之间是否存在的依赖关系而确定;
的服务;
等级依据服务与应用框架和/或应用启动过程中的待加载业务之间是否存在的依赖关系而
确定;
的服务;
赖关系,更新各个服务的启动时间等级。
的通信;
照服务的启动时间等级依次启动服务,一方面可以解决各个服务均同时启动,多个服务占
用资源过多影响服务启动效率等问题;另一方面依据服务与应用框架和/或应用启动过程
中的待加载业务之间的依赖关系,按照启动时间等级将启动时间等级高的服务先启动,避
免了各个服务同时启动时,启动时间等级低的服务因所需的启动时间等级高的服务未启动
成功,导致的启动时间等级低服务无法启动成功、启动时间过长等引起的应用宕机等问题。
的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
具体实施方式
所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围
完整的传达给本领域的技术人员。
令,无法对IOS系统的启动命令的处理流程进行修改,即无法直接修改应用启动时的启动任
务顺序,使其以应用整体进行启动,影响应用启动效率。
过其它应用外部访问等方式来启动应用时,监听到应用启动命令,对其进行拦截。
启动过程中的待加载业务以及应用框架信息等。根据待加载业务,从业务层中抽取出需呈
现给用户展示所需的服务,即得到与待加载业务存在依赖关系的服务。同时,基于应用启
动,对应用框架层也进行抽取,如确定该应用启动时,应用框架加载、渲染、运行等与应用框
架之间存在依赖关系的服务等。本实施例从应用框架层和业务层等不同层面进行分层服务
抽取,从应用框架和应用的业务本身出发,得到与应用启动相关联的多个服务。多个服务包
含应用框架、应用启动过程中的待加载业务之间存在的依赖关系的服务。以上服务抽取不
限定抽取顺序。
服务、应用自身包含的服务。终端设备系统包含的应用框架的底层服务包括如提供应用编
码使用的基础架构服务、应用开发使用的系统服务,定义应用的外观相关的服务等。终端设
备系统提供的可供应用调用的服务包括如系统的定位服务、播放服务、展示服务等终端设
备系统提供的服务等。应用自身包含的服务包括为实现应用中各业务所开发的服务等。
务的启动时间等级,以根据启动时间等级启动服务,避免服务启动过程中的服务同时启动
资源占用过多问题,或服务间启动先后顺序影响服务启动失败、应用宕机等问题。
二服务。第一服务为与应用框架之间存在依赖关系的服务,如应用启动时,需要先对应用框
架进行渲染,只有在应用框架渲染后,才能对应的在应用框架内添加展示内容、添加业务处
理流程等。因此,应用框架所依赖的应用框架服务尤为重要,包括如UI层框架、媒体处理相
关框架等服务,具体根据实际的应用框架确定。第二服务为与待加载业务之间存在依赖关
系的服务,应用框架服务启动后,如应用向用户展示待加载业务相关内容,需要根据待加载
业务,分析得到与待加载业务之间存在依赖关系的服务。如应用页面展示信息时基于用户
当前定位进行展示,待加载业务依赖定位服务,定位服务为第二服务。第二服务包括了待加
载业务依赖的各种前置服务,第二服务启动成功与否影响待加载业务的正常使用,第二服
务需要在待加载业务执行前启动。具体的第二服务根据应用的待加载业务确定。综合以上
多个服务的重要程度,如第一服务中的UI层框架服务,当应用启动展示页面时,需要先启动
UI层框架服务,渲染对应的UI层的框架,在此基础上,才能基于渲染后的UI层框架填充对应
的页面内容。因此,第一服务的启动时间等级高于第二服务的启动时间等级,便于后续按照
启动时间等级在第一服务启动后,再启动第二服务,保障第二服务启动时,第一服务已经启
动完成,避免因应用框架未渲染完成导致的第二服务启动失败等问题。
动时间等级低于第一服务、第二服务的启动时间等级。
整,应用的启动从应用的所需出发,如应用需呈现用户的业务出发,使得应用的启动更符合
应用自身的需求,启动时更符合应用的个性化业务需求。
依次启动各个服务,如遵循IOS系统中应用流程管控的规范,将服务依次嵌入对应的启动流
程管控中,各服务按照启动时间等级顺序依次启动,在第一服务启动成功后,启动第二服
务…,从而完成对应用的启动。
启动时间等级依次启动服务,一方面可以解决各个服务均同时启动,多个服务占用资源过
多影响服务启动效率等问题;另一方面依据服务与应用框架和/或应用启动过程中的待加
载业务之间的依赖关系,按照启动时间等级将启动时间等级高的服务先启动,避免了各个
服务同时启动时,启动时间等级低的服务因所需的启动时间等级高的服务未启动成功,导
致的启动时间等级低服务无法启动成功、启动时间过长等引起的应用宕机等问题。
加载业务之间存在依赖关系的服务。如应用首页面展示店铺信息,第三服务包括店铺信息
获取服务等。第三服务的启动时间等级低于第二服务的启动时间等级,第二服务包括应用
首页面的待加载业务的前置服务,如定位服务。在第二服务启动后,获取到用户的定位信
息,根据用户的定位信息,启动第三服务获取位于该定位信息附近的店铺信息等。此处,第
三服务可以为仅包括与应用启动时应用首页面的待加载业务之间存在依赖关系的服务。在
启动第三服务后,完成应用首页面的待加载业务的加载,向用户展示应用首页面。对于用户
而言,应用首页面展示完成后,用户就可以操作应用,用户感知应用已经启动,不会去关注
应用的所有业务是否均被加载完成。即在第三服务启动后,对用户而言,应用启动完成,其
它服务的后续启动不会影响用户对应用首页面的浏览,大大提升用户使用应用的体验效
果。
根据业务使用诉求相应的启动第三服务,或者,根据用户操作应用时触发的业务场景中包
含的业务对应的启动第三服务,以减少均根据应用启动命令同时启动各服务时终端设备的
运行压力,提升应用启动时间。
启动的服务数量根据终端设备的性能设置,如考虑IOS终端设备的硬件性能等,避免并发启
动线程影响终端设备的正常运行。进一步,并发启动的同一启动时间等级的各个服务之间
不存在相互间的依赖关系等,避免因并行启动导致某一服务启动失败等问题。如以第三服
务为例,第三服务包括的店铺信息获取服务、应用首页面的标签展示获取服务等,将以上服
务存储在服务队列中,并发启动多个线程,每个线程对应的启动一个服务,同时并发启动多
个服务。
动时,直接查询获取到记录的各个服务的启动时间等级。
更新的应用信息获取应用更新相关联的应用框架和/或应用启动过程中的待加载业务,此
处相关联的应用框架和/或应用启动过程中的待加载业务包括新增的应用框架和/或应用
启动过程中的待加载业务、删除的应用框架和/或应用启动过程中的待加载业务、调整顺序
的应用启动过程中的待加载业务等。根据以上应用框架和/或应用启动过程中的待加载业
务,以及与各个服务间的依赖关系,可以及时地更新各个服务的启动时间等级,方便在应用
更新后启动时,基于更新后的服务的启动时间等级依次启动服务,完成应用的启动。
用首页面的待加载业务之间存在依赖关系的服务。在启动第三服务后,完成应用首页面的
待加载业务的加载,向用户展示应用首页面。对于用户而言,应用首页面展示完成后,用户
就可以操作应用,用户感知应用已经启动,不会去关注应用的所有业务是否均被加载完成。
即在第三服务启动后,对用户而言,应用启动完成,其它服务的后续启动不会影响用户对应
用首页面的浏览,大大提升用户使用应用的体验效果。进一步,同一启动时间等级的多个服
务并发启动,以空间换取时间,提升服务启动效率。
间等级依据服务与应用框架和/或应用启动过程中的待加载业务之间是否存在的依赖关系
而确定;
的服务;
启动过程中的待加载业务以及应用框架信息;根据待加载业务进行服务抽取,确定与待加
载业务之间存在依赖关系的服务,以及,对应用框架层进行服务抽取,确定与应用框架之间
存在依赖关系的服务。
的依赖关系,更新各个服务的启动时间等级。
启动时间等级依次启动服务,一方面可以解决各个服务均同时启动,多个服务占用资源过
多影响服务启动效率等问题;另一方面依据服务与应用框架和/或应用启动过程中的待加
载业务之间的依赖关系,按照启动时间等级将启动时间等级高的服务先启动,避免了各个
服务同时启动时,启动时间等级低的服务因所需的启动时间等级高的服务未启动成功,导
致的启动时间等级低服务无法启动成功、启动时间过长等引起的应用宕机等问题。
路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可
以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上
述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此
不再赘述。
的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利
用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是
为了披露本发明实施例的较佳实施方式。
和技术,以便不模糊对本说明书的理解。
组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意
图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特
征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实
施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,
其特征在于每个权利要求本身都作为本发明的单独实施例。
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之
一都可以以任意的组合方式来使用。
微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些
或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部
的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的
程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号
可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除
存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个
这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的
计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同
一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单
词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。