CN106547598A - 提升Android应用程序启动速度的方法 - Google Patents

提升Android应用程序启动速度的方法 Download PDF

Info

Publication number
CN106547598A
CN106547598A CN201611047968.5A CN201611047968A CN106547598A CN 106547598 A CN106547598 A CN 106547598A CN 201611047968 A CN201611047968 A CN 201611047968A CN 106547598 A CN106547598 A CN 106547598A
Authority
CN
China
Prior art keywords
application
performs
type
android
creates
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
Application number
CN201611047968.5A
Other languages
English (en)
Inventor
李强
王凤琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201611047968.5A priority Critical patent/CN106547598A/zh
Publication of CN106547598A publication Critical patent/CN106547598A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种提升Android应用程序启动速度的方法。该方法包括:步骤101,启动APP应用,步骤102,并判断APP应用的启动类型。如果是冷启动类型,则转向步骤,103;如果是热启动类型,则转向步骤107。步骤103,从Android的Zygote中fork创建一个新进程,并分配给此应用。步骤104,创建并初始化Application类。步骤105,执行Application的attachBaseContext()方法。步骤106,执行Application的onCreate()方法。步骤107,创建并初始化MainActivity类。步骤108,执行Activity的onCreate()方法。步骤109,为Activity配置主题、样式等属性。步骤110,执行Activity的onStart()和onResume()方法。步骤111,应用完成启动,显示界面,本发明可以改善用户对Android应用程序的使用体验,提升用户对APP应用的满意度,有较强的实用价值。

Description

提升Android应用程序启动速度的方法
技术领域
本发明涉及计算机技领域,具体涉及一种提升Android应用程序启动速度的方法。
背景技术
随着计算机及互联网技术的迅猛发展,智能终端的功能越来越强大,很多智能终端也逐渐用上了操作系统,比如智能手机和智能电视,上面运行着Android操作系统。在这些运行Android系统的智能终端上,人们往往通过下载和安装各种应用程序来满足自己各方面的需求,比如娱乐,又比如阅读。而应用程序的启动速度开始影响用户的情绪和心情,启动速度越快的应用,能给人带来愉悦的感觉;而启动速度很慢的应用,往往会给人带来应用很难用的糟糕体验。在这个用户量会带来商业价值的时代,不能给用户带来愉悦的感觉,就意味着会失去用户,从而最终丢掉商业价值。
对现有技术的研究和分析过程中,我们发现现有改进Android应用的启动速度并没有很好的方法,通常的做法是修改应用的代码,以及通过监测Delvik虚拟机或ART运行时,找出耗资源的方法和进程,加以改进。这些方法耗时耗力,且对Android应用程序的启动速度的改进有限,不能充分改进应用程序的启动速度。
发明内容
本发明克服了现有技术的不足,提供解决一种提升Android应用程序启动速度的方法。
为解决上述的技术问题,本发明采用以下技术方案:
一种提升Android应用程序启动速度的方法,它包括以下步骤:
步骤101,启动APP应用;
步骤102,判断APP应用的启动类型,如果是冷启动类型,则转向步骤103;如果是热启动类型,则转向步骤107;
步骤103,从Android系统的Zygote中fork创建一个新进程,并分配给此应用;
步骤104,创建并初始化Application类;
步骤105,执行Application的attachBaseContext()方法,并去除耗时的操作;
步骤106,执行Application的onCreate()方法,并去除耗时的操作;
步骤107,创建并初始化MainActivity类;
步骤108,执行Activity的onCreate()方法,并去除耗时的操作;
步骤109,为Activity配置主题、样式等属性;
步骤110,执行Activity的onStart()和onResume()方法,同样要避免延迟大的操作;
步骤111,应用完成启动,显示界面。
更进一步的技术方案是,所述步骤102中,判断启动类型的方法为应用自身扫描系统进程和任务列表,看是否有此应用的进程,如果有,则启动类型为热启动;如果没有,则启动类型为冷启动。
与现有技术相比,本发明的有益效果是:
本发明可以改善用户对Android应用程序的使用体验,提升用户对APP应用的满意度,有较强的实用价值。
附图说明
图1为本发明一种实施例的提升Android应用程序启动速度的方法的流程图。
具体实施方式
下面结合附图对本发明作进一步阐述。
如图1所示的一种提升Android应用程序启动速度的方法,该方法主要包括以下步骤:
步骤101,启动APP应用。
步骤102,判断APP应用的启动类型。如果是冷启动类型,则转向步骤103;如果是热启动类型,则转向步骤107。
所述的判断启动类型的方法为应用自身扫描系统进程和任务列表,查看此应用的进程是否存在。如果存在,则启动类型为热启动类型;如果不存在,则启动类型为冷启动类型。
步骤103,从Android的Zygote中fork创建一个新进程,并分配给此应用。
对于Android系统,除开系统引导进程、init进程等,绝大部分进程是由Zygote创建的。Android的Zygote主要有两块,其中一块是C/C++编写的Zygote,主要用于为应用和系统服务fork进程的。另外一块是使用Java语言编写的Zygote接口,负责为应用和服务调用C/C++Zygote的接口以便执行fork,从而完成VM进程的创建。
步骤104,创建并初始化Application类。
Android系统的Application类是一个系统组件。当Android应用程序启动时,系统会自动创建一个Application对象,用于存储系统的一些信息。Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个。
步骤105,执行Application的attachBaseContext()方法,并去除耗时的操作。
本实施例还可以使用异步线程获取预准备的数据。包括使用异步线程同时获取云端REST接口的数据,以及使用异步线程同时获取Android数据库的数据等。
步骤106,执行Application的onCreate()方法,并去除耗时的操作。
步骤107,创建并初始化MainActivity类。
启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。
步骤108,执行Activity的onCreate()方法,并去除耗时的操作。
要检查耗时操作,可以使用Android自带的TraceView工具,使用它来查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位耗时的操作。
在开始调试的地方,如Activity的onCreate函数,添加
Debug.startMethodTracing("tracefilename");
在结束调试的地方,如Activity的onDestroy函数,添加
Debug.stopMethodTracing();
然后运行APP应用一段时间后并退出,Android系统会在SD存储卡根目录生成tracefilename.trace这个log文件,记录这段时间内的运行信息。分析此日志文件,就能找到耗时的操作。
步骤109,为Activity配置主题、样式等属性。
由于在获取到第一帧前,需要对ContentView进行测量布局绘制操作,尽量减少布局的层次,考虑StubView的延迟加载策略。
步骤110,执行Activity的onStart()和onResume()方法,同样要避免延迟大的操作。
步骤111,应用完成启动,显示界面。
以上具体实施方式对本发明的实质进行详细说明,但并不能对本发明的保护范围进行限制,显而易见地,在本发明的启示下,本技术领域普通技术人员还可以进行许多改进和修饰,需要注意的是,这些改进和修饰都落在本发明的权利要求保护范围之内。

