CN115904542B - 一种应用于安卓系统的异步初始化任务的方法及系统 - Google Patents
一种应用于安卓系统的异步初始化任务的方法及系统 Download PDFInfo
- Publication number
- CN115904542B CN115904542B CN202211620466.2A CN202211620466A CN115904542B CN 115904542 B CN115904542 B CN 115904542B CN 202211620466 A CN202211620466 A CN 202211620466A CN 115904542 B CN115904542 B CN 115904542B
- Authority
- CN
- China
- Prior art keywords
- task
- asynchronous
- initialization
- tasks
- return
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000003068 static effect Effects 0.000 claims description 11
- 238000005457 optimization Methods 0.000 abstract description 8
- 101150083764 KCNK9 gene Proteins 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged 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
本发明涉及安卓系统冷启动优化技术领域,尤其涉及一种应用于安卓系统的异步初始化任务的方法及系统,所述方法包括:用户操作点击启动应用程序;应用进入OnCreate初始化流程;初始化异步任务框架;判断任务是否需要传入参数及是否需要返回值;根据判断结果添加任务到子线程执行异步任务;任务执行完毕后,主线程Main类调用带参数及带返回值任务的operation方法获得返回值。在异步初始化任务中加入参数传入及返回值实现,丰富了异步初始化技术,极大地保证了异步初始化的全面性,实现异步初始化的全面覆盖,从而更有利于性能优化。
Description
技术领域
本发明涉及安卓系统冷启动优化技术领域,尤其涉及一种应用于安卓系统的异步初始化任务的方法及系统。
背景技术
Android系统中的启动方式一般分为两种,一种是冷启动,一种是热启动。在启动应用时,如果后台没有该应用的进程,此时系统需要加载应用并创建一个进程分配给所述应用,然后在主线程根据启动参数启动相应的组件,这种启动方式称之为冷启动。随着APP的日渐增大,集成的三方库也越来越多,导致APP的启动极其缓慢,通常冷启动的时间会比热启动的时间长,启动时间太长,则启动到出现界面的时间会比较久,这期间内的显示就一直是白屏状态,也会导致用户进入应用程序的等待时间变长,在很大程度上影响了用户的使用体验。
在进行应用冷启动优化时,发现很多任务在主线程初始化导致了耗时,为了加速应用启动,出现了很多异步初始化任务的方案,实现方式为将无参数、无返回值的执行方法使用线程池进行异步初始化。
然而,现有的技术只能无参数及无返回值的进行初始化,导致很多初始化任务无法实现异步初始化,例如:launcher应用OnCreate时,DragController、WidgetManager、PopupDataProvider等很多初始化任务都带有传参及返回的实例。因此,本发明提出一种应用于安卓系统的异步初始化任务的方法及系统,加入参数传入及返回值的任务初始化,来丰富异步初始化技术。
发明内容
针对现有技术中只能无参数及无返回值的进行初始化,导致很多初始化任务无法实现异步初始化的问题,本发明提出了一种应用于安卓系统的异步初始化任务的方法及系统,极大地保证了异步初始化的全面性,有利于性能优化。
为了实现上述目的,本发明通过如下的技术方案来实现:
一种应用于安卓系统的异步初始化任务的方法,所述方法包括:
用户操作点击启动应用程序;
应用进入OnCreate初始化流程;
初始化异步任务框架;
判断任务是否需要传入参数及是否需要返回值;
根据判断结果添加任务到子线程执行异步任务。
作为本发明的一种优选方案,所述初始化异步任务框架具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法,用于任务执行前的初始化操作。
作为本发明的一种优选方案,主线程Main类包含一个或多个atrribute type,对atrribute type赋值为默认值。
作为本发明的一种优选方案,所述Main类包含一个或多个添加任务的接口方法addTask,并在addTask中传入attribute1和attribute2两个参数。
作为本发明的一种优选方案,所述根据判断结果添加任务到子线程执行异步任务,具体包括:若判断结果为任务需要传入参数,则进一步判断任务是否需要返回值;
若判断结果为任务不需要返回值,则Main类添加带参数任务,所述带参数任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数任务到子线程执行异步任务;
若判断结果为任务需要返回值,则Main类添加带参数及带返回值任务,所述带参数及带返回值任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数及带返回值任务到子线程执行异步任务。
作为本发明的一种优选方案,任务执行完毕后,主线程Main类调用带参数及带返回值任务的operation方法获得返回值。
作为本发明的一种优选方案,所述返回值为type类型。
一种应用于安卓系统的异步初始化任务的系统,包括:
启动模块,用于用户操作点击启动应用程序;
框架初始化模块,用于对异步任务框架进行初始化,具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法;
任务添加模块,用于提供主线程Main类中添加任务的接口方法addTask;
判断模块,包括第一判断单元和第二判断单元,所述第一判断单元用于判断任务是否需要传入参数,所述第二判断单元用于判断任务是否需要返回值;
异步任务执行模块,用于添加任务到子线程执行异步任务;
返回值获取模块,用于主线程Main类调用带参数及带返回值任务的operation方法获得返回值。
与现有技术相比,本发明具有的有益效果是:在异步初始化任务中加入参数传入及返回值实现,丰富了异步初始化技术,极大的保证了异步初始化的全面性,实现异步初始化的全面覆盖,从而更有利于性能优化。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。其中:
图1为本发明优选实施例中的方法流程图;
图2为本发明优选实施例中添加任务的代码逻辑图;
图3位本发明优选实施例中的系统模块化结构图;
图中标号:10、启动模块;20、框架初始化模块;30、任务添加模块;40、判断模块;401、第一判断单元;402、第二判断单元;50、异步任务执行模块;60、返回值获取模块。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
在进行应用冷启动优化时,发现很多任务在主线程初始化导致了耗时,为了加速应用启动,出现了很多异步初始化任务的方案,即将任务分开执行,在线程池中使用不同的线程进行执行,然而,现有技术只能无参数及无返回值的进行初始化,导致很多初始化任务无法实现异步初始化,因此,本发明提出一种应用于安卓系统的异步初始化任务的方法及系统。
实施例1:如图1所示,该实施例提供了一种应用于安卓系统的异步初始化任务的方法,包括如下步骤:
步骤1:用户操作点击启动应用程序;
步骤2:应用进入OnCreate初始化流程;
步骤3:初始化异步任务框架;具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法,用于任务执行前的初始化操作。
主线程Main类包含一个或多个atrribute type,对atrribute type赋值为默认值。Main类包含一个或多个添加任务的接口方法addTask,并在addTask中传入attribute1和attribute2两个参数。
步骤4:判断任务是否需要传入参数及是否需要返回值;
若判断结果为任务需要传入参数,则进一步判断任务是否需要返回值;若判断结果为任务不需要返回值,则Main类添加带参数任务,带参数任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数任务到子线程执行异步任务;
若判断结果为任务需要返回值,则Main类添加带参数及带返回值任务,带参数及带返回值任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数及带返回值任务到子线程执行异步任务。
步骤5:主线程Main类调用带参数及带返回值任务的operation方法获得返回值,返回值为type类型,如:int,long,boolean,String等。
实施例2:如图2所示,为本发明的一个实施例,该实施例提供了本发明的代码逻辑。
Main类是代码的主入口,比如MainActivity,包含一个或多个变量atrributetype类型,赋值是defaultValue。包含本发明的一个或多个添加任务的接口方法addTask(new Task2(attribute1,attribute2)),此方法传入参数attribute1与attribute2两个参数;
Task2类是任务2,包含一个或多个静态全局变量mAttribute1及mAttribute2,用以存储Main类传入的参数。并在Task2类中的run()方法使用,run()方法即为子线程中执行异步初始化任务。
Task3类是任务3,此类包含一个或多个静态全局变量mAttribute1及mAttribute2,用以存储Main类传入的参数,包含一个无参数类型构造函数Task3()和带参数构造函数Task3(attribute1,attribute2),包含一个或多个operation方法,返回值为type类型(如:int,long,boolean,String等)。
实施例3:如图3所示,该实施例提供了一种应用于安卓系统的异步初始化任务的系统,具体包括:
启动模块10,用于用户操作点击启动应用程序;
框架初始化模块20,用于对异步任务框架进行初始化,具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法;
任务添加模块30,用于提供主线程Main类中添加任务的接口方法addTask;
判断模块40,包括第一判断单元401和第二判断单元402,第一判断单元401用于判断任务是否需要传入参数,第二判断单元402用于判断任务是否需要返回值;
异步任务执行模块50,用于添加任务到子线程执行异步任务;
返回值获取模块60,用于主线程Main类调用带参数及带返回值任务的operation方法获得返回值。
用户操作点击应用程序,通过启动模块10启用应用,应用进入OnCreate初始化流程,框架初始化模块20对异步任务框架AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法,主线程Main类包含一个或多个atrribute type,对atrribute type赋值为默认值。Main类包含一个或多个添加任务的接口方法addTask,并在addTask中传入attribute1和attribute2两个参数。通过第一判断单元401判断任务是否需要传入参数,若需要传入参数,则通过第二判断单元402进一步判断任务是否需要返回值;若判断结果为任务不需要返回值,则通过异步任务执行模块50在主线程Main类中添加带参数任务Task2,带参数任务Task2包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数任务Task2到子线程执行异步任务;若判断结果为任务需要返回值,则通过异步任务执行模块50在主线程Main类中添加带参数及带返回值任务Task3,带参数及带返回值任务Task3包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数及带返回值任务Task3到子线程执行异步任务。主线程Main类通过返回值获取模块60调用带参数及带返回值任务的operation方法获得返回值,返回值为type类型,如:int,long,boolean,String等。
综上所述,在异步初始化任务中加入参数传入及返回值实现,丰富了异步初始化技术,极大的保证了异步初始化的全面性,实现异步初始化的全面覆盖,从而更有利于性能优化。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种应用于安卓系统的异步初始化任务的方法,其特征在于,所述方法包括:
用户操作点击启动应用程序;
应用进入OnCreate初始化流程;
初始化异步任务框架;
判断任务是否需要传入参数及是否需要返回值;
根据判断结果添加任务到子线程执行异步任务,具体包括:若判断结果为任务需要传入参数,则进一步判断任务是否需要返回值;
若判断结果为任务不需要返回值,则Main类添加带参数任务,所述带参数任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数任务到子线程执行异步任务;
若判断结果为任务需要返回值,则Main类添加带参数及带返回值任务,所述带参数及带返回值任务包含一个或多个静态全局变量mAttribute,用于存储Main类传入的参数,添加带参数及带返回值任务到子线程执行异步任务。
2.如权利要求1所述的一种应用于安卓系统的异步初始化任务的方法,其特征在于,所述初始化异步任务框架具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法,用于任务执行前的初始化操作。
3. 如权利要求2所述的一种应用于安卓系统的异步初始化任务的方法,其特征在于,主线程Main类包含一个或多个atrribute type,对atrribute type赋值为默认值。
4.如权利要求3所述的一种应用于安卓系统的异步初始化任务的方法,其特征在于,所述Main类包含一个或多个添加任务的接口方法addTask,并在addTask中传入attribute1和attribute2两个参数。
5.如权利要求1所述的一种应用于安卓系统的异步初始化任务的方法,其特征在于,任务执行完毕后,主线程Main类调用带参数及带返回值任务的operation方法获得返回值。
6.如权利要求5所述的一种应用于安卓系统的异步初始化任务的方法,其特征在于,所述返回值为type类型。
7.基于权利要求1所述的一种应用于安卓系统的异步初始化任务的方法的系统,其特征在于,所述系统包括:
启动模块(10),用于用户操作点击启动应用程序;
框架初始化模块(20),用于对异步任务框架进行初始化,具体是对AsyncTask进行初始化操作,执行AsyncTask的onPreExecute方法;
任务添加模块(30),用于提供主线程Main类中添加任务的接口方法addTask;
判断模块(40),包括第一判断单元(401)和第二判断单元(402),所述第一判断单元(401)用于判断任务是否需要传入参数,所述第二判断单元(402)用于判断任务是否需要返回值;
异步任务执行模块(50),用于添加任务到子线程执行异步任务;
返回值获取模块(60),用于主线程Main类调用带参数及带返回值任务的operation方法获得返回值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211620466.2A CN115904542B (zh) | 2022-12-15 | 2022-12-15 | 一种应用于安卓系统的异步初始化任务的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211620466.2A CN115904542B (zh) | 2022-12-15 | 2022-12-15 | 一种应用于安卓系统的异步初始化任务的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904542A CN115904542A (zh) | 2023-04-04 |
CN115904542B true CN115904542B (zh) | 2024-01-30 |
Family
ID=86491116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211620466.2A Active CN115904542B (zh) | 2022-12-15 | 2022-12-15 | 一种应用于安卓系统的异步初始化任务的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904542B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675796A (en) * | 1994-04-08 | 1997-10-07 | Microsoft Corporation | Concurrency management component for use by a computer program during the transfer of a message |
CN109388505A (zh) * | 2018-09-27 | 2019-02-26 | 天涯社区网络科技股份有限公司 | 一种基于Android的异步多任务顺序加载方法 |
CN111767159A (zh) * | 2020-06-24 | 2020-10-13 | 浙江大学 | 一种基于协程的异步系统调用系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527403B (zh) * | 2019-09-19 | 2022-07-05 | 荣耀终端有限公司 | 一种应用启动方法及电子设备 |
-
2022
- 2022-12-15 CN CN202211620466.2A patent/CN115904542B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675796A (en) * | 1994-04-08 | 1997-10-07 | Microsoft Corporation | Concurrency management component for use by a computer program during the transfer of a message |
CN109388505A (zh) * | 2018-09-27 | 2019-02-26 | 天涯社区网络科技股份有限公司 | 一种基于Android的异步多任务顺序加载方法 |
CN111767159A (zh) * | 2020-06-24 | 2020-10-13 | 浙江大学 | 一种基于协程的异步系统调用系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115904542A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445617B (zh) | 基于Android的应用程序冷启动优化方法及系统 | |
CN106293880B (zh) | 在Windows系统上运行Android应用程序的方法及装置 | |
US20210357759A1 (en) | Task processing method and device based on neural network | |
CN105630543B (zh) | 一种应用冷启动加速的方法及装置 | |
EP3137985B1 (en) | Method and system to create a rendering pipeline | |
CN111400000B (zh) | 网络请求处理方法、装置、设备和存储介质 | |
CN112286656B (zh) | 小程序模拟方法、装置、电子设备和计算机可读存储介质 | |
CN113885967B (zh) | 一种小程序的启动方法、装置、设备及介质 | |
CN112770114B (zh) | 图像数据的压缩方法、装置、计算机设备以及存储介质 | |
CN107122176B (zh) | 一种图形绘制方法及装置 | |
CN111625290B (zh) | 一种Android平台下布局文件预加载方法、装置及电子设备 | |
JP2012098972A (ja) | コンピュータを短時間で起動する方法およびコンピュータ | |
CN110750284B (zh) | 一种应用快速启动方法、终端及计算机可读存储介质 | |
CN115904542B (zh) | 一种应用于安卓系统的异步初始化任务的方法及系统 | |
CN111443902A (zh) | 函数调用树生成方法、系统、计算机设备及可读存储介质 | |
CN109951732A (zh) | Android智能电视防止开机LOGO与应用切换黑屏的方法 | |
CN110045997B (zh) | 基础功能模块的对象初始化方法、装置、设备和存储介质 | |
CN112328225A (zh) | 一种页面运行方法及其运行系统 | |
CN107621939B (zh) | 一种应用优化方法及装置 | |
CN114721735B (zh) | 一种程序动态加载方法、装置及电子设备 | |
CN115934281A (zh) | 一种基于Android APP启动页面优化的方法、装置、设备及介质 | |
CN111124386A (zh) | 基于Unity的动画事件处理方法、装置、设备和存储介质 | |
CN113617022B (zh) | 一种加快游戏应用启动速度的方法及装置 | |
CN105138380A (zh) | 一种Linux系统的启动方法及装置 | |
CN106775864B (zh) | 一种基于Autofac支持按需加载的服务管理器的实现方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |