CN109284142A - 文件预加载方法、装置、电子设备及计算机可读存储介质 - Google Patents

文件预加载方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109284142A
CN109284142A CN201810928017.1A CN201810928017A CN109284142A CN 109284142 A CN109284142 A CN 109284142A CN 201810928017 A CN201810928017 A CN 201810928017A CN 109284142 A CN109284142 A CN 109284142A
Authority
CN
China
Prior art keywords
file
application program
memory
program
application
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
CN201810928017.1A
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201810928017.1A priority Critical patent/CN109284142A/zh
Publication of CN109284142A publication Critical patent/CN109284142A/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

本申请实施方式涉及终端技术领域,公开了一种文件预加载方法、装置、电子设备及计算机可读存储介质。其中,文件预加载方法包括:在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;将查找出的所述对应的文件加载至内存中,并在所述应用程序的运行过程中直接读取加载在所述内存中的文件。本申请实施方式可以提升应用程序运行的流畅度。

Description

文件预加载方法、装置、电子设备及计算机可读存储介质
技术领域
本申请实施方式涉及终端技术领域,特别涉及文件预加载方法、装置、电子设备及计算机可读存储介质。
背景技术
随着手机、平板电脑等终端的普及,终端上APP(application,应用程序)的种类也越来越多。应用程序在运行时,需要从外存中加载一定量的数据文件或者配置文件至***内存中,然后再从内存中读取上述加载的文件进行运行。
发明内容
本申请实施方式的目的在于提供一种文件预加载方法、装置、电子设备及计算机可读存储介质,可以提升应用程序运行的流畅度。
本申请的实施方式提供了一种文件预加载方法,包括:在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;将查找出的所述对应的文件加载至内存中,并在应用程序的运行过程中直接读取加载在所述内存中的文件。
本申请的实施方式还提供了一种文件预加载装置,包括:查找模块,用于在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;预加载模块,用于将所述查找模块查找出的所述对应的文件加载至内存中;运行模块,用于在运行应用程序的过程中直接读取加载在所述内存中的文件。
本申请的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述文件预加载方法。
本申请的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述文件预加载方法。
本申请实施方式通过在检测到有应用程序被打开时,根据被打开应用程序和预先存储的文件和应用程序的对应关系,查找出与被打开的应用程序对应的文件,将查找出的文件加载至内存中。也就是说,在应用程序启动时,将该应用程序在运行过程中需使用到的文件加载至内存,并在被打开的应用程序的运行过程中直接读取加载在所述内存中的文件,可以提升应用程序运行的流畅度。
附图说明
一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定。
图1是本申请第一实施方式中文件预加载方法的流程图;
图2是本申请第一实施方式中安卓***构架图;
图3是本申请第二实施方式中文件预加载方法的流程图;
图4是本申请第二实施方式中安卓***构架图、内存和外存的结构框架图;
图5是本申请第三实施方式中文件预加载方法的流程图;
图6是本申请第四实施方式中文件预加载装置的结构框图;
图7是本申请第五实施方式中文件预加载装置的结构框图;
图8是本申请第六实施方式中文件预加载装置的结构框图;
图9是本申请第七实施方式中提供的电子设备的结构示意图。
具体实施方式
为使本申请实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本申请的第一实施方式涉及一种文件预加载方法。本申请实施方式可以但不限于基于电子设备进行实施,电子设备可以为手机、电脑、平板电脑、智能电视等终端。应用程序在运行时,需要读取数据文件和/或配置文件进行运行。本实施方式的文件包括数据文件和/或配置文件。其中,数据文件中可以但不限于包括应用数据。
下面对本实施方式的文件预加载方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非限定为实施本方案的必须。
如图1所示,文件预加载方法包括:
步骤101,预先在数据库中存储文件和应用程序的对应关系。其中,与应用程序对应的文件,为该应用程序运行过程中需使用到的文件。例如,一个应用程序运行过程中会使用到数据文件或者配置文件。数据文件可以是图像、文本、音频、视频等各种文件;配置文件可以是程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等各种文件。终端设备可以从网络侧的服务器获取到文件和应用程序的对应关系,并存储到本地的数据库中。而且,在实际应用中,还可以与网络侧的服务器进行同步,以更新保存的文件和应用程序的对应关系。
在本实施方式中,可以在数据库中存储文件的指示信息和应用程序包名的对应关系,作为存储文件和应用程序的对应关系。其中,文件的指示信息可以包括文件的路径和文件的名称。由于数据库中的信息可以存储在外存中,因此数据库中的信息并不会因为终端的掉电/重启而丢失,使得文件和应用程序的对应关系,可以稳定的保存在终端内。
需要说明的是,本实施方式对如何“在数据库中存储文件的指示信息和应用程序包名的对应关系”不做限制。在本实施方式中,可以以表格存储的方式在数据库中存储文件的指示信息和应用程序包名的对应关系。
需要说明的是,每个应用程序运行时,可能使用多个文件。即一个应用程序可以对应多个文件。此外,不同的应用程序也可能使用相同的文件。即一个文件可以对应多个不同的应用程序。
在一些实施方式中,数据库中可以存储多个应用程序及应用程序运行时使用到的文件的对应关系。如表1所示,包名为A的应用程序对应的文件名称为文件1,文件1的文件路径为路径1;该包名为A的应用程序对应的文件名称还有文件2,文件2的文件路径为路径2等。其中,表1仅作为举例,对数据库中存储的应用程序的类型和个数不做限制,对每个应用程序运行时对应的文件个数不做限制。此外,通过表1可知,本实施方式中不同的应用程序在运行时,可能使用相同的文件;即同一个文件可能对应多个不同的应用程序。
表1
本实施方式的数据库不限于以表格存储的方式存储文件的指示信息和应用程序包名的对应关系,还可以根据实际设计的需求以其他的方式存储文件的指示信息和应用程序包名的对应关系。本实施方式对此不做限制。
步骤102,判断是否检测到应用程序的开启指令。如果是,则进入步骤103;否则,返回步骤102。
如图2所示,以安卓***为例进行说明,其中,安卓***包括:应用层21(applications层)、框架层22(framework层)、***类库层23(libc层)、***内核层24(linuxkernel层)。
应用层21(applications层),包括运行于安卓虚拟机上的应用程序,如浏览器、联系人、日历以及其他应用程序。用户可以对应用层21中的应用程序进行操作。
框架层22(framework层),指的是安卓应用开发的核心,提供了开发所必须的各种基础API框架。如框架层22具有包名记录、应用管理、后台管理等各种服务功能。
***类库层23(libraries层),为了支持上层应用,安卓***通过本层中的一些C/C++库来支持我们所使用的各个模块或组件。***类库层23包括函数库和安卓执行环境。函数库包括web、open、sql等其他函数,安卓执行环境如dv虚拟机、java函数库等环境。
***内核层24(linux kernel层),主要实现文件***,内存管理,进程调度,进程间通信,电源管理及驱动等功能。如实现显示驱动、相机驱动、WiFi驱动等其他功能。***内核层24与安卓构架以外的硬件进行通信。
当用户需要打开应用层21中的某个应用程序时,用户会对该应用程序进行一个用于打开程序的特定操作。以打开程序的特定操作为点击操作为例,当框架层22检测到用户对桌面中的某个应用程序的图标的点击操作时,即视为检测到了该应用程序的开启指令,从而触发应用程序的开启,并进入步骤103。
步骤103,根据开启指令开启的应用程序和数据库中储存的对应关系,查找与该应用程序对应的文件,并将查找到的文件加载至内存中。
在本实施方式中,当有应用程序被打开且显示至终端界面时(即开启了某个应用程序),框架层22的应用管理服务功能就可以记载哪个应用程序被打开了,并且可以将应用程序的包名等信息通过该层的本地的守护进程发送到该层具有后台管理服务的服务单元,并可以通过包名记录功能记录有关该应用程序的包名。即当有应用程序被打开且显示至终端界面时,可以在安卓***的框架层22中记录该应用程序的包名。
由于数据库中预先存储有文件的指示信息和应用程序包名的对应关系,因此,可以根据应用程序的包名从数据库中查找与应用程序对应的文件指示信息,并根据查找到的文件指示信息,从存储文件的外存中获取到文件,并将获取到的文件加载至内存中。
其中,文件指示信息包括文件的名称和文件的路径。即根据查找到的文件的名称和文件的路径,获取到应用程序运行时可能会使用到的文件,并将获取到的文件加载至内存中。
步骤104,在被打开的应用程序运行的过程中直接读取加载在内存中的文件。由于在应用程序启动时,已将运行过程中可能会使用到的文件加载至内存中,因此,在应用程序运行的过程中如需使用某个文件,即可直接读取已加载在内存中的文件,提升了应用程序运行的流畅度。而且,即使出现了在应用程序运行的过程中,未能在内存中读取到所需文件的特殊情况(如应用程序有升级,而终端设备保存的仍是升级前的应用程序与文件的对应关系),也可以再从外存中获取到所需的文件,并加载到内存中,以保证应用程序的顺利运行。而且,还可以在出现该特殊情况时,将该文件的指示信息补充至保存的文件与应用程序的对应关系中,从而实现文件与应用程序的对应关系的自动更新。
在实际应用中,还可以在应用程序关闭时,释放加载到内存中的文件;或者,在卸载或删除应用程序时,将加载到内存中的文件删除,例如,当应用程序卸载或删除时,可以根据应用程序的包名从数据库中获取与应用程序对应的文件的名称,根据文件的名称将加载到内存中的文件删除。而且,在完成应用程序的卸载或删除后,还可以在保存的对应关系中,删除卸载的应用程序与文件的对应关系,使得保存的对应关系内的应用程序,均为终端设备有可能开启的应用程序。
本实施方式中,在应用程序启动时,将该应用程序在运行过程中需使用到的文件加载至内存,而非在应用程序的运行过程中需要使用哪个文件,再去获取该文件,并将获取的文件加载至内存。相对于在应用程序的运行过程中需要哪个文件时,再从外存中获取所需要的文件并加载的方案,由于应用程序在运行过程可以直接从内存中读取所需的文件,而不需要在运行过程中进行文件加载,从而可以提升应用程序运行的流畅度,有助于匹配用户需求。
而且,由于应用程序边运行边加载的方案,还会导致应用程序运行时所需要的相关文件在外存上的分布很分散,导致文件加载进一步变慢,应用程序运行更加不流畅;因此,本实施方式还可避免应用程序运行时所需要的相关文件在外存上的分布分散的情况,从而有助于进一步提升应用程序运行的流畅度。
虽然本实施方式中终端设备本地保存有文件和应用程序的对应关系,但在实际应用中,也可以在检测到应用程序的开启指令时,从存储有文件和应用程序的对应关系的服务器中实时获取或直接查询,即文件和应用程序的对应关系预先存储在网络侧,根据网络侧存储的对应关系,查找与被打开的应用程序对应的文件,并进行预加载,在此不再赘述。
本申请的第二实施方式涉及一种文件预加载方法。在本申请第二实施方式中,通过在应用程序首次运行时,记录应用程序包名及所述应用程序调用的文件的指示信息作为应用程序和文件的对应关系,并存储至数据库中,提供了一种有效可行的将文件指示信息和包名的对应关系写入数据库的一种具体实现方式,为后续应用程序运行时需要加载相关文件指示信息提供了有效可行的实现方案。
如图3所示,本实施方式的文件预加载方法包括:
步骤301,判断是否检测到应用程序的首次开启指令。如果是,则进入步骤302;否则返回步骤301。由于当框架层22检测到用户对桌面中的某个应用程序的图标进行了用于打开该应用程序的特定操作(如点击操作),就会触发该应用程序的开启。因此,在本步骤中,如果检测到用户对桌面中的某个应用程序的图标首次进行了用于打开该应用程序的特定操作,则判定检测到了应用程序的首次开启指令,打开该应用程序且将该应用程序显示至终端界面,进入步骤302。
步骤302,将应用程序的包名记录至缓冲中。具体地说,可以利用框架层22中增加的包名记录的功能模块(如图2所示),来记录终端前景应用的包名,在一个应用程序被首次打开且显示至终端界面时(即在首次启动应用程序时),框架层22的包名记录的功能模块将应用程序的包名记录至buffer(缓冲)中。前景应用包名记录的功能模块通过***内核层24的I/O接口将应用程序的包名记录至buffer(缓冲)中,如图4所示。缓冲(图中标注251表示的区域)为在内存25中开辟的一块地址空间,即缓冲(Buffer)就是在内存中预留指定大小的存储空间用来作为数据的临时存储区,使用缓冲有两个好处:1、减少实际物理读写次数;2、缓冲的位置在创建时就被分配好了,这块内存区域一直被重用,可以减少动态分配和回收存储空间的次数。
步骤303,在检测到有文件被打开操作时,获取缓冲中的应用程序的包名。
其中,框架层22可以预留一个与***类库层23中的open函数通信的函数接口,用来调用open函数运行的数据。open函数一般用来打开或者创建一个文件,可以根据参数来定制需要的文件的属性和用户权限等各种参数。在open函数中第一个参数是指向想要打开的文件路径名或者文件名。本实施方式中通过重载open函数,可以从open函数的运行数据中获取被打开的文件的名称和路径。另外,本实施方式中的***类库层23是相对于应用层21而言的,实际上这个***类库层23指的是安卓框架内的库(library),libc是库中的一个函数库,open函数在libc函数库内,libc函数库通常存储于外存中。框架层22通过***内核层24中的I/O接口从缓冲中获取应用程序的包名。
步骤304,通过记录进程将被打开操作的文件的指示信息,作为缓冲中的应用程序的包名所对应的文件的指示信息,写入数据库中,以在数据库中存储应用程序包名与文件的指示信息的对应关系。
具体地说,框架层22中的记录进程将被打开的文件指示信息以及获取的包名的对应关系通过***内核层24中的I/O接口写入数据库。通过记录进程将被打开的文件指示信息以及包名的对应关系写入数据库,便于实现。进一步,由记录进程中的记录线程进行记录,由于记录线程所占用的***资源较少,因此可以使得以较少的***资源,实现对应关系的写入。
其中,文件的指示信息至少包括文件的路径和文件的名称。数据库(如图中标注261所表示的区域)为外存26中建立的一块用于存储文件指示信息和包名对应关系的区域。通过上述方式将文件指示信息和包名的对应关系写入数据库,从而提供了一种有效可行的将文件指示信息和包名的对应关系写入数据库的一种具体实现方式,为后续应用程序运行时需要加载相关文件指示信息提供了有效可行的实现方案。
本实施方式可以但不限于以表格的形式在数据库中存储文件的指示信息和应用程序包名的对应关系,还可以根据实际设计的需求以其他的方式存储文件的指示信息和应用程序包名的对应关系。每个应用程序的运行过程中,可能使用到一个文件,也可能使用到多个文件。
步骤305,判断当前被打开的应用程序是否为预设的目标优化程序。如果是,则进入步骤306;否则,返回步骤305。
在本实施方式中,当前有应用程序被打开时,获取被打开的应用程序的包名,并根据获取的所述包名判断当前被打开的应用程序是否为预设的目标优化程序。并且本步骤的检测过程具体为:框架层22通过***内核层24中的I/O接口与缓冲进行通信,获取所述缓冲中的应用程序的包名,并根据获取的包名判断当前被打开的应用程序是否是预设的目标优化程序。需要说明的是,实际设计过程中,不限于通过上述方式判断当前被打开的应用程序是否是目标优化程序,本实施方式对此不做限制,以上仅仅作为举例。
目标优化程序可以是一个应用程序,也可以是多个应用程序。目标优化程序可以由用户自行设置,也可以由终端的***默认设置。例如,可以在终端内设置一个白名单,白名单内的应用程序均为目标优化程序。或者,也可以通过设置一个应用程序的类别,来设置目标优化程序,如设置的类别为游戏类,则只要应用程序的类别为游戏类,该应用程序即为目标优化程序。
另外,值得一提的是,在实际应用中,存储的对应关系中的应用程序,可以均为目标优化程序,即在步骤304之前,可以增加一个判断步骤,判断缓冲中的应用程序的包名是否为目标优化程序的包名,如果是目标优化程序的包名,则再执行步骤304,通过记录进程将被打开操作的文件的指示信息,作为缓冲中的应用程序的包名所对应的文件的指示信息,写入数据库中;如果缓冲中的应用程序的包名,不是目标优化程序的包名,则不进行记录。通过这种设计,可以使用户或***自定义需要优化的目标优化程序,仅对需要优化的目标优化程序进行文件预加载,而且,可以减少数据库中储存文件和应用程序的对应关系所需的空间,也进一步提高了查找优化应用程序对应文件的效率。
步骤306,根据被打开的应用程序和数据库中储存的对应关系,查找出与被打开的应用程序对应的文件,并将查找出的文件加载至内存中。
具体地说,根据应用程序的包名从数据库中存储的“文件指示信息和包名的对应关系”中查找该应用程序运行时可能会使用到的文件所对应的文件的名称和该应用程序对应的文件的路径,根据文件的名称和路径获取到文件,并将获取的文件加载至内存,具体的可以将上述文件加载至图中标注252所表示的区域。
在实际的应用中,还可以预先设定文件的优先级,具体的,可以根据文件的使用次数、文件的大小或文件的使用频率预先设定文件的优先级。在将上述文件加载至内存中时,根据内存的占用率、文件的大小以及文件的优先级先加载优先级比较高的文件。具体地说,在将查找出的文件加载至内存中时,首先对内存的占用率和各文件的大小进行查看,如果内存的占用率较大(现有的内存可利用空间较小),可以选择优先级较高的文件加载至内存中。或者,当查找出的文件需要占用的内存空间大于现有的内存可利用空间,即现有的内存可利用空间不足以存储上述查找到的所有文件时,可以先加载优先级较高的文件。
举例而言,以下仅作为举例,不对本实施方式做进一步限制,根据上述查找的文件指示信息确定的文件为P、L、M、N,而这些文件的大小之和为W1,现有的内存可利用空间为W2。如果W1大于W2,则现有的内存可利用空间不足以存储上述查找到的所有文件。此时,需要先加载优先级较高的文件(如文件P、L、M)至内存中。当然,作为另外一种实现,也可以预设一个内存占用率门限,若当前的内存的占用率大于设置的内存占用率门限,则选择优先级较高的文件加载至内存中。
举例而言,以应用程序为QQ为例对文件优先级的设定进行详细的说明,但并非将对文件优先级的设定方式进行进一步限定,仅作为举例说明:
比如,第一次QQ运行的过程中使用到的文件为F1、F2、F3、F4、F5等,第二次QQ的运行过程中使用到的文件为F1、F2、F3、F6、F7等,第三次QQ的运行过程中使用到的文件为F1、F2、F3、F8、F9等,预设次数为3。文件F1、F2、F3的使用次数达到预设次数3,可以判定文件F1、F2、F3为应用程序运行时经常使用的文件,故确定文件F1、F2、F3为优先级较高的文件。文件F4、F5、F6、F7、F8、F9的使用次数小于预设次数3,可以判定文件F4、F5、F6、F7、F8、F9不是应用程序运行时经常使用的文件,故确定文件F4、F5、F6、F7、F8、F9为优先级较低的文件。在现有的内存可利用空间不足以完成QQ运行过程中所需文件的全部加载,或者,当前的内存的占用率大于设置的内存占用率门限时,可选择仅加载F1、F2、F3。
步骤307,在被打开的应用程序运行的过程中直接读取加载在内存中的文件。具体的,应用程序可以通过***内核层24中的I/O接口直接读取记载在内存中的文件开始运行。
本实施方式中,应用程序在启动时,可以直接从数据库中获取相对应的文件指示信息,根据文件指示信息将应用程序运行时需要的文件加载至内存中,并在被打开的应用程序的运行过程中直接读取加载在所述内存中的文件,而非在应用程序的运行过程中需要使用哪个文件,再去将该文件加载至内存。相对于应用程序边运行边加载文件至内存的方案,本方案消耗的时间更短,可以提升应用程序运行的流畅度,有助于匹配用户需求。并且应用程序边运行边加载文件至内存的方案,还会导致应用程序运行时所需要的相关文件在外存上的分布很分散,导致文件加载进一步变慢,应用程序运行更加不流畅;但是本方案在应用程序启动时,就将需使用到的文件加载至内存,使应用程序在运行过程可以直接从内存中读取所需的文件,而不需要在运行过程中进行文件加载,避免了应用程序运行时所需要的相关文件在外存上的分布分散的情况,从而有助于进一步提升应用程序运行的流畅度。
本申请的第三实施方式涉及一种文件预加载方法。第三实施方式在第一实施方式的基础上加以改进,主要改进之处在于:在本实施方式中,在查找与开启的应用程序对应的文件之前,先判断当前内存的占用率。如果当前的内存的占用率大于或等于预设的占用率门限,则不进行文件的预加载,如果判定当前的内存的占用率小于预设的占用率门限,则再查找出与被打开的应用程序对应的文件,并将查找出的文件加载至内存中。
具体流程如图5所示,步骤501中,预先在数据库中存储文件和应用程序的对应关系。本步骤与步骤101类似,在此不再赘述。
步骤502中,判断是否检测到应用程序的开启指令。如果是,则进入步骤503;否则,返回步骤502。本步骤与步骤102类似,在此不再赘述。
步骤503中,判断当前内存的占用率是否小于预设的占用率门限。其中,占用率门限可根据经验值设定。如果判定小于预设的占用率门限,则进入步骤504,若判定大于或等于预设的占用率门限,则进入步骤506,在应用程序的运行过程中,从外存中获取所需的文件并加载至内存。
在步骤504中,根据开启指令开启的应用程序和数据库中储存的对应关系,查找与该应用程序对应的文件,并将查找到的文件加载至内存中,并进入步骤505,在被打开的应用程序运行的过程中直接读取加载在内存中的文件。步骤504与步骤505分别与步骤103和步骤104类似,在此不再赘述。
步骤506,在应用程序的运行过程中,从外存中获取所需的文件并加载至内存。
在本实施方式中,根据当前的内存占用率对文件的加载方式进行了区分,针对当前的内存占用率尚未超出预设的占用率门限这一情况,在应用程序启动时,将该应用程序在运行过程中需使用到的文件加载至内存,并在被打开的应用程序的运行过程中直接读取加载在所述内存中的文件,可以提升应用程序运行的流畅度;针对当前的内存占用率已超出预设的占用率门限这一情况,采用在应用程序的运行过程中,需要使用哪个文件,再从外存中获取该文件并加载至内存的方式,可以有效减轻当前的内存资源的使用负担。
本申请第四实施方式涉及了一种文件预加载装置。如图6所示,文件预加载装置包括:查找模块42,用于在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件。其中,所述文件为所述应用程序运行过程中使用到的文件。在具体实现时,可以通过预设模块41来实现文件和应用程序的对应关系的预先存储。文件和应用程序的对应关系的预先存储方式包括:在应用程序首次运行时,记录应用程序包名及所述应用程序调用的文件的指示信息作为应用程序和文件的对应关系,并存储至数据库中;或者,从网络侧获取文件和应用程序的对应关系,并存储至数据库中。
预加载模块43,用于将所述查找模块查找出的所述对应的文件加载至内存中。
运行模块44,用于在运行应用程序的过程中直接读取加载在所述内存中的文件。
本实施方式中,应用程序在启动时,可以直接从数据库中获取相对应的文件指示信息,文件的指示信息至少包括文件的路径和所述文件的名称。根据文件指示信息将应用程序运行时需要的文件加载至内存中,并在被打开的应用程序的运行过程中直接读取加载在所述内存中的文件,而非在应用程序的运行过程中需要使用哪个文件,再去将该文件加载至内存。相对于应用程序边运行边加载文件至内存的方案,本方案消耗的时间更短,可以提升应用程序运行的流畅度,有助于匹配用户需求。并且应用程序边运行边加载文件至内存的方案,还会导致应用程序运行时所需要的相关文件在外存上的分布很分散,导致文件加载进一步变慢,应用程序运行更加不流畅;但是本方案在应用程序启动时,就将需使用到的文件加载至内存,使应用程序在运行过程可以直接从内存中读取所需的文件,而不需要在运行过程中进行文件加载,避免了应用程序运行时所需要的相关文件在外存上的分布分散的情况,从而有助于进一步提升应用程序运行的流畅度。
本发明第五实施方式涉及一种文件预加载装置。如图7所示,包括:查找模块42,用于在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件。其中,所述文件为所述应用程序运行过程中使用到的文件。在具体实现时,可以通过预设模块41来实现文件和应用程序的对应关系的预先存储。预加载模块43,用于将所述查找模块查找出的所述对应的文件加载至内存中。运行模块44,用于在运行应用程序的过程中直接读取加载在所述内存中的文件。
其中,预设模块41包括:记录子模块411,用于在首次启动应用程序时,将所述应用程序的包名记录至缓冲中。获取子模块412,用于在检测到有文件被打开操作时,获取所述缓冲中的应用程序的包名。写入子模块413,用于将所述被打开操作的文件的指示信息,作为所述缓冲中的应用程序的包名所对应的文件的指示信息,写入数据库中。其中,写入子模块413,具体用于通过记录进程将所述被打开操作的文件的指示信息,作为所述缓冲中的应用程序的包名所对应的文件的指示信息,写入数据库中。
在具体实现时,预设模块41写入数据库的对应关系中的应用程序可以均为目标优化程序。查找模块42在查找与应用程序对应的文件之前,可以先判断当前检测到的开启指令开启的应用程序是否为预设的目标优化程序,若开启指令开启的应用程序为目标优化程序,则再根据应用程序和所述对应关系,查找与被打开的应用程序对应的文件。例如,可以通过获取当前检测到的开启指令开启的应用程序的包名,根据包名判断开启指令开启的应用程序是否为预设的目标优化程序的方式,判断当前检测到的开启指令开启的应用程序是否为预设的目标优化程序。
本申请第六实施方式涉及一种文件预加载装置。如图8所示,包括:查找模块42,用于在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件。其中,所述文件为所述应用程序运行过程中使用到的文件。在具体实现时,可以通过预设模块41来实现文件和应用程序的对应关系的预先存储。预加载模块43,用于将所述查找模块查找出的所述对应的文件加载至内存中。运行模块44,用于在运行应用程序的过程中直接读取加载在所述内存中的文件。
本实施方式的文件预加载装置还包括:判断模块46,用于在查找与所述应用程序对应的文件之前,判断当前内存的占用率。查找模块42,具体用于在判断模块46判定当前的内存的占用率小于预设的占用率门限时,再查找与被打开的应用程序对应的文件。
本申请第七实施方式涉及一种电子设备。电子设备包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行第一或第二实施方式中的文件预加载方法。其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器等。处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
如图9所示,该电子设备可以包括:存储器601、中央处理器CPU 602(CentralProcessing Unit,简称处理器)、所述存储器601,用于存储可执行程序代码;所述处理器602通过读取所述存储器601中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;将查找出的所述对应的文件加载至内存中,并在所述应用程序的运行过程中直接读取加载在所述内存中的文件。
所述电子设备还包括:外设接口603、射频RF电路605、音频电路606、扬声器611、电源管理芯片608、输入/输出(I/O)子***609、触摸屏612、其他输入/控制设备610以及外部端口604,这些部件通过一个或多个通信总线或信号线607来通信。
应该理解的是,图示电子设备600仅仅是电子设备的一个范例,并且电子设备600可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。下面就本实施例提供的电子设备进行详细的描述,该电子设备以手机为例。
存储器601,所述存储器601可以被CPU 602、外设接口603等访问,所述存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本实施方式中,存储器601包括内存6011和外存6012;其中,外存6012用于存储文件以及文件和应用程序的对应关系(即数据库位于外存6012内);内存6011中开辟有一块地址空间作为buffer(缓冲),该缓冲区域用于记录打开的应用程序的包名。在查找与打开的应用程序对应的文件时,根据缓冲区域中记录的包名,以及数据库中存储的对应关系,从外存6012中查找出与该应用程序对应的文件,并将查找出的对应的文件加载至内存6011中。
外设接口603,所述外设接口603可以将设备的输入和输出外设连接到CPU 502和存储器601。
I/O子***609,所述I/O子***609可以将设备上的输入输出外设,例如触摸屏612和其他输入/控制设备610,连接到外设接口603。I/O子***609可以包括显示控制器6091和用于控制其他输入/控制设备610的一个或多个输入控制器6092。其中,一个或多个输入控制器6092从其他输入/控制设备610接收电信号或者向其他输入/控制设备610发送电信号,其他输入/控制设备610可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器6092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏612,所述触摸屏612是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子***609中的显示控制器6091从触摸屏612接收电信号或者向触摸屏612发送电信号。触摸屏612检测触摸屏上的接触,显示控制器6091将检测到的接触转换为与显示在触摸屏612上的用户界面对象的交互,即实现人机交互,显示在触摸屏612上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路605,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路605接收并发送RF信号,RF信号也称为电磁信号,RF电路605将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路605可以包括用于执行这些功能的已知电路,其包括但不限于天线***、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路606,主要用于从外设接口603接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器611。
扬声器611,用于将手机通过RF电路605从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片608,用于为CPU602、I/O子***及外设接口603所连接的硬件进行供电及电源管理。
本实施方式为与第一或第二实施方式相互对应的设备实施方式,因此本实施方式可与第一或第二实施方式互相配合实施。第一或第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第一或第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一或第二实施方式中。
本实施方式中,应用程序在启动时,可以直接从数据库中获取相对应的文件指示信息,根据文件指示信息将应用程序运行时需要的文件加载至内存中,并在被打开的应用程序的运行过程中直接读取加载在所述内存中的文件,而非在应用程序的运行过程中需要使用哪个文件,再去将该文件加载至内存。相对于应用程序边运行边加载文件至内存的方案,本方案消耗的时间更短,可以提升应用程序运行的流畅度,有助于匹配用户需求。并且应用程序边运行边加载文件至内存的方案,还会导致应用程序运行时所需要的相关文件在外存上的分布很分散,导致文件加载进一步变慢,应用程序运行更加不流畅;但是本方案在应用程序启动时,就将需使用到的文件加载至内存,使应用程序在运行过程可以直接从内存中读取所需的文件,而不需要在运行过程中进行文件加载,避免了应用程序运行时所需要的相关文件在外存上的分布分散的情况,从而有助于进一步提升应用程序运行的流畅度。
本申请第八实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现第一、第二或第三实施方式中的文件预加载方法。
即,本领域技术人员可以理解,实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本申请的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (10)