Claims (2)

1.一种提升Android应用程序启动速度的方法,其特征在于,它包括以下步骤:
步骤101,启动APP应用;
步骤102,判断APP应用的启动类型,如果是冷启动类型,则转向步骤103;
如果是热启动类型,则转向步骤107;
步骤103,从Android系统的Zygote中fork创建一个新进程,并分配给此应用;
步骤104,创建并初始化Application类;
步骤105,执行Application的attachBaseContext()方法,并去除耗时的操作;
步骤106,执行Application的onCreate()方法,并去除耗时的操作;
步骤107,创建并初始化MainActivity类;
步骤108,执行Activity的onCreate()方法,并去除耗时的操作;
步骤109,为Activity配置主题、样式等属性;
步骤110,执行Activity的onStart()和onResume()方法,同样要避免延迟大的操作;
步骤111,应用完成启动,显示界面。
2.根据权利要求1所述的提升Android应用程序启动速度的方法,其特征在于,所述步骤102中,判断启动类型的方法为应用自身扫描系统进程和任务列表,看是否有此应用的进程,如果有,则启动类型为热启动;如果没有,则启动类型为冷启动。
CN201611047968.5A 2016-11-22 2016-11-22 提升Android应用程序启动速度的方法 Pending CN106547598A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611047968.5A CN106547598A (zh) 2016-11-22 2016-11-22 提升Android应用程序启动速度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611047968.5A CN106547598A (zh) 2016-11-22 2016-11-22 提升Android应用程序启动速度的方法

Publications (1)

Publication Number Publication Date
CN106547598A true CN106547598A (zh) 2017-03-29

Family

ID=58395726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611047968.5A Pending CN106547598A (zh) 2016-11-22 2016-11-22 提升Android应用程序启动速度的方法

Country Status (1)

