CN106502737B - 一种提高应用程序启动速度的方法和终端 - Google Patents

一种提高应用程序启动速度的方法和终端 Download PDF

Info

Publication number
CN106502737B
CN106502737B CN201610916742.8A CN201610916742A CN106502737B CN 106502737 B CN106502737 B CN 106502737B CN 201610916742 A CN201610916742 A CN 201610916742A CN 106502737 B CN106502737 B CN 106502737B
Authority
CN
China
Prior art keywords
application program
code loaded
loaded segment
dll
dll code
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
Application number
CN201610916742.8A
Other languages
English (en)
Other versions
CN106502737A (zh
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.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology 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 Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201610916742.8A priority Critical patent/CN106502737B/zh
Publication of CN106502737A publication Critical patent/CN106502737A/zh
Application granted granted Critical
Publication of CN106502737B publication Critical patent/CN106502737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种提高应用程序启动速度的方法和终端,涉及计算机领域,以减小应用程序启动过程中的内存占用。所述方法包括:在应用程序的软件发布期,生成动态链接库DLL代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。本发明用于应用程序启动。

Description

一种提高应用程序启动速度的方法和终端
技术领域
本发明涉及计算机领域,特别涉及一种提高应用程序启动速度的方法和终端。
背景技术
随着互联网和计算机技术的不断发展,如今已越来越多地出现用于各种用途的应用程序。
在应用程序的启动过程中,会采用文件预加载技术,对文件预加载包里的文件进行一次性读取。但是,文件预加载会存在内存占用高的问题。
发明内容
本发明实施例提供了一种应用程序启动方法和装置,以减小应用程序启动过程中的内存占用。所述技术方案如下:
一方面,提供一种应用程序启动方法,所述方法包括:
在应用程序的软件发布期,生成动态链接库(Dynamic Link Library,DLL)代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;
在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。
其中,所述生成DLL代码加载段配置文件可包括:关闭所述应用程序的预加载功能;在所述应用程序启动时,HOOK(调用)所述应用程序相关的文件操作应用程序接口API;记录所述应用程序启动过程中的DLL代码加载段;对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件。
其中,所述DLL代码加载段可包括时间点、文件名、起始位置和长度,所述对所述DLL代码加载段进行分析可包括:按文件名对各个DLL代码加载段根据起始位置进行排序;对排序结果执行如下遍历操作:若DLL代码加载段的区间起始start未赋值,则标记起始start及结束end为当前区间段;若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束end然后继续遍历;
若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
可选地,在一个实施例中,在所述生成DLL代码加载段配置文件之前,所述方法还包括:清除系统页面缓存,以确保冷启动。
可选地,在一个实施例中,在所述生成DLL代码加载段配置文件之后,所述方法还包括:对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
另一方面,提供一种用于提高应用程序启动速度的装置,包括:HOOK(调用)分析模块和加载模块。其中,HOOK分析模块,用于在应用程序的软件发布期,生成DLL代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;所述加载模块,用于在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。
其中,所述HOOK分析模块可具体用于:关闭所述应用程序的预加载功能;在所述应用程序启动时,调用所述应用程序相关的文件操作API(应用程序接口);记录所述应用程序启动过程中的DLL代码加载段;对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件。
其中,所述DLL代码加载段可包括时间点、文件名、起始位置和长度,所述HOOK分析模块可具体用于:按文件名对各个DLL代码加载段根据起始位置进行排序;对排序结果执行如下遍历操作:若DLL代码加载段的区间起始start未赋值,则标记起始start及结束end为当前区间段;若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束end然后继续遍历;若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
可选地,在一个实施例中,所述装置还包括页面置换功能模块。所述页面置换功能模块,用于在所述生成DLL代码加载段配置文件之前,清除系统页面缓存,以确保冷启动。
可选地,在一个实施例中,所述装置还包括打包模块。所述打包模块用于在所述生成DLL代码加载段配置文件之后,对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
另一方面,提供一种终端,所述终端包括处理器和存储器,所述存储器上存储有程序,当所述处理器执行所述程序时,执行以下操作:
在应用程序的软件发布期,生成动态链接库DLL代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;
在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。
其中,当所述处理器执行所述程序时,具体执行以下操作:关闭所述应用程序的预加载功能;在所述应用程序启动时,调用HOOK所述应用程序相关的文件操作应用程序接口API;记录所述应用程序启动过程中的DLL代码加载段;对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件。
可选地,所述DLL代码加载段包括时间点、文件名、起始位置和长度,当所述处理器执行所述程序时,执行以下操作:按文件名对各个DLL代码加载段根据起始位置进行排序;对排序结果执行如下遍历操作:若DLL代码加载段的区间起始start未赋值,则标记起始start及结束end为当前区间段;若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束end然后继续遍历;若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
可选地,当所述处理器执行所述程序时,执行以下操作:在所述生成DLL代码加载段配置文件之前,清除系统页面缓存,以确保冷启动。
可选地,当所述处理器执行所述程序时,执行以下操作:在所述生成DLL代码加载段配置文件之后,对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
本发明实施例提供的技术方案带来的有益效果是:
通过在应用程序的软件发布期,生成DLL代码加载段配置文件,使得应用程序在正式发布后的启动过程中,能够根据DLL代码加载段配置文件对DLL代码段进行预加载,如此可以使预加载更加有针对性,优化了预加载精度和效率,能够减小内存占用,提高应用程序启动速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种提高应用程序启动速度的方法的流程图;
图2是本发明实施例提供的一种提高应用程序启动速度的方法的流程图;
图3是本发明实施例中的主程序的框架架构图;
图4是本发明实施例提供的提高应用程序启动速度的装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
下面先对本文中涉及到的相关术语进行描述。
动态链接库(Dynamic Link Library,DLL)文件又称“应用程序拓展”,是软件文件类型。
HOOK(调用):把自身代码“融入”被目标代码中,成为目标代码一部分的一个技术。
冷启动,电脑的一种启动方式。就是切断电脑的电源,重新启动,一旦冷启动,内存的东西全部丢失,重新检测硬件,进入CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体),再启动操作系统。本文中的冷启动指的就是应用程序在电脑启动完成后第一次启动,即在无任何页面缓存的情况下。
软件发布期:本文中的软件发布期是指软件正式发布开放给公众使用之前的一个阶段,在此阶段中,公众无法得到该软件,而一般只有软件开发公司的内部人员能够接触到该软件,并可按照需要对软件进行修改。
“发布后的应用程序”是指软件发布期之后的一个阶段,在此阶段,公众可以从各种渠道获得应用程序并使用该应用程序。
“主程序”是指应用程序本身,具体可为处于软件发布内的应用程序。
图1是本发明实施例提供的一种提高应用程序启动速度的方法的流程图。参照图1,本发明实施例提供的提高应用程序启动速度的方法可包括:
11、在应用程序的软件发布期,生成DLL(动态链接库)代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;
12、在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。
通过在应用程序的软件发布期,生成DLL代码加载段配置文件,使得应用程序在正式发布后的启动过程中,能够根据DLL代码加载段配置文件对DLL代码段进行预加载,如此可以使预加载更加有针对性,优化了预加载精度和效率,能够减小内存占用,提高应用程序启动速度。
其中,所述步骤11中所述生成DLL代码加载段配置文件可包括:关闭所述应用程序的预加载功能;在所述应用程序启动时,调用HOOK所述应用程序相关的文件操作API(应用程序接口);记录所述应用程序启动过程中的DLL代码加载段;对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件。
其中,所述DLL代码加载段包括时间点、文件名、起始位置和长度。所述对所述DLL代码加载段进行分析包括:按文件名对各个DLL代码加载段根据起始位置进行排序;对排序结果执行如下遍历操作:若DLL代码加载段的区间起始start未赋值,则标记起始start及结束end为当前区间段;若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束end然后继续遍历;若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
其中,在进行排序时可以例如按照起始位置的升序来进行。
其中,第一预设字节可以例如为0.2M,或大于或小于此数值一些的一个范围。第二预设字节可以例如为0.5M,或者,大于或小于此数值一些的一个范围。
图2是本发明实施例提供的一种提高应用程序启动速度的方法的流程图。参照图2,本发明实施例提供的提高应用程序启动速度的方法可包括:
21、启动页面置换功能模块,清除系统缓存。
22、启动HOOK分析模块。
23、启动主程序。
24、等待主程序启动完成。
25、将获取到的DLL代码加载段进行分析处理,生成DLL代码加载段配置文件。分析处理的具体操作可包括但不限于,合并、排重等。
其中,生成DLL代码加载段配置文件的具体过程可如上文描述,在此不再赘述。
26、对生成的所述DLL代码加载段配置文件和所述主程序一同进行签名打包。
以上步骤31-36为软件发布期内的处理步骤。步骤37-39为软件发布后由例如用户触发应用程序时的步骤。
27、在发布后的应用程序启动时,确定是否存在DLL代码加载段配置文件?若存在DLL代码加载段配置文件,则执行步骤38;若不存在DLL代码加载段配置文件,则执行步骤39。
28、若存在DLL代码加载段配置文件,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。预加载完成之后,执行步骤39。
29、获取主动态链接库文件的入口,执行正常的启动过程。
本发明实施例提供的提高应用程序启动速度的方法,能够根据DLL代码加载段配置文件对DLL代码段进行预加载,如此可以使预加载更加有针对性,优化了预加载精度和效率,能够减小内存占用,提高应用程序启动速度。而且,由于HOOK技术只应用于预加载分析,主程序并没有HOOK代码,使得程序更加稳定。
图3是本发明实施例中的主程序的框架架构图。为实现预加载,整个主程序可采用启动程序(Launcher)+DLL的组织形式。参照图3,Launcher.exe可以视为一个壳,里面只有极为简单的代码功能,包含最简单的启动逻辑。整个程序的功能代码位于Main.dll及其附属的各个DLL中,同时,程序的实际功能入口也在Main.dll中。而Launcher.exe的最终任务就是从Main.dll中获取该入口并调用,从而启动整个程序功能。
在Launcher.exe内完成整个预加载的逻辑。具体的启动流程可如下:在Launcher.exe被触发后,先判断是否存在DLL代码加载段配置文件。如果存在,则根据DLL代码加载段配置文件,对各DLL依次进行预处理,使之进入系统页面,达到缓存的目的。完成后,执行正常的启动逻辑。如果不存在,直接执行正常的启动逻辑。
相应地,本发明实施例还提供一种提高应用程序启动速度的装置,参照图4,本发明实施例提供的提高应用程序启动速度的装置400可包括:HOOK(调用)分析模块401和加载模块402。
其中,HOOK分析模块401,用于HOOK主程序相关的文件操作API,从而获取主程序启动过程中DLL代码加载段。最后再将这些零散、随机的DLL代码加载段进行分析、合并、排重,最终生成一份完整的主程序启动过程DLL代码加载段配置文件,用于最终的启动速度优化。加载模块402用于根据HOOK分析模块生成的DLL代码加载段配置文件,对DLL代码段进行预加载。
其中,HOOK分析模块401和加载模块402的具体执行步骤可参照前文描述,在此不再赘述。
本发明实施例提供的提高应用程序启动速度的装置还可包括页面置换功能模块403,用于在所述生成DLL代码加载段配置文件之前,清除系统页面缓存,以确保冷启动。具体地页面转换功能模块可通过动态库ntdll.dll函数NtSetSystemInformation来清除空闲的页面缓存。
本发明实施例提供的提高应用程序启动速度的装置还可包括打包模块404,用于在所述生成DLL代码加载段配置文件之后,对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
本发明实施例提供的提高应用程序启动速度的方法、装置和终端,对DLL代码段进行预加载,从而优化预加载精度及效率,由于利用的系统自身特性,故能够减少或甚至消除内存占用的问题;同时,由于HOOK技术只应用于预加载分析,主程序并没有HOOK代码,这样一来,程序将会更稳定。
需要说明的是:上述实施例提供的用于提高应用程序启动速度的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于应用程序的装置和应用程序启动的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种提高应用程序启动速度的方法,其特征在于,所述方法包括:
在应用程序的软件发布期,关闭所述应用程序的预加载功能,在所述应用程序启动时,调用HOOK所述应用程序相关的文件操作应用程序接口API,记录所述应用程序启动过程中的动态链接库DLL代码加载段,对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;
在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载。
2.根据权利要求1所述的方法,其特征在于,所述DLL代码加载段包括时间点、文件名、起始位置和长度,所述对所述DLL代码加载段进行分析包括:
按文件名对各个DLL代码加载段根据起始位置进行排序;
对排序结果执行如下遍历操作:
若DLL代码加载段的区间起始未赋值,则标记起始及结束为当前区间段;
若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束然后继续遍历;
若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
3.根据权利要求1所述的方法,其特征在于,在所述生成DLL代码加载段配置文件之前,所述方法还包括:
清除系统页面缓存,以确保冷启动。
4.根据权利要求1所述的方法,其特征在于,在所述生成DLL代码加载段配置文件之后,所述方法还包括:
对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
5.一种提高应用程序启动速度的终端,其特征在于,所述终端包括处理器和存储器,所述存储器上存储有程序,当所述处理器执行所述程序时,执行以下操作:
在应用程序的软件发布期,生成动态链接库DLL代码加载段配置文件,所述DLL代码加载段配置文件包括DLL代码加载段的文件名、DLL代码加载段的数目、起始位置和长度;
在发布后的应用程序启动时,根据所述DLL代码加载段配置文件,对DLL代码段进行预加载;
其中,当所述处理器执行所述程序时,执行以下操作:
关闭所述应用程序的预加载功能;
在所述应用程序启动时,调用HOOK所述应用程序相关的文件操作应用程序接口API;
记录所述应用程序启动过程中的DLL代码加载段;
对所述DLL代码加载段进行分析和处理,以生成DLL代码加载段配置文件。
6.根据权利要求5所述的终端,其特征在于,所述DLL代码加载段包括时间点、文件名、起始位置和长度,当所述处理器执行所述程序时,执行以下操作:
按文件名对各个DLL代码加载段根据起始位置进行排序;
对排序结果执行如下遍历操作:
若DLL代码加载段的区间起始未赋值,则标记起始及结束为当前区间段;
若连续两个区间的间距小于第一预设字节,则两个区间为连续区间,进行合并,并更新结束然后继续遍历;
若连续两个区间的间距不小于第一预设字节,则两个区间为完全独立的区间,并判断已经合并的前一个区间大小是否大于第二预设字节,若是,则保存输出,若否,则忽略。
7.根据权利要求5所述的终端,其特征在于,当所述处理器执行所述程序时,执行以下操作:在所述生成DLL代码加载段配置文件之前,清除系统页面缓存,以确保冷启动。
8.根据权利要求5所述的终端,其特征在于,当所述处理器执行所述程序时,执行以下操作:在所述生成DLL代码加载段配置文件之后,对生成的所述DLL代码加载段配置文件和所述应用程序一同进行签名打包。
CN201610916742.8A 2016-10-20 2016-10-20 一种提高应用程序启动速度的方法和终端 Active CN106502737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610916742.8A CN106502737B (zh) 2016-10-20 2016-10-20 一种提高应用程序启动速度的方法和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610916742.8A CN106502737B (zh) 2016-10-20 2016-10-20 一种提高应用程序启动速度的方法和终端