1.一种文件预加载方法,其特征在于,包括:
在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;
将查找出的所述对应的文件加载至内存中,并在所述应用程序的运行过程中直接读取加载在所述内存中的文件。
2.根据权利要求1所述的文件预加载方法,其特征在于,所述文件和应用程序的对应关系的预先存储方式包括:
在应用程序首次运行时,记录应用程序包名及所述应用程序调用的文件的指示信息作为应用程序和文件的对应关系,并存储至数据库中;或者,
从网络侧获取文件和应用程序的对应关系,并存储至数据库中。
3.根据权利要求2所述的文件预加载方法,其特征在于,所述在应用程序首次运行时,记录应用程序包名及所述应用程序调用的文件的指示信息作为应用程序和文件的对应关系,包括:
在首次启动应用程序时,将所述应用程序的包名记录至缓冲中;
在检测到有文件被打开操作时,获取所述缓冲中的应用程序的包名;
将所述被打开操作的文件的指示信息,作为所述缓冲中的应用程序的包名所对应的文件的指示信息,写入数据库中。
4.根据权利要求3所述的文件预加载方法,其特征在于,所述文件的指示信息至少包括所述文件的路径和所述文件的名称。
5.根据权利要求1所述的文件预加载方法,其特征在于,所述对应关系中的应用程序均为目标优化程序;在根据所述应用程序和所述对应关系,查找与所述应用程序对应的文件之前,所述文件预加载方法还包括:
判断当前检测到的开启指令开启的应用程序是否为预设的目标优化程序;
当所述开启指令开启的应用程序为所述目标优化程序时,根据所述应用程序和所述对应关系,查找与所述被打开的应用程序对应的文件。
6.根据权利要求5所述的文件预加载方法,其特征在于,所述判断当前检测到的开启指令开启的应用程序是否为预设的目标优化程序,包括:
获取当前检测到的开启指令开启的应用程序的包名;
根据获取的所述包名判断所述开启指令开启的应用程序是否为预设的目标优化程序。
7.根据权利要求1所述的文件预加载方法,其特征在于,还包括:
在所述查找与所述应用程序对应的文件之前,判断当前内存的占用率;
若当前的内存的占用率小于预设的占用率门限,则再执行所述查找与所述应用程序对应的文件。
8.一种文件预加载装置,其特征在于,包括:
查找模块,用于在检测到应用程序的开启指令时,根据预先存储的文件和应用程序的对应关系,查找与所述应用程序对应的文件;其中,所述文件为所述应用程序运行过程中使用到的文件;
预加载模块,用于将所述查找模块查找出的所述对应的文件加载至内存中;
运行模块,用于在运行应用程序的过程中直接读取加载在所述内存中的文件。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的文件预加载方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的文件预加载方法。
CN201810928017.1A 2018-08-15 2018-08-15 文件预加载方法、装置、电子设备及计算机可读存储介质 Pending CN109284142A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810928017.1A CN109284142A (zh) 2018-08-15 2018-08-15 文件预加载方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810928017.1A CN109284142A (zh) 2018-08-15 2018-08-15 文件预加载方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109284142A true CN109284142A (zh) 2019-01-29

Family

ID=65183545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810928017.1A Pending CN109284142A (zh) 2018-08-15 2018-08-15 文件预加载方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109284142A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321179A (zh) * 2019-07-08 2019-10-11 深圳市迅雷网络技术有限公司 一种应用程序启动方法、***、装置及计算机存储介质
CN110659081A (zh) * 2019-09-10 2020-01-07 北京达佳互联信息技术有限公司 用于程序对象的文件处理方法、装置及电子设备
CN112817648A (zh) * 2019-10-31 2021-05-18 深圳市万普拉斯科技有限公司 应用程序文件预加载方法、装置和移动终端
CN113849245A (zh) * 2021-09-23 2021-12-28 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN114461588A (zh) * 2021-08-20 2022-05-10 荣耀终端有限公司 调节预读窗口的方法及电子设备
CN116661882A (zh) * 2022-11-22 2023-08-29 荣耀终端有限公司 预加载小程序的方法、电子设备及存储介质
CN117112046A (zh) * 2023-04-04 2023-11-24 荣耀终端有限公司 应用程序的启动方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070028224A1 (en) * 2005-07-28 2007-02-01 Lite-On Technology Corporation Program initiation methods and embedded systems utilizing the same
CN103677920A (zh) * 2013-12-11 2014-03-26 清华大学 关键应用程序识别及启动提速的方法及***
CN108228876A (zh) * 2018-01-19 2018-06-29 维沃移动通信有限公司 一种读取文件数据的方法及移动终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070028224A1 (en) * 2005-07-28 2007-02-01 Lite-On Technology Corporation Program initiation methods and embedded systems utilizing the same
CN103677920A (zh) * 2013-12-11 2014-03-26 清华大学 关键应用程序识别及启动提速的方法及***
CN108228876A (zh) * 2018-01-19 2018-06-29 维沃移动通信有限公司 一种读取文件数据的方法及移动终端

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321179A (zh) * 2019-07-08 2019-10-11 深圳市迅雷网络技术有限公司 一种应用程序启动方法、***、装置及计算机存储介质
CN110321179B (zh) * 2019-07-08 2023-02-14 深圳市迅雷网络技术有限公司 一种应用程序启动方法、***、装置及计算机存储介质
CN110659081A (zh) * 2019-09-10 2020-01-07 北京达佳互联信息技术有限公司 用于程序对象的文件处理方法、装置及电子设备
CN110659081B (zh) * 2019-09-10 2022-12-27 北京达佳互联信息技术有限公司 用于程序对象的文件处理方法、装置及电子设备
CN112817648A (zh) * 2019-10-31 2021-05-18 深圳市万普拉斯科技有限公司 应用程序文件预加载方法、装置和移动终端
CN114461588A (zh) * 2021-08-20 2022-05-10 荣耀终端有限公司 调节预读窗口的方法及电子设备
CN113849245A (zh) * 2021-09-23 2021-12-28 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN113849245B (zh) * 2021-09-23 2023-09-12 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN116661882A (zh) * 2022-11-22 2023-08-29 荣耀终端有限公司 预加载小程序的方法、电子设备及存储介质
CN116661882B (zh) * 2022-11-22 2024-04-16 荣耀终端有限公司 预加载小程序的方法、电子设备及存储介质
CN117112046A (zh) * 2023-04-04 2023-11-24 荣耀终端有限公司 应用程序的启动方法及电子设备
CN117112046B (zh) * 2023-04-04 2024-05-10 荣耀终端有限公司 应用程序的启动方法及电子设备

Similar Documents

Publication Publication Date Title
CN109284142A (zh) 文件预加载方法、装置、电子设备及计算机可读存储介质
US20200342338A1 (en) Method for preloading application, storage medium, and terminal
WO2019228156A1 (en) Method and device for preloading application, storage medium and intelligent terminal
US10631361B2 (en) Method and apparatus for providing user with information received by electronic device
CN108228305A (zh) 应用页面的显示方法、装置、存储介质及电子设备
US11099861B2 (en) Method for preloading application, storage medium, and terminal
CN108363528B (zh) 应用页面的启动方法、装置、存储介质及电子设备
JP7098757B2 (ja) アプリケーション機能の実施方法及び電子装置
WO2018120813A1 (zh) 一种智能推荐方法和终端
WO2020155014A1 (zh) 智能家居设备分享***、方法及电子设备
CN108287918B (zh) 基于应用页面的音乐播放方法、装置、存储介质和电子设备
US20170185248A1 (en) Electronic device and method of managing application programs thereof
CN105955766A (zh) 应用预加载方法及装置
CN106445647B (zh) 多开应用的数据操作方法、装置及移动终端
US20220358089A1 (en) Learning-Based Keyword Search Method and Electronic Device
US20150220247A1 (en) Electronic device and method for providing information thereof
CN107678823A (zh) 移动终端应用的控制方法、装置及存储介质和移动终端
CN109408136A (zh) 信息处理方法、装置、存储介质及电子设备
CN106484547A (zh) 一种多开应用的管理方法、装置及终端
CN107402625B (zh) 触摸屏扫描方法、装置、终端及计算机可读存储介质
CN105871695A (zh) 表情发送方法和装置
CN111970401A (zh) 一种通话内容处理方法和电子设备
US20150281394A1 (en) Data sharing method and electronic device thereof
CN106445671A (zh) 一种应用程序的管理方法、装置及终端
CN106648737A (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