Country Link
CN (1) CN106547598A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951298A (zh) * 2017-04-25 2017-07-14 广州优视网络科技有限公司 一种提升应用启动速度的方法和装置
CN107741869A (zh) * 2017-11-20 2018-02-27 青岛海信移动通信技术股份有限公司 应用程序的启动方法、装置、及终端设备
CN107861827A (zh) * 2017-10-31 2018-03-30 努比亚技术有限公司 卡屏检测方法、移动终端及计算机可读存储介质
CN108304233A (zh) * 2018-01-10 2018-07-20 武汉斗鱼网络科技有限公司 Application对象迁移方法、存储介质、电子设备及系统
CN109117203A (zh) * 2018-07-13 2019-01-01 广州小鹏汽车科技有限公司 一种Android APP启动速度优化方法及系统
CN109918145A (zh) * 2019-01-10 2019-06-21 北京字节跳动网络技术有限公司 一种应用程序冷启动的加速方法、装置、电子设备
WO2020078314A1 (zh) * 2018-10-15 2020-04-23 华为技术有限公司 加速应用的冷启动的方法、装置和终端
CN111756927A (zh) * 2020-06-23 2020-10-09 广东小天才科技有限公司 一种定位信息的输出方法、终端设备及存储介质
WO2021027700A1 (zh) * 2019-08-15 2021-02-18 华为技术有限公司 应用程序启动方法、装置、终端设备及可读存储介质
CN114489842A (zh) * 2022-01-17 2022-05-13 重庆长安汽车股份有限公司 一种基于Android平台加速应用启动方法
EP4002108A4 (en) * 2019-09-19 2022-10-12 Honor Device Co., Ltd. APPLICATION STARTING METHOD AND ELECTRONIC DEVICE

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707973A (zh) * 2012-05-04 2012-10-03 惠州Tcl移动通信有限公司 基于Android系统的应用程序启动的方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707973A (zh) * 2012-05-04 2012-10-03 惠州Tcl移动通信有限公司 基于Android系统的应用程序启动的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "Android性能优化之加快应用启动速度", 《HTTP://BLOG.CSDN.NET/U010687392/ARTICLE/DETAILS/50518343》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951298A (zh) * 2017-04-25 2017-07-14 广州优视网络科技有限公司 一种提升应用启动速度的方法和装置
CN107861827B (zh) * 2017-10-31 2021-05-21 努比亚技术有限公司 卡屏检测方法、移动终端及计算机可读存储介质
CN107861827A (zh) * 2017-10-31 2018-03-30 努比亚技术有限公司 卡屏检测方法、移动终端及计算机可读存储介质
CN107741869A (zh) * 2017-11-20 2018-02-27 青岛海信移动通信技术股份有限公司 应用程序的启动方法、装置、及终端设备
CN108304233A (zh) * 2018-01-10 2018-07-20 武汉斗鱼网络科技有限公司 Application对象迁移方法、存储介质、电子设备及系统
CN109117203A (zh) * 2018-07-13 2019-01-01 广州小鹏汽车科技有限公司 一种Android APP启动速度优化方法及系统
WO2020078314A1 (zh) * 2018-10-15 2020-04-23 华为技术有限公司 加速应用的冷启动的方法、装置和终端
US12093726B2 (en) 2018-10-15 2024-09-17 Huawei Technologies Co., Ltd. Method, apparatus, and terminal for accelerating cold startup of an application
CN109918145A (zh) * 2019-01-10 2019-06-21 北京字节跳动网络技术有限公司 一种应用程序冷启动的加速方法、装置、电子设备
WO2021027700A1 (zh) * 2019-08-15 2021-02-18 华为技术有限公司 应用程序启动方法、装置、终端设备及可读存储介质
EP4002108A4 (en) * 2019-09-19 2022-10-12 Honor Device Co., Ltd. APPLICATION STARTING METHOD AND ELECTRONIC DEVICE
US11947974B2 (en) 2019-09-19 2024-04-02 Honor Device Co., Ltd. Application start method and electronic device
CN111756927A (zh) * 2020-06-23 2020-10-09 广东小天才科技有限公司 一种定位信息的输出方法、终端设备及存储介质
CN114489842A (zh) * 2022-01-17 2022-05-13 重庆长安汽车股份有限公司 一种基于Android平台加速应用启动方法

Similar Documents

Publication Publication Date Title
CN106547598A (zh) 提升Android应用程序启动速度的方法
CN108600311B (zh) 客户端模拟接口数据的方法及装置
CN108255729B (zh) 一种基于Unity平台的手机游戏自动化测试方法和系统
CN103123605B (zh) 一种Android平台自动化集成测试方法和装置
CN106445292B (zh) 应用程序的分身管理方法及系统
CN109966742B (zh) 游戏运行中获取渲染性能数据的方法及装置
CN103514007B (zh) 一种基于Android系统的移动终端的热启动的方法
CN106951298A (zh) 一种提升应用启动速度的方法和装置
CN110362483A (zh) 性能数据采集方法、装置、设备及存储介质
CN113722020B (zh) 接口调用方法、装置和计算机可读存储介质
CN106330599B (zh) Android应用程序网络流量多线程采集系统及方法
WO2018188380A1 (zh) 一种添加控件标识的方法和装置
CN110275704A (zh) 页面数据处理方法和装置,存储介质和电子设备
CN107807831A (zh) 应用程序中的业务执行方法、装置、终端及存储介质
CN115357515B (zh) 一种多核系统的调试方法、装置、计算机设备及存储介质
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
CN111078424A (zh) 一种信息交互方法、装置、计算机设备和存储介质
CN107145367A (zh) 一种用于前端开发的可视化发布方法及系统
CN110928787B (zh) 自动化测试脚本录制回放方法、装置、设备和存储介质
CN109656761A (zh) 基于linux系统的服务器HT自动测试方法及系统
CN117632746A (zh) 一种插桩处理方法、装置、存储介质及电子设备
CN113760397A (zh) 接口调用的处理方法、装置、设备及存储介质
CN112068879A (zh) 基于配置化的客户端应用程序开发框架构建方法及装置
CN114003421B (zh) 虚拟机超时机制测试方法、系统、终端及存储介质
CN105933160A (zh) 在Android智能电视上实现有线网络快速连接的方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329

RJ01 Rejection of invention patent application after publication