Publications (2)

Publication Number Publication Date
CN106502737A CN106502737A (zh) 2017-03-15
CN106502737B true CN106502737B (zh) 2019-07-30

Family

ID=58318156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610916742.8A Active CN106502737B (zh) 2016-10-20 2016-10-20 一种提高应用程序启动速度的方法和终端

Country Status (1)

Country Link
CN (1) CN106502737B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506357A (zh) * 2020-02-27 2020-08-07 湖南大学 一种动态库自动加载方法、系统及应用

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193610A (zh) * 2017-05-31 2017-09-22 广东欧珀移动通信有限公司 一种动态库的加载方法、装置、终端设备及存储介质
CN107679176A (zh) * 2017-09-29 2018-02-09 努比亚技术有限公司 一种提高应用打开速度的方法、终端、服务器、计算机可读存储介质
CN109542494B (zh) * 2018-10-19 2021-11-05 福建天泉教育科技有限公司 一种vr软件外设的扩展控制方法及终端
CN112817648A (zh) * 2019-10-31 2021-05-18 深圳市万普拉斯科技有限公司 应用程序文件预加载方法、装置和移动终端
CN112948024B (zh) * 2021-04-15 2022-11-04 网易(杭州)网络有限公司 动态链接库的加载方法、装置、存储介质及电子设备
CN113986387A (zh) * 2021-10-28 2022-01-28 上海米哈游璃月科技有限公司 项目配置信息的加载方法、装置、电子设备及存储介质
CN115794260B (zh) * 2023-02-06 2023-05-05 湖南高至科技有限公司 一种简单的dsp软件库动态加载方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294492A (zh) * 2012-02-27 2013-09-11 联想(北京)有限公司 一种提升操作系统启动速度的方法、系统及设备
CN103577212A (zh) * 2012-08-08 2014-02-12 腾讯科技(深圳)有限公司 系统启动预加载方法及装置
CN103677922A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 对应用软件进行启动的方法和装置
CN105955765A (zh) * 2016-04-22 2016-09-21 北京小米移动软件有限公司 应用预加载方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294492A (zh) * 2012-02-27 2013-09-11 联想(北京)有限公司 一种提升操作系统启动速度的方法、系统及设备
CN103577212A (zh) * 2012-08-08 2014-02-12 腾讯科技(深圳)有限公司 系统启动预加载方法及装置
CN103677922A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 对应用软件进行启动的方法和装置
CN105955765A (zh) * 2016-04-22 2016-09-21 北京小米移动软件有限公司 应用预加载方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506357A (zh) * 2020-02-27 2020-08-07 湖南大学 一种动态库自动加载方法、系统及应用

