一种基于教育系统的加速应用启动的方法及电子设备与流程

文档序号:17078931发布日期:2019-03-09 00:01阅读:151来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种基于教育系统的加速应用启动的方法及电子设备。
背景技术
::随着互联网的发展,各种应用程序层出不穷,例如游戏应用、生活应用、工作应用等等,这些应用程序在人们的日常工作生活当中起着越来越重要的作用。而操作系统在重新启动后,首次启动应用程序需要读取并加载文件及动态链接库,通常会导致应用程序启动较缓慢的情况。因此,现有技术还有待于改进和发展。技术实现要素:鉴于上述现有技术的不足,本发明的目的在于提供一种基于教育系统的加速应用启动的方法及电子设备,旨在解决现有技术中应用程序启动慢的问题。本发明的技术方案如下:一种基于教育系统的加速应用启动的方法,其中,包括步骤:a、在系统启动后,对应用程序所对应的二进制文件进行解析,获得动态库文件;b、将解析出的动态库文件写入方案配置;c、读取所述方案配置,将动态库文件的内容加载至内存;d、当启动应用程序时,从内存中取用动态库文件的内容。所述的基于教育系统的加速应用启动的方法,其中,所述步骤a具体包括:a1、通过gnu提供的readelf或者ldd对应用程序所对应的二进制文件进行解析;a2、根据解析结果获取动态库文件。所述的基于教育系统的加速应用启动的方法,其中,所述步骤b具体包括:b1、通过一配置文件记录应用程序的动态库文件,形成动态库文件列表;b2、保存记录有所述动态库文件列表的配置文件。所述的基于教育系统的加速应用启动的方法,其中,所述步骤a之前还包括:对应用程序进行排序,形成应用程序的排序列表。所述的基于教育系统的加速应用启动的方法,其中,所述步骤a具体包括:对排列在前的若干应用程序所对应的二进制文件进行解析,获得相应应用程序的动态库文件。所述的基于教育系统的加速应用启动的方法,其中,按照应用程序的使用频率和使用时长对应用程序进行排序。所述的基于教育系统的加速应用启动的方法,其中,排序的步骤如下:为使用频率和使用时长各分配一权重,二者权重之和为1;计算每一个应用程序的使用频率和使用时长与相应权重相乘之后,得到每一个应用程序的分值;按照分值高低对应用程序进行排序。一种电子设备,其中,包括:处理器,适于实现各指令,以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:在系统启动后,对应用程序所对应的二进制文件进行解析,获得动态库文件;将解析出的动态库文件写入方案配置;读取所述方案配置,将动态库文件的内容加载至内存;当启动应用程序时,从内存中取用动态库文件的内容。一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于教育系统的加速应用启动的方法。一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于教育系统的加速应用启动的方法。有益效果:通过本发明,在系统启动完成后,会自动对应用程序的二进制文件进行解析,并将动态库文件的内容加载到内存,这样应用程序在首次启动中,操作系统无需进行预读取操作,从而加快启动速度。附图说明图1为本发明一种基于教育系统的加速应用启动的方法较佳实施例的流程图。图2为本发明一种电子设备较佳实施例的结构框图。具体实施方式本发明提供一种基于教育系统的加速应用启动的方法及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,图1为本发明一种基于教育系统的加速应用启动的方法较佳实施例的流程图,其包括步骤:s1、在系统启动后,对应用程序所对应的二进制文件进行解析,获得动态库文件;s2、将解析出的动态库文件写入方案配置;s3、读取所述方案配置,将动态库文件的内容加载至内存;s4、当启动应用程序时,从内存中取用动态库文件的内容。通过本发明,在系统启动完成后,会自动对应用程序的二进制文件进行解析,并将动态库文件的内容加载到内存,这样应用程序在首次启动中,操作系统无需进行预读取操作,从而加快启动速度。在所述步骤s1中,先对应用程序所对应的二进制文件进行解析,以便获取动态库文件。linux下应用程序对应的二进制文件格式是elf(executableandlinkableformat),即可执行连接文件格式。elf文件是一种标准定义的文件格式,通常由二者部分组成:elfheader、programheaders|sectionheaders、sections|programsegments。在操作系统开发中,为了开发的灵活性,同时为了节省空间和内存占用,开发者往往共用的程序函数封装成共享库,当一个可执行程序在启动的时候会加载所依赖的共享库。本发明中的动态库文件即前述的共享库。步骤s1的目的也就是获取共享库,因为在应用程序首次启动前,操作系统中并无对应共享库的内存缓存,导致启动应用程序需要从加载非常多依赖的共享库,造成应用程序启动缓慢的情况。故,本发明在系统启动(即操作系统启动)时,就首先对应用程序对应的二进制文件进行解析,获取动态库文件。具体地,所述步骤s1具体包括:s11、通过gnu提供的readelf或者ldd对应用程序所对应的二进制文件进行解析;s12、根据解析结果获取动态库文件。在所述步骤s11中,linux提供了很多种查看和解析elf对象(包括共享库)的工具,本发明可以通过gnu提供的readelf或者ldd来进行解析。linux一般和gnu一起使用:整个操作系统就是gnu加上linux,或叫gnu/linux。readelf可以显示一个或者多个elf格式的目标文件的信息,可以通过readelf的选项来控制显示哪些信息。readelf的命令如下:-a--all显示全部信息,等价于-h-l-s-s-r-d-v-a-i.-h--file-header显示elf文件开始的文件头信息.-l--program-headers--segments显示程序头(段头)信息(如果有的话)。-s--section-headers--sections显示节头信息(如果有的话)。-g--section-groups显示节组信息(如果有的话)。-t--section-details显示节的详细信息(-s的)。-s--syms--symbols显示符号表段中的项(如果有的话)。-e--headers显示全部头信息,等价于:-h-l-s-n--notes显示note段(内核注释)的信息。-r--relocs显示可重定位段的信息。-u--unwind显示unwind段信息。当前只支持ia64elf的unwind段信息。-d--dynamic显示动态段的信息。-v--version-info显示版本段的信息。-a--arch-specific显示cpu构架信息。-d--use-dynamic使用动态段中的符号表显示符号,而不是使用符号段。-x<numberorname>--hex-dump=<numberorname>以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。-w[liaprmffsor]or--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=ranges]显示调试段中指定的内容。-i--histogram显示符号的时候,显示bucketlist长度的柱状图。-v--version显示readelf的版本信息。-h--help显示readelf所支持的命令行选项。-w--wide宽行输出。@file可以将选项集中到一个文件中,然后使用这个@file选项载入。ldd命令用于打印程序或者库文件所依赖的共享库。ldd不是一个可执行程序,而只是一个shell脚本,ldd能够显示可执行模块的共享库,其原理是通过设置一系列的环境变量来实现。环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的共享库,而程序并不真正执行。ldd的命令如下:--version:打印指令版本号;-v:详细信息模式,打印所有相关信息;-u:打印未使用的直接依赖;-d:执行重定位和报告任何丢失的对象;-r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;--help:显示帮助信息。在所述步骤s12中,根据解析结果获取共享库依赖项目,根据共享库依赖项目获取动态库文件。在所述步骤s2中,将解析出的动态库文件写入方案配置,以便启动应用程序时,可直接读取。具体地,所述步骤s2具体包括:s21、通过一配置文件记录应用程序的动态库文件,形成动态库文件列表;s22、保存记录有所述动态库文件列表的配置文件。因为可能需要快速启动多个应用程序,所以可通过一配置文件记录应用程序的动态库文件,形成列表。然后保存配置文件。在所述步骤s3中,读取所述方案配置,将动态库文件的内容加载至内存;上述步骤就是读取配置文件,然后将各应用程序的动态库文件加载至内存缓存(pagecache)。后续启动应用程序时,就省去了预读取操作。在所述步骤s4中,当启动应用程序时,从内存中取用动态库文件的内容。这样,应用程序在启动时(操作启动启动后,应用程序首次启动)由于省去了预读取操作的过程,所以可大大提高启动速度。进一步,所述步骤s1之前还包括:对应用程序进行排序,形成应用程序的排序列表。由于内存是有限的,不可能将所有文件加载至内存缓存。因此本发明在操作系统中运行一个守护程序,主要负责统计用户常用的应用程序,以对应用程序进行排序,形成应用程序的排序列表。进一步,所述步骤a具体包括:对排列在前的若干应用程序所对应的二进制文件进行解析,获得相应应用程序的动态库文件。即本发明只对排列在前的若干个应用程序进行解析,然后加快这些应用程序的启动,而对其他的应用程序则不进行加速启动,这也是保证操作系统运行内存前提下,只将排序靠前的应用程序所依赖的动态库文件解析出来,并写入内存作为方案配置。当后续这些应用程序在启动时,将省去预读取操作,从而加快启动速度,而对于不常用的应用程序则按照传统方式启动。进一步,按照应用程序的使用频率和使用时长对应用程序进行排序。通过上述守护程序分析用户日常行为按照使用频率、使用时长等进行排序。其中的使用频率是指一段时间内使用应用程序的次数。其中的使用时长是指一段时间内使用应用程序的总时长。对于同一个应用程序,上述使用频率以及使用时长二者所指的一段时间,可以相同,也可以不同,但本发明优选的是,二者所指的一段时间相同。而不同应用程序的使用频率其所指的一段时间相同,不同应用程序的使用时长其所指的一段时间相同,这样不同应用程序才能进行比较。所述的一段时间可以是过去一周、过去一个月或者过去一个季度,或者用户自定义的一段时间。优选的,统计在过去一个月内使用应用程序的次数,从而得到使用频率,统计在过去一个月内使用应用程序的总时长,从而得到使用时长。这样的统计时间比较合理,可比较准确地获取用户常用的应用程序。本发明可每隔一段时间计算一次使用频率和使用时长,例如每隔一周、一个月或一个季度计算一次使用频率和使用时长,即定时计算使用频率和使用时长。例如,定时在每月的1号计算一次使用频率和使用时长,这样可以计算过去上个月内使用应用程序的次数和总时长。当然也可以定时在每周的周一计算一次使用频率和使用时长,这样可以计算计算日之前的过去一个月内使用应用程序的次数和总时长。进一步,排序的步骤如下:为使用频率和使用时长各分配一权重,二者权重之和为1;计算每一个应用程序的使用频率和使用时长与相应权重相乘之后,得到每一个应用程序的分值;按照分值高低对应用程序进行排序。即,本发明中,使用频率和使用时长均占用一定的权重,根据每一个应用程序的使用频率和使用时长以及相应的权重,计算出每一个应用程序的分值,然后进行排序,从而得到排序列表。使用频率和使用时长两个指标分别代表了不同的含义,应用程序的使用频率越高,则说明用户开启该应用程序的次数越多,应用程序的使用频率越低,则说明用户开启该应用程序的次数越少;应用程序的使用时长越多,则说明用户使用该应用程序的时间越多,应用程序的使用时长越少,则说明用户使用该应用程序的时间越少。上述两个指标都能代表应用程序的启动情况,所以本发明为使用频率和使用时长均分配了一个权重,二者所占比例可以各为50%,即使用频率的权重为50%,使用时长的权重为50%,二者相加为1。当然,如果某一指标可能比较重要,可以为其分配更多的权重,并为另一指标分配更低的权重,但二者之后应为1。然后计算每一个应用程序的使用频率和使用时长与相应权重相乘之后,得到每一个应用程序的分值。例如应用程序a的使用频率为a1,使用时长为b1,应用程序b的使用频率为a2,使用时长为b2,应用程序c的使用频率为a3,使用时长为b3,应用程序d的使用频率为a4,使用时长为b4,应用程序e的使用频率为a5,使用时长为b5。并且使用频率和使用时长的权重各为50%,那么应用程序a的分值为a1*50%+b1*50%=c1,应用程序b的分值为a2*50%+b2*50%=c2,应用程序c的分值为a3*50%+b3*50%=c3,应用程序d的分值为a4*50%+b4*50%=c4,应用程序e的分值为a5*50%+b5*50%=c5,然后对各应用程序的分值进行排序,例如c1>c2>c3>c4>c5,那么各应用程序从前至后依次排序为:a、b、c、d和e。从排序列表中取出前若干个应用程序进行解析即可。取出的应用程序数量可根据实际情况进行调整,例如取出前5个应用程序进行解析。这样,这5个应用程序的启动速度将大大提高。本发明还提供一种电子设备10,如图2所示,其包括:处理器110,适于实现各指令,以及存储设备120,适于存储多条指令,所述指令适于由处理器110加载并执行:在系统启动后,对应用程序所对应的二进制文件进行解析,获得动态库文件;将解析出的动态库文件写入方案配置;读取所述方案配置,将动态库文件的内容加载至内存;当启动应用程序时,从内存中取用动态库文件的内容。所述处理器110可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、任何其它这种配置。存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于教育系统的加速应用启动的方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行基于教育系统的加速应用启动的方法的各种功能应用以及数据处理,即实现上述方法实施例。关于上述电子设备10的具体技术细节在前面的方法中已有详述,故不再赘述。本发明还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于教育系统的加速应用启动的方法。本发明还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于教育系统的加速应用启动的方法。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1