CN116820623A - 应用程序启动方法、装置、计算机设备及存储介质 - Google Patents
应用程序启动方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116820623A CN116820623A CN202310863850.3A CN202310863850A CN116820623A CN 116820623 A CN116820623 A CN 116820623A CN 202310863850 A CN202310863850 A CN 202310863850A CN 116820623 A CN116820623 A CN 116820623A
- Authority
- CN
- China
- Prior art keywords
- view
- application program
- application
- component
- resource
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 230000008569 process Effects 0.000 claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 22
- 230000000694 effects Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种应用程序启动方法、装置、计算机设备及存储介质,该方法包括:响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;将视图资源保存到视图资源缓存集合中;启动活动组件,通过活动组件从视图资源缓存集合中获取应用程序的视图资源;将获取到的视图资源设置为活动组件的视图。通过实施本发明,使得活动组件在启动过程中无需加载视图资源的过程,避免了活动组件由于视图的绘制耗时导致的白屏或显示过慢的问题,有效提高应用程序的显示速度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种应用程序启动方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的应用程序(Application,APP)被开发并安装到智能手机或平板电脑等终端设备上,以完善终端设备的功能和个性化,为用户提供更为丰富的使用体验。
随着用户对终端设备的使用,逐渐会显现一个问题:当用户使用终端设备打开一个APP时,用户在APP启动过程中可能会感觉APP界面呈现太慢,甚至出现白屏的现象;尤其是开机后首次打开该APP时,该APP从未被启动过,用户在APP启动过程中,上述现象可能会更加明显,这严重影响了用户的体验效果。
发明内容
有鉴于此,本发明提供了一种应用程序启动方法、装置、计算机设备及存储介质,以解决相关技术中启动APP时容易出现界面呈现较慢或出现白屏的问题。
第一方面,本发明提供了一种应用程序启动方法,所述方法包括:响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;将所述视图资源保存到视图资源缓存集合中;启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源;将获取到的所述视图资源设置为所述活动组件的视图。
本实施例提供的应用程序启动方法,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在一种可选的实施方式中,所述调用内容提供者组件加载应用程序的视图资源,包括:定义初始化类,使所述初始化类继承所述内容提供者组件,并重写所述内容提供者的onCreate函数;执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
在一种可选的实施方式中,在执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源之前,所述调用内容提供者组件加载应用程序的视图资源,还包括:将所述初始化类添加到所述应用程序的信息描述文件中。
在一种可选的实施方式中,所述调用内容提供者组件加载应用程序的视图资源,包括:重写所述内容提供者的onCreate函数;执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
在一种可选的实施方式中,所述将所述视图资源保存到视图资源缓存集合中,包括:为所述视图资源设置id地址;将所述id地址与所述视图资源的键值对建立关联;将建立的关联关系及所述视图资源保存到所述视图资源缓存集合中。
本实施例提供的应用程序启动方法,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,并且可以通过id直接获取,进一步缩短获取view资源的时间,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在一种可选的实施方式中,所述通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源,包括:重写所述活动组件的onCreate函数;执行所述活动组件的onCreate函数从所述视图资源缓存集合中获取所述视图资源进行加载。
本实施例中,在活动组件需要加载该view资源时,直接从该视图资源缓存集合中获取该view资源,而无需重新加载view资源,大大节省了组件加载资源进行显示的时间。
在一种可选的实施方式中,在响应于用户的操作,调用内容提供者组件加载应用程序的视图资源之前,所述方法还包括:判断后台进程中是否存在所述用户的操作对应的应用程序;若所述后台进程中不存在所述用户的操作对应的应用程序,则执行响应于用户的操作,调用内容提供者组件加载应用程序的视图资源的步骤至将获取到的所述视图资源设置为所述活动组件的视图的步骤;若所述后台进程中存在所述用户的操作对应的应用程序,则切换至所述应用程序进行显示。
第二方面,本发明提供了一种应用程序启动装置,所述装置包括:视图资源加载模块,用于响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;视图资源保存模块,用于将所述视图资源保存到视图资源缓存集合中;视图资源获取模块,用于启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源;视图设置模块,用于将获取到的所述视图资源设置为所述活动组件的视图。
本实施例提供的应用程序启动装置,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的应用程序启动方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的应用程序启动方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种电子设备的硬件结构示意图;
图2是根据本发明实施例的一种电子设备的软件结构示意图;
图3是根据本发明实施例的应用程序启动方法的流程示意图;
图4是根据本发明实施例的另一应用程序启动方法的流程示意图;
图5是根据本发明实施例的又一应用程序启动方法的流程示意图;
图6是根据本发明实施例的又一应用程序启动方法的流程示意图;
图7是根据本发明实施例的又一应用程序启动方法的流程示意图;
图8是根据本发明实施例的又一应用程序启动方法的流程示意图;
图9是根据本发明实施例的应用程序启动装置的结构框图;
图10是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
经过研究发现,相关技术中,在用户使用电子设备的过程中,容易出现启动APP时间较长、界面呈现较慢的问题,多是因为系统进程在启动的时候,会加载许多耗时的资源,尤其是view资源,当系统的view层级复杂时,Android系统在绘制view的时候会比较耗时。因此,为了解决上述问题,本发明实施例提供了一种应用程序启动方法、装置、计算机设备及存储介质。
首先对本发明实施例中的部分用语进行解释说明,以便于理解本发明实施例的应用程序启动方法。
应用程序:在各类电子设备中运行的,包括浏览器或者提供各种功能服务的应用程序(Application,APP)。例如,生活服务类的应用程序、即时通信类的应用程序、社交类的应用程序、音视频播放类的应用程序等。
在本实施例中,以运行在安卓系统中的应用程序为例进行说明。在安卓系统中,包括四大组件(activity、service、content provider、broadcast receive)。其中,活动(Activity)是Android的四大组件之一,是用户操作的可视化界面,为用户提供了一个完成操作指令的窗口。当创建完毕Activity之后,需要调用setContentview()方法来完成界面的显示,以此来为用户提供交互的入口。在AndroidApp中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。
服务(service)也是安卓中的四大组件之一,通常用作在后台处理耗时的逻辑,与Activity一样存在自己的生命周期,也需要在AndroidManifest.xml配置相关信息。
广播接收者(Broadcast Receive)也是安卓中的四大组件之一。在Android中,广播是一种广泛运用的在应用程序之间传输信息的机制。而广播接收者是对发送出来的广播进行过滤接收并响应的一类组件,可以使用广播接收器来让应用对一个外部时间做出响应。
内容提供者(Content Provider)也是安卓中的四大组件之一。android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过Content Resolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据时才需要使用到内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。内容提供者的好处是统一数据访问方式。
本发明实施例的电子设备,为一种具有系统(例如操作系统)的设备。电子设备包括一个或多个应用程序。本发明实施例的电子设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制(industrial control)中的终端设备、辅助驾驶的终端设备、无人驾驶(self driving)中的终端设备、远程手术(remotemedicalsurgery)中的终端设备、智能电网(smart grid)中的终端设备、运输安全(transportationsafety)中的终端设备、智慧城市(smart city)中的终端设备、智慧家庭(smart home)中的终端设备、智能手表、智能手环,智能眼镜,以及其他运动配件或可穿戴设备等等。例如,智慧家庭(smart home)中的终端设备可以是智能电视、智能音箱等智能家电。
下面说明本发明实施例可以应用的场景,图1示出了本发明实施例可以应用的一种可能的电子设备结构图。参阅图1所示,该电子设备100包括:通信单元101、处理器102、存储器103、显示单元104、输入单元105、音频电路106、传感器107、摄像头108,以及定位模块109等部件。下面结合图1对该电子设备100的各个构成部件进行具体的介绍。
通信单元101用于实现电子设备100与其他电子设备的数据通信。可选地,该通信单元101中可以包括无线保真(wireless fidelity,WiFi)模块1011和/或蓝牙(bluetooth)模块1012。
蓝牙无线技术和WiFi技术均属于短距离无线传输技术,该电子设备100通过WiFi模块1011可以连接接入点(access point,AP),从而实现数据网络的访问,以及通过该AP与连接该AP其他的电子设备或配件(如远端的摄像装置)通信。该电子设备100通过蓝牙模块1012直接与其他电子设备或配件建立连接。
该通信单元101中还可以包含射频(radio frequency,RF)电路。例如,当该电子设备100为智能手机时,该电子设备100可以通过该RF电路与基站建立无线连接,通过移动通信系统实现通话或数据网络的访问。
该电子设备100还可以包括通信接口,用于与其他设备实现物理连接。该通信接口可以与该其他电子设备的通信接口通过电缆连接,实现该电子设备100和其他电子设备之间的数据传输。
该存储器103可用于存储软件程序以及数据。该处理器102通过运行存储在该存储器103的软件程序以及数据,从而执行该电子设备100的各种功能应用以及数据处理。例如,该软件程序可以为运动健康程序、音视频播放程序等。
该存储器103可以主要包括存储程序区和存储数据区。其中,存储程序区可存储系统、各种应用程序等;存储数据区可存储用户输入或者该电子设备100在运行软件程序过程中创建的数据等。此外,该存储器103可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。例如,在本发明实施例中,运动健康程序、音视频播放程序等可以存储在存储程序区中。
该输入单元105可用于接收用户输入的字符信息以及信号。可选地,输入单元105可包括触控面板1051以及其他输入设备(例如功能键)。其中,该触控面板1051,也称为触摸屏,可收集用户在其上或附近的触摸操作,生成相应的触摸信息发送给处理器102,以使处理器102执行该触摸信息对应的指令。触控面板1051可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。例如,在本发明实施例中,用户可以通过电子设备100的触控面板1051控制电子设备的应用程序。
该显示单元104用于呈现用户界面,实现人机交互。例如,该显示单元104可以显示由用户输入的信息,或提供给用户的信息,以及该电子设备100的各种菜单、各个APP、浏览器的界面等内容。
该显示单元104可以包括显示面板1041,所述显示面板1041可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置。
需要说明的是,该触控面板1051可覆盖该显示面板1041,虽然在图1中,该触控面板1051与该显示面板1041是作为两个独立的部件来实现该电子设备100的输入和输入功能,但是在本发明实施例中,可以将该触控面板1051与该显示面板1041集成(即触摸显示屏)而实现该电子设备100的输入和输出功能。
该处理器102是该电子设备100的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在该存储器103内的软件程序和/或模块,以及调用存储在该存储器103内的数据,执行该电子设备100的各种功能和处理数据,从而实现基于该电子端设备100的多种业务。
可选地,该处理器102可包括一个或多个处理单元。该处理器102可集成应用处理器和调制解调处理器,其中,应用处理器主要处理系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到该处理器102中。
该音频电路106(包括扬声器1061,麦克风1062)可提供用户与该电子设备100之间的音频接口。音频电路106可将接收到的音频数据转换后的电信号,传输到该扬声器1061,由该扬声器1061转换为声音信号输出。另一方面,该麦克风1062将收集的声音信号转换为电信号,由该音频电路106接收后转换为音频数据,以进行传输或存储等进一步处理。
该电子设备100还可以包括一种或多种传感器107,比如光传感器、运动传感器、超声波传感器以及其他传感器。例如,该电子设备100可以根据该传感器107采集的用户运动数据,确定用户输入的控制指令,从而响应该控制指令。
该电子设备100内部还可以包括摄像头108,以采集图像。当然,该电子设备100中也可以不包含摄像头108。例如,该电子设备100可以为不包含摄像头的智能手表或智能手环。
可选地,该电子设备100中还可以包含定位模块109,该定位模块可以测量用户的地理位置数据。该定位模块109可以为全球定位系统(global position system,GPS)模块或北斗模块等,本发明实施例这里不做限定。
可以理解的,图1中示出的终端设备的结构并不构成对电子设备的限定,本发明实施例提供的电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
进一步地,电子设备100搭载的系统可以为IOS、安卓、微软、鸿蒙或者其它系统,本发明实施例对此不作任何限制。
以搭载安卓系统的电子设备100为例,如图2所示,电子设备100从逻辑上可划分为硬件层21、系统层41,以及应用层31。硬件层21包括如上所述的通信单元101、处理器102、存储器103、显示单元104、输入单元105、音频电路106、传感器107、摄像头108,以及定位模块109等硬件资源。应用层31包括一个或多个应用程序,应用程序可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。系统层41作为硬件层21和应用层31之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
在一个实施例中,系统层41用于为应用层31中的应用程序提供各种基础的公共组件和服务,比如窗口管理、位置管理、权限管理等等。例如,系统层41中的窗口管理系统可以通过本发明实施例的应用程序启动方法管理应用层31中的各个应用程序的启动,其具体解释说明可以参见下述实施例。需要说明的是,本发明实施例所涉及的窗口管理系统可以是系统层中的逻辑功能模块。例如,窗口管理模块。该窗口管理模块可以理解为操作系统提供的能力接口,举例而言,其具体可以是框架层应用程序编程接口(ApplicationProgrammingInterface,API)。
以上描述的系统层41的各个组件的功能均可以由处理器102执行存储器103中存储的程序来实现。
上述电子设备可以执行本发明实施例的应用程序启动方法,以解决相关技术中启动APP时容易出现界面呈现较慢或出现白屏的问题。。
下面采用具体的实施例对本发明实施例的应用程序启动方法进行解释说明。
根据本发明实施例,提供了一种应用程序启动方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图3所示,该流程包括如下步骤:
步骤S101,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。
在实际应用中,用户在使用电子设备(例如是手机)时,多是通过触屏的点击来打开各种APP,但本实施例中,用户的操作不限于点击APP的操作,也可以通过其他方式触发APP的启动,例如,可以通过语音输入的方式,指示语音助手来打开相应APP,也可以是通过手势操作等方式来打开,本发明并不以此为限。
当获取到用户的操作后,操作系统即准备开启相应的APP,在本实施例中,则是先调用内容提供者组件(content provider)来加载该APP的视图资源(view)。
步骤S102,将所述视图资源保存到视图资源缓存集合中。
在本实施例中,通过content provider组件加载的视图资源,会预先保存到对应的视图资源缓存集合Map中,目的就是为了在后续活动组件(Activity)加载视图资源时,无需重复加载,仅直接从该缓存集合中提取即可。
步骤S103,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。
在系统启动APP的过程中,需要调用Activity组件来加载相应的资源进行显示。因此,需要先启动活动组件,通过该Activity组件来加载视图资源。而在本实施例中,由于已经通过content provider组件加载了相应的视图资源,并缓存在视图资源缓存集合中,因此,可以通过该Activity组件直接从该缓存集合中获取相应的视图资源。
步骤S104,将获取到的所述视图资源设置为所述活动组件的视图。
当Activity组件获取到启动APP所需的视图资源后,则将该视图资源设置为对应的视图,进行显示。具体地,可以是使用setContentView()函数将获取的View设置为Activity的视图。
本实施例提供的应用程序启动方法,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图4所示,该流程包括如下步骤:
步骤S201,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。
具体地,上述步骤S201包括:
步骤S2011,定义初始化类,使所述初始化类继承所述内容提供者组件,并重写所述内容提供者的onCreate函数。
步骤S2012,执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
Android Activity Manager Service(AMS)是在安卓系统的架构中具有重要作用的一个系统服务,它负责管理应用程序中各个Activity的生命周期,以及应用程序之间的调度和通信。
当操作系统启动APP时,需要通过AMS调度加载进程,在此过程中,会优先执行App的ContentProvider类,并调用onCreate()函数,在onCreate()函数中,可以通过getContext()获取对象(Context),并通过布局加载器LayoutInflater.from(Context).inflate(id,null)获取到view视图。
在一些可选的实施方式中,在步骤S2011之后、步骤S2012之前,该步骤S201还包括:将所述初始化类添加到所述应用程序的信息描述文件中。具体地,可以是将步骤S2011定义的类添加到App的AndroidMainfest.xml文件(信息描述文件的provider节点中。
步骤S202,将所述视图资源保存到视图资源缓存集合中。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S203,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S204,将获取到的所述视图资源设置为所述活动组件的视图。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例提供的应用程序启动方法,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图5所示,该流程包括如下步骤:
步骤S301,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。
具体地,上述步骤S301包括:
步骤S3011,重写所述内容提供者的onCreate函数。
步骤S3012,执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
Android Activity Manager Service(AMS)是在安卓系统的架构中具有重要作用的一个系统服务,它负责管理应用程序中各个Activity的生命周期,以及应用程序之间的调度和通信。
当操作系统启动APP时,需要通过AMS调度加载进程,在此过程中,会优先执行App的ContentProvider类,并调用onCreate()函数,在onCreate()函数中,可以通过getContext()获取对象(Context),并通过布局加载器LayoutInflater.from(Context).inflate(id,null)获取到view视图。
步骤S302,将所述视图资源保存到视图资源缓存集合中。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S303,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S304,将获取到的所述视图资源设置为所述活动组件的视图。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例提供的应用程序启动方法,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图6所示,该流程包括如下步骤:
步骤S401,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S402,将所述视图资源保存到视图资源缓存集合中。
具体地,上述步骤S402包括:
步骤S4021,为所述视图资源设置id地址。
步骤S4022,将所述id地址与所述视图资源的键值对建立关联。
步骤S4023,将建立的关联关系及所述视图资源保存到所述视图资源缓存集合中。在保存该视图资源时,可以是通过view资源的id和view键值对对应关联方式保存,以便于后续在获取该view资源时可以通过id直接获取。
步骤S403,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S404,将获取到的所述视图资源设置为所述活动组件的视图。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例提供的应用程序启动方法,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,并且可以通过id直接获取,进一步缩短获取view资源的时间,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图7所示,该流程包括如下步骤:
步骤S501,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S502,将所述视图资源保存到视图资源缓存集合中。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S503,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。
具体地,上述步骤S503包括:
步骤S5031,重写所述活动组件的onCreate函数。
具体实施时,当App的Activity组件或是继承自Activity的组件启动时,会优先执行该组件的onCreate()函数,因此,可以重写该onCreate()函数,在该函数中加载需要显示的View。
步骤S5032,执行所述活动组件的onCreate函数从所述视图资源缓存集合中获取所述视图资源进行加载。
具体实施时,由于view资源是通过contentprovider组件预先加载并保存在视图资源缓存集合中的,此时则可执行该onCreate()函数,直接从该视图资源缓存集合中获取该view资源,而无需重新加载view资源,大大节省了组件加载资源进行显示的时间。
步骤S504,将获取到的所述视图资源设置为所述活动组件的视图。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例提供的应用程序启动方法,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中提供了一种应用程序启动方法,可用于上述的电子设备中,如图8所示,该流程包括如下步骤:
步骤S605,判断后台进程中是否存在所述用户的操作对应的应用程序;
若所述后台进程中不存在所述用户的操作对应的应用程序,则执行步骤S601-步骤S604;若所述后台进程中存在所述用户的操作对应的应用程序,则切换至所述应用程序进行显示。
在这个过程中,是考量到一种实际的应用场景,当用户已经打开了某个APP,但是中途将该APP切换到后台运行中时,当用户再次想打开该APP,则无需重新加载该APP的资源,而是先判断该APP是否在系统的后台进程中运行着,如果该APP在后台进程中运行着,则切换至该APP进行显示;如果该APP没有在后台进程中运行着,则执行本实施例的步骤S601-步骤S604,加载相关资源,启动该APP。
步骤S601,响应于用户的操作,调用内容提供者组件加载应用程序的视图资源。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S602,将所述视图资源保存到视图资源缓存集合中。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S603,启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源。
步骤S604,将获取到的所述视图资源设置为所述活动组件的视图。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例提供的应用程序启动方法,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
在本实施例中还提供了一种应用程序启动装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种应用程序启动装置,如图9示,包括:
视图资源加载模块801响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;
视图资源保存模块802,用于将所述视图资源保存到视图资源缓存集合中;
视图资源获取模块803,用于启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源;
视图设置模块804,用于将获取到的所述视图资源设置为所述活动组件的视图。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例提供的应用程序启动装置,通过对APP启动过程中的加载顺序的调整,优先调用content provider组件来加载启动APP所需的view资源,并进行缓存,使得Activity组件需要加载该view资源时,可以直接从缓存中获取,使得Activity组件在启动过程中无需加载view的过程,避免了Activity组件由于view的绘制耗时导致的白屏或显示过慢的问题,有效提高APP的显示速度。
本实施例中的应用程序启动装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图9所示的应用程序启动装置。
请参阅图10,图10是本发明可选实施例提供的一种计算机设备的结构示意图,该电子设备用于执行以上各方法实施例中电子设备的方法。如图10所示,该电子设备可以包括:显示屏901、一个或多个处理器902;一个或多个存储器903;上述各器件可以通过一个或多个通信总线905连接。其中上述存储器903中存储一个或多个计算机程序904,一个或多个处理器902用于执行一个或多个计算机程序904,该一个或多个计算机程序904包括指令,上述指令可以用于执行上述方法实施例中电子设备执行的各个步骤。该电子设备可以是上述任一形式的电子设备,例如,智能手机、智能手表等。
当然,图10所示的电子设备还可以包含如音频模块等其他器件,本申请实施例对此不做任何限制。当其包括其他器件时,具体可以为图1所示的电子设备。
本申请实施例的电子设备可以用于执行上述图3至图8所示任一方法实施例中电子设备的步骤,其技术原理和技术效果可以参见上述方法实施例的解释说明,此处不再赘述。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种应用程序启动方法,其特征在于,所述方法包括:
响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;
将所述视图资源保存到视图资源缓存集合中;
启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源;
将获取到的所述视图资源设置为所述活动组件的视图。
2.根据权利要求1所述的应用程序启动方法,其特征在于,所述调用内容提供者组件加载应用程序的视图资源,包括:
定义初始化类,使所述初始化类继承所述内容提供者组件,并重写所述内容提供者的onCreate函数;
执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
3.根据权利要求2所述的应用程序启动方法,其特征在于,在执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源之前,所述调用内容提供者组件加载应用程序的视图资源,还包括:
将所述初始化类添加到所述应用程序的信息描述文件中。
4.根据权利要求1所述的应用程序启动方法,其特征在于,所述调用内容提供者组件加载应用程序的视图资源,包括:
重写所述内容提供者的onCreate函数;
执行所述onCreate函数获取所述应用程序的对象,并通过布局加载器基于所述对象生成所述视图资源。
5.根据权利要求1所述的应用程序启动方法,其特征在于,所述将所述视图资源保存到视图资源缓存集合中,包括:
为所述视图资源设置id地址;
将所述id地址与所述视图资源的键值对建立关联;
将建立的关联关系及所述视图资源保存到所述视图资源缓存集合中。
6.根据权利要求5所述的应用程序启动方法,其特征在于,所述通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源,包括:
重写所述活动组件的onCreate函数;
执行所述活动组件的onCreate函数从所述视图资源缓存集合中获取所述视图资源进行加载。
7.根据权利要求1所述的应用程序启动方法,其特征在于,在响应于用户的操作,调用内容提供者组件加载应用程序的视图资源之前,所述方法还包括:
判断后台进程中是否存在所述用户的操作对应的应用程序;
若所述后台进程中不存在所述用户的操作对应的应用程序,则执行响应于用户的操作,调用内容提供者组件加载应用程序的视图资源的步骤至将获取到的所述视图资源设置为所述活动组件的视图的步骤;
若所述后台进程中存在所述用户的操作对应的应用程序,则切换至所述应用程序进行显示。
8.一种应用程序启动装置,其特征在于,所述装置包括:
视图资源加载模块,用于响应于用户的操作,调用内容提供者组件加载应用程序的视图资源;
视图资源保存模块,用于将所述视图资源保存到视图资源缓存集合中;
视图资源获取模块,用于启动活动组件,通过所述活动组件从所述视图资源缓存集合中获取所述应用程序的视图资源;
视图设置模块,用于将获取到的所述视图资源设置为所述活动组件的视图。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的应用程序启动方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的应用程序启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863850.3A CN116820623A (zh) | 2023-07-13 | 2023-07-13 | 应用程序启动方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863850.3A CN116820623A (zh) | 2023-07-13 | 2023-07-13 | 应用程序启动方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820623A true CN116820623A (zh) | 2023-09-29 |
Family
ID=88127475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310863850.3A Pending CN116820623A (zh) | 2023-07-13 | 2023-07-13 | 应用程序启动方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820623A (zh) |
-
2023
- 2023-07-13 CN CN202310863850.3A patent/CN116820623A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870239B2 (en) | Method and device for running application program | |
EP2998899A1 (en) | Method and apparatus for running application program | |
KR102481065B1 (ko) | 애플리케이션 기능 구현 방법 및 전자 디바이스 | |
CN109542614B (zh) | 资源配置方法、装置、终端及存储介质 | |
EP3848798A1 (en) | Information processing method and apparatus, storage medium, and electronic device | |
WO2018077041A1 (zh) | 应用运行的方法及装置 | |
CN110445924B (zh) | 网络任务执行方法及终端设备 | |
CN114816208A (zh) | 一种触摸控制方法及装置 | |
CN110874217A (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN114647350B (zh) | 应用共享方法、电子设备和存储介质 | |
CN111512286A (zh) | 编排程序的方法及电子设备 | |
CN112527222A (zh) | 一种信息处理方法及电子设备 | |
CN112749362B (zh) | 控件创建方法、装置、设备及存储介质 | |
WO2022161119A1 (zh) | 一种显示方法及电子设备 | |
CN108874554B (zh) | 信息通信方法及装置 | |
CN110045958B (zh) | 纹理数据生成方法、装置、存储介质及设备 | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN110968815A (zh) | 页面刷新方法、装置、终端及存储介质 | |
CN110908638A (zh) | 一种操作流创建方法及电子设备 | |
US20230236714A1 (en) | Cross-Device Desktop Management Method, First Electronic Device, and Second Electronic Device | |
CN114530148A (zh) | 一种控制方法、装置及电子设备 | |
JP7319431B2 (ja) | アプリケーション機能の実施方法及び電子装置 | |
CN107015874B (zh) | 数据传输控制方法、装置及终端 | |
CN115828845A (zh) | 多媒体数据查看方法、装置、介质及设备 | |
CN116820623A (zh) | 应用程序启动方法、装置、计算机设备及存储介质 |
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 |