Also Published As

Publication number Publication date
CN106502737A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106502737B (zh) 一种提高应用程序启动速度的方法和终端
US20060168435A1 (en) Operating-system-friendly bootloader
CN109104327B (zh) 一种业务日志生成方法、装置及设备
US9141358B2 (en) Reducing application startup time by optimizing spatial locality of instructions in executables
RU2017135418A (ru) Страничная загрузка/выгрузка в системе обработки событий
CN102567033B (zh) 基于嵌入式实时Java虚拟机的预先类加载方法及装置
CN103793249A (zh) 一种Java虚拟机中类库的多线程预加载方法
US20230251897A1 (en) Automatic run suspension management
US20120089571A1 (en) Computer process management
FR2961922A1 (fr) Procede de compilation selective, dispositif et produit programme d'ordinateur correspondant.
US20220342698A1 (en) Long-term programmatic workflow management
US8117574B2 (en) Implementing a serialization construct within an environment of parallel data flow graphs
CN103617060B (zh) 使用超级状态存储加快嵌入式软件启动过程的方法
CN112783558A (zh) 一种加快Linux内核启动的自解压阶段的方法
CN116594717B (zh) 一种类加载隔离方法、装置、设备及介质
CN109408073B (zh) 一种Android非侵入式应用重打包方法
CN117008998A (zh) 应用启动方法、装置、电子设备及可读存储介质
CN114090434B (zh) 一种代码调试方法、装置、计算机设备和存储介质
CN105630513A (zh) 框架的搭建方法及装置
US7636869B2 (en) Program dynamically burnt system and method
Ren et al. Refactoring the scenario specification: A message sequence chart approach
Liu et al. NFS: an algorithm for avoiding restarts to improve the efficiency of crawling android applications
US20040064300A1 (en) Method and apparatus for starting simulation of a computer system from a process checkpoint within a simulator
US20150149752A1 (en) Server and control method thereof
CN106815136B (zh) 单元测试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 510660 Guangzhou City, Guangzhou, Guangdong, Whampoa Avenue, No. 315, self - made 1-17

Applicant after: Guangzhou KuGou Networks Co., Ltd.

Address before: 510000 B1, building, No. 16, rhyme Road, Guangzhou, Guangdong, China 13F

Applicant before: Guangzhou KuGou Networks Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant