应用程序控制方法、装置、电子设备及计算机存储介质与流程
未命名
07-15
阅读:265
评论:0
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.卸载模块,用于调用系统垃圾回收线程卸载所述动态链接库,以使所述系统垃圾回收线程被占用;
30.释放模块,用于响应于释放指令,释放所述系统垃圾回收线程。
31.第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现本技术第一方面中任一项所述方法的步骤。
32.第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本技术第一方面中任一项所示的应用程序控制方法。
33.本技术实施例提供的技术方案带来的有益效果是:
34.本技术提供的应用程序控制方法,通过响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本技术提供的应用程序控制方法在应用程序的各个组件加载完成后生成释放指令,使系统垃圾回收线程被释放,正常进行系统垃圾回收;在依次加载应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。
附图说明
35.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
36.图1为本技术实施例提供的一种应用程序控制方法的应用场景示意图;
37.图2为本技术实施例提供的一种应用程序控制方法的流程示意图;
38.图3为本技术实施例提供的一种应用程序控制方法的示例的流程示意图;
39.图4为本技术实施例提供的一种应用程序控制装置的结构示意图;
40.图5为本技术实施例提供的一种应用程序控制方法适用的电子设备的结构示意图。
具体实施方式
41.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
42.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作和组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”可以实现为“a”,或者实现为“b”,或者实现为“a和b”。
43.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
44.首先对本技术涉及的几个名词进行介绍和解释:
45.垃圾回收器(garbage collection,gc):垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。垃圾回收是一个跟踪过程,它传递性地跟踪指向当前使用的对象的所有指针,以便找到可以引用的所有对象,然后重新使用在此跟踪过程中未找到的任何堆内存。
46.动态链接库(dynamic link library,dll):是一个包含可由多个程序同时使用的代码和数据的库。
47.现有技术中,在启动应用程序的过程中,对于可能发生的系统垃圾回收过程缺少调控,若在程序启动的时候发生垃圾回收,应用程序启动过程可能被暂停或者发生卡顿,影响应用程序启动时的流畅度。
48.针对相关技术中所存在的至少一个技术问题或需要改善的地方,本技术提出一种应用程序控制方法、装置、电子设备及计算机存储介质,该方案提供的应用程序控制方法,通过响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本技术提供的应用程序控制方法在应用程序的各个组件加载完成后生成释放指令,使系统垃圾回收线程被释放,正常进行系统垃圾回收;在依次加载应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。
49.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
50.图1为本技术实施例提供的应用程序控制方法的应用场景示意图,其中,应用环境可以包括可以应用上述应用程序控制方法对系统垃圾回收线程进行控制的终端101。
51.具体的,在终端101中,应用程序启动时,针对于系统垃圾回收线程的控制,可以使用上述的应用程序控制方法,即响应于接收到的针对应用程序的应用启动请求,在依次加载应用程序中的各个组件的同时,加载动态链接库,之后调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程在应用程序启动的过程中被占用;在应用程序成功启动之后响应于释放指令释放系统垃圾回收线程,使系统垃圾回收线程正常执行。
52.上述应用场景中,在终端101中对数据库进行操作的应用程序中,使用上述的应用程序控制方法,在应用程序启动的同时,对系统垃圾回收线程进行调控,以使应用程序的启动过程不受干扰;在其他实施例中,也可以是在服务器中进行系统回收线程控制操作,上述的应用场景只是一个示例,并不对本技术应用程序控制方法的应用场景进行限制。
53.本技术领域技术人员可以理解,终端(也可以称为用户终端或用户设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、ar/vr设备、飞行器等,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
54.服务器可以包括安装有能够处理数据库操作的服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。终端可以是智能手机(如android手机、ios手机等)、平板电脑、笔记本电脑、数字广播接收器、mid(mobile internet devices,移动互联网设备)、pda(个人数字助理)、台式计算机、智能家电、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等,终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。具体也可基于实际应用场景需求确定,在此不作限定。
55.在一些可能的实施方式中,以执行主体为安卓art(android runtime)虚拟机为例,本技术实施例提供了一种应用程序控制方法,如图2所示,可以包括如下步骤:
56.s201,响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件。
57.其中,所述应用启动请求可以包括:用户点击应用程序图标,另一个应用程序跳转启动应用和执行预设语句启动应用程序等。
58.具体的,接收到针对应用程序的应用启动请求,就开始启动应用程序,即开始依次加载该应用程序中的各个组件,在加载组件的同时,加载动态链接库。
59.s202,调用系统垃圾回收线程卸载所述动态链接库,以使所述系统垃圾回收线程被占用。
60.具体的,在动态链接库卸载和占用系统垃圾回收线程的过程中,上述应用程序中的各个组件也在同时加载;在卸载动态链接库的过程中,系统垃圾回收线程会执行。
61.在具体实施过程中,在卸载动态链接库时,系统垃圾回收线程会开始执行以完成卸载动态链接库的整个过程,当动态链接库在卸载的过程中因暂停预设时长或接收到暂停指令等而无法继续执行,可以认为是占用了系统垃圾回收线程,那么系统垃圾回收线程会
随之暂停,等待当前卸载过程暂停结束或达到一定条件而继续进行。
62.s203,响应于释放指令,释放所述系统垃圾回收线程。
63.其中,上述释放指令可以基于符合预设条件的情况所获得,预设条件可以包括:用户操作发出释放指令,应用程序中的各个组件加载完毕生成释放指令,应用程序启动完成生成释放指令或者加载时长到达预设时长。
64.具体的,当检测到或者接收到上述释放指令,可以认为是应用程序启动完成或达成预设条件,可以释放系统垃圾回收线程使其正常执行;基于上述释放指令,使得上述占用系统垃圾回收线程的动态链接库的卸载过程继续进行,系统垃圾回收线程也正常执行。
65.在一些可能的实施方式中,上述s203中释放指令基于如下至少一种情况触发:
66.(1)接收到针对应用程序中组件的加载完成通知;
67.(2)接收到用户的释放指示;
68.(3)针对所述系统垃圾回收线程的占用时长达到预设时长。
69.其中,以上三种情况中的至少一种满足的时候,可以触发上述释放指令,即触发条件可以包括一种情况满足,任两种情况满足或三种情况都满足。应用程序中的组件可以为多个,则对应的加载完成通知可以为多个。
70.具体的,上述接收到应用程序中组件对应的加载完成通知,可以为接收到符合预设条件的组件对应的加载完成通知,则触发释放指令。上述预设条件可以包括:接收到的组件对应的加载完成通知的数量达到预设阈值;接收到的加载完成通知对应的组件为预设组件。
71.具体的,用户也可以在应用程序启动完成后发出释放指示,以触发释放指令释放系统垃圾回收线程。在应用程序启动完成后触发释放指令释放系统垃圾回收线程,能够避免在应用程序启动过程中受到垃圾回收线程的影响,以加快应用程序启动速度。
72.具体的,记录系统垃圾回收线程开始被动态链接库的卸载的暂停所占用的时间和仍被占用的当前时间,开始时间和当前时间的间隔时长为占用时长,当占用时长达到预设时长时,触发释放指令。
73.在具体实施过程中,可以将应用程序中的各个组件按照一定的规则分类成组,当同一个组内的组件都加载完成,生成针对所述组的加载完成通知,则上述触发条件可以为接收到针对至少一个组件的组对应的加载完成通知,则触发释放指令。
74.在一些可能的实施方式中,上述应用程序控制方法还包括:
75.(1)确定所述各个组件中的第一组件并加载;所述第一组件包括与所述系统垃圾回收线程相关联的组件;
76.所述释放指令基于如下情况触发:
77.(2)接收到针对应用程序中第一组件的加载完成通知。
78.其中,与系统垃圾回收线程相关联的组件可以包括可能被影响的组件,例如,组件的加载过程可能被系统垃圾回收线程干扰,组件的加载可能被系统垃圾回收线程暂停,组件在加载中可能因系统垃圾回收线程而卡顿。所述第一组件的数量可以为至少一个。
79.具体的,从应用程序中的组件中确定与系统垃圾回收线程有关联的第一组件并开始加载第一组件,当第一组件加载完成,可以生成针对第一组件的加载完成通知,当接收到针对第一组件的加载完成通知,触发释放指令,释放系统垃圾回收线程。受系统垃圾回收过
程影响的组件为第一组件,所以在第一组件加载完成之后,第一组件以外的组件的加载过程可能不受系统垃圾回收线程的影响,能够正常加载完成不影响整个应用程序的启动速度。
80.在一些可能的实施方式中,上述应用程序控制方法还包括:
81.(1)加载第二组件;所述第二组件为多个组件中除所述第一组件以外的组件。
82.其中,第二组件为多个组件中除所述第一组件以外的组件,这些组件的加载过程不受系统垃圾回收线程的影响。上述第二组件可以包括:加载时长较短不受影响的组件,加载的内容不易受影响的组件,能够忽略加载过程中受到影响的组件。
83.具体的,在第一组件加载完成后,针对第一组件的加载完成通知触发释放指令释放系统垃圾回收线程,之后加载第二组件,完成应用程序中组件的加载,使得应用程序启动完成。
84.在一些可能的实施方式中,所述动态链接库的内存占用量小于或等于预设阈值。
85.其中,上述动态链接库的加载可以是轻量的流程,不影响应用程序的启动速度。
86.具体的,动态链接库的内存占用量小于或等于预设阈值,在动态链接库卸载之后无残留,不影响应用程序的存储空间,也不占用内存。上述使用动态链接库调控应用程序启动过程的方法,加载过程遵循所在的启动流程,且不会破坏已有的程序,方法兼容性好,适用于大多数的系统。
87.在一些可能的实施方式中,上述步骤s201中,所述响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件,包括:
88.(1)响应于接收到的针对应用程序的应用启动请求,创建应用进程;
89.(2)基于所述应用进程中的加载函数加载动态链接库,并同时依次加载所述应用程序中的各个组件。
90.其中,上述应用进程用于加载应用程序中的各个组件,应用进程中包括各个组件对应的加载方法和加载函数。
91.具体的,接收应用启动请求后创建应用进程,上述动态链接库和应用程序中的各个组件在应用进程中的加载函数中确定各自对应的加载函数,分别基于对应的加载函数加载组件,同时根据对应的加载函数加载动态链接库。
92.在一些可能的实施方式中,上述应用程序控制方法还包括:
93.(1)基于所述应用进程中的加载函数加载所述应用程序的交互组件;
94.(2)基于所述交互组件加载所述应用程序的界面内容;
95.(3)当所述界面内容加载完成,生成针对所述界面内容的加载完成通知。
96.具体的,启动应用程序的过程中加载的组件包括交互组件,交互组件用于展示用户可操作界面,在上述应用进程中确定交互组件对应的加载函数,基于该加载函数对交互组件进行加载,则交互组件中的界面内容也开始加载,界面内容用于展示给用户需要的内容,当界面内容加载完成,也标志对应的应用程序启动完成,则生成针对界面内容的加载完成通知,用于触发释放指令,释放系统垃圾回收线程使其继续执行。
97.上述实施例中,通过响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本技术提供的
应用程序控制方法在应用程序的各个组件加载完成后生成释放指令,使系统垃圾回收线程被释放,正常进行系统垃圾回收;在依次加载应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。
98.为更清楚地理解本技术实施例描述的应用程序控制方法,以下将结合示例进行进一步详细阐述。
99.在一个示例中,本技术的应用程序控制方法,如图3所示,可以包括:
100.响应于接收到的针对应用程序的应用启动请求,该应用启动请求是用户操作触发的(即图中所示的用户点击桌面图标),开始加载动态链接库(即图中所示的加载极简so),并同时依次加载应用程序中的各个组件(即图中所示的application启动,activity启动和ui页面加载内容);调用系统垃圾回收线程卸载动态链接库(即图中所示的卸载极简so),卸载动态链接库的过程中会暂停预设时长(即图中所示的在卸载回调中睡眠指定时长),使得系统垃圾回收线程被占用(即图中所述的卡住系统gc线程);当应用程序启动完成(即图中所示的内容加载完成,进入用户可操作状态),触发释放指令,响应于该释放指令,释放系统垃圾回收线程继续执行(即图中所示的释放系统gc线程,恢复正常gc流程)。
101.上述应用程序控制方法,通过响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本技术提供的应用程序控制方法在应用程序的各个组件加载完成后生成释放指令,使系统垃圾回收线程被释放,正常进行系统垃圾回收;在依次加载应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。
102.本技术实施例提供了一种应用程序控制装置,如图4所示,该装置40可以包括:响应模块401、卸载模块402以及释放模块403,其中,
103.响应模块401,用于响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件;
104.卸载模块402,用于调用系统垃圾回收线程卸载所述动态链接库,以使所述系统垃圾回收线程被占用;
105.释放模块403,用于响应于释放指令,释放所述系统垃圾回收线程。
106.本技术提供的应用程序控制装置中,通过响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本技术提供的应用程序控制方法在应用程序的各个组件加载完成后生成释放指令,使系统垃圾回收线程被释放,正常进行系统垃圾回收;在依次加载应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。
107.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现应用程序控制方法的步骤,与相关技术相比可实现:在应用程序启动阶段,通过卸载动态链接库占用系统垃圾回收线程,以控制系
统垃圾回收过程,从而加快应用程序启动速度,防止应用程序在启动过程中产生暂停、卡顿或者掉帧等情况。
108.在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004,收发器5004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本技术实施例的限定。
109.处理器5001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
110.总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
111.存储器5003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
112.存储器5003用于存储执行本技术实施例的计算机程序,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的计算机程序,以实现前述方法实施例所示的步骤。
113.其中,电子设备包括但不限于:能应用上述应用程序控制方法的终端和服务器。
114.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
115.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除图示或文字描述以外的顺序实施。
116.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。
此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
117.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
技术特征:
1.一种应用程序控制方法,其特征在于,包括:响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件;调用系统垃圾回收线程卸载所述动态链接库,以使所述系统垃圾回收线程被占用;响应于释放指令,释放所述系统垃圾回收线程。2.根据权利要求1所述的应用程序控制方法,其特征在于,所述释放指令基于如下至少一种情况触发:接收到针对应用程序中组件的加载完成通知;接收到用户的释放指示;针对所述系统垃圾回收线程的占用时长达到预设时长。3.根据权利要求2所述的应用程序控制方法,其特征在于,所述方法还包括:确定所述各个组件中的第一组件并加载;所述第一组件包括与所述系统垃圾回收线程相关联的组件;所述释放指令基于如下情况触发:接收到针对应用程序中第一组件的加载完成通知。4.根据权利要求3所述的应用程序控制方法,其特征在于,所述方法还包括:加载第二组件;所述第二组件为多个组件中除所述第一组件以外的组件。5.根据权利要求1所述的应用程序控制方法,其特征在于,所述动态链接库的内存占用量小于或等于预设阈值。6.根据权利要求1所述的应用程序控制方法,其特征在于,所述响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件,包括:响应于接收到的针对应用程序的应用启动请求,创建应用进程;基于所述应用进程中的加载函数加载动态链接库,并同时依次加载所述应用程序中的各个组件。7.根据权利要求6所述的应用程序控制方法,其特征在于,所述方法还包括:基于所述应用进程中的加载函数加载所述应用程序的交互组件;基于所述交互组件加载所述应用程序的界面内容;当所述界面内容加载完成,生成针对所述界面内容的加载完成通知。8.一种应用程序控制装置,其特征在于,包括:响应模块,用于响应于接收到的针对应用程序的应用启动请求,加载动态链接库,并同时依次加载所述应用程序中的各个组件;卸载模块,用于调用系统垃圾回收线程卸载所述动态链接库,以使所述系统垃圾回收线程被占用;释放模块,用于响应于释放指令,释放所述系统垃圾回收线程。9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的应用程序控制方法的步骤。
技术总结
本申请实施例提供了一种应用程序控制方法、装置、电子设备、存储介质及程序产品,涉及应用程序控制领域。该方法包括:响应于接收到的针对应用程序的应用启动请求,开始加载动态链接库,并同时依次加载应用程序中的各个组件;调用系统垃圾回收线程卸载动态链接库,使得系统垃圾回收线程被占用;响应于释放指令释放系统垃圾回收线程。本申请提供的应用程序控制方法在启动应用程序各个组件的同时,通过动态链接库的加载与卸载占用系统垃圾回收线程,使得应用程序的启动过程不被干扰,加快应用程序启动速度。序启动速度。序启动速度。
技术研发人员:鲁晓宇
受保护的技术使用者:北京淘友天下技术有限公司
技术研发日:2023.04.23
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
