发明内容
为此,需要提供一种针对目前安卓***开机时间会随着安装APK增多而变长的问题,发明人提出来一种安卓***实现快速开机的方法,包括如下步骤:读取并解析保存的应用包配置文件,获取预加载列表和当前默认桌面的信息;扫描***文件夹下的框架文件夹中的类并预扫描所述的预加载列表,通知桌面加载完成;关闭开机动画,开始显示桌面。
进一步的,还包括步骤:扫描应用程序文件夹;在通知桌面加载完成的同时,开始扫描应用程序文件夹,应用程序扫描完成后通知桌面加载完成,刷新应用图标。
进一步的,还包括步骤,检查框架库文件是否需要优化可执行文件;若判断为否,才进行获取预加载列表和当前默认桌面的信息的操作;若判断为是,则开始优化可执行文件,优化完毕后通知桌面加载完成,关闭开机动画,开始显示桌面。
进一步的,还包括步骤:判断当前桌面是否为预制桌面;若判断为是,才进行步骤扫描***文件夹下/框架文件夹中的类并预扫描所述的预加载列表,否则开始优化可执行文件,优化完毕后通知桌面加载完成,关闭开机动画,开始显示桌面。
进一步的,所述优化可执行文件操作具体步骤为,扫描***文件夹下的框架文件夹和应用程序文件夹,判断检查重配置文件中读取的包信息是否被扫描到,随后删除未被扫描到的包信息,开始扫描数据文件夹下的应用文件夹,更新权限和配置信息。
一种安卓***实现快速开机的装置,包括读取解析模块、预加载模块、扫描模块和桌面显示模块,所述读取解析模块用于读取并解析保存的应用包配置文件,预加载模块用于获取预加载列表和当前默认桌面的信息;扫描模块用于扫描***文件夹下的框架文件夹中的类并预扫描所述的预加载列表,使能桌面显示模块;桌面显示模块用于关闭开机动画,开始显示桌面。
具体的,扫描模块还用于在使能桌面显示模块的同时,开始扫描应用程序文件夹,桌面显示模块还用于在应用程序扫描完成后,刷新应用图标。
具体的,还包括优化判断模块,所述优化判断模块用于检查判断框架库文件是否需要优化可执行文件;若判断为否,才使能预加载模块;若判断为是,则优化判断模块开始优化可执行文件,优化完毕后使能桌面显示模块。
进一步的,还包括优化判断模块,所述优化判断模块用于判断当前桌面是否为预制桌面;若判断为是,才使能扫描模块,否则优化判断模块开始优化可执行文件,优化完毕后使能桌面显示模块。
具体的,所述优化判断模块还包括扫描判断子模块、删除子模块和更新子模块,所述扫描判断子模块用于扫描***文件夹下的框架文件夹和应用程序文件夹,并判断检查重配置文件中读取的包信息是否被扫描到,删除子模块用于删除未被扫描到的包信息,扫描判断子模块还用于扫描数据文件夹下的应用文件夹,更新子模块用于更新权限和配置信息。
本方案通过修改安卓***原生开机阶段APK扫描机制的手段,即优先扫描***文件夹和预制桌面程序、框架库中的应用程序,使得桌面能够提前显示,随后再进行其他程序的扫描与优化,这样,在开机前扫描的永远是***文件夹、桌面文件夹和桌面上约十个左右的应用程序文件夹,就能实现快速开机。巧妙的解决了现有技术下当APK安装越来越多后开机速度变慢的问题,不管用户后面安卓多少个APK,都不会改变原来***的开机速度。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,现有技术下安卓原生***开机阶段的APK(安卓应用程序数据包)扫描流程在整个开机过程中是与***桌面显示是串行的。APK扫描主要是有PMS(Package Manager Service)来执行的,首先它读取并解析保存在***存储区域的APK包配置文件,其次它需要扫描/system/framework、/system/priv-app、/system/app、/vendor/app这几个应用程序文件夹,扫描完这几个文件夹后,检查从配置文件中读取的APK包信息是否已经被扫描到,有些APK包没有被扫描到,那需要更新配置文件中未被扫描到的APK包信息,更新完成后则继续扫描/data/app文件夹,并更新权限和配置信息,最后执行桌面的APK,并关闭开机动画,显示桌面完成开机流程。
从上述的流程中明显可以看出,如果安装的APK数量一多,中间扫描几个文件夹和检查更新权限配置信息的时间会增长,从而导致开机时间进一步加长。
在本发明的一个具体实施例中,发明人提供了一种安卓***实现快速开机的方法,如图2所示,本方法适用于安装了安卓***的电子设备,本方法可以由安卓***下的PMS(Package Manager Service)线程来完成,包括如下步骤S1:读取并解析保存的应用包配置文件,具体操作为,先确认当前***应用相关信息读取,并解析保存在***存储区域的应用包配置文件,所述***储存区域为安卓***中/system文件夹下的APK文件;S1可以确认应用程序请求的权限、服务、接受等APK相关信息。再进行步骤S4获取预加载列表和当前默认桌面的信息;通过加载配置好的xml文件来得到所述预加载列表,预加载列表中的APK包包含***开机时提前使用的服务与要显示的UI,例如锁屏界面、状态栏等,默认桌面的信息主要是桌面包含的应用程序信息,供后续步骤使用。随后进行S6扫描***文件夹下的框架文件夹中的类并预扫描所述的预加载列表,所述***文件夹下的框架文件夹为安卓***中system/framework文件夹,该文件夹主要是Java类数据所在的文件夹,***运行需要这些类的支持。随后通知桌面加载完成,并进行步骤S7关闭开机动画,开始显示桌面。至此,通过解析配置文件、获取加载列表和桌面信息、扫描运行需要的类,且不用扫描/system/priv-app、/system/app、/vendor/app这几个应用程序文件夹,最大限度简化了开机流程,达到了减少开机时间的效果,解决了如何让安卓***快速开机的问题,此时关闭开机动画,开始显示桌面,由于进行了步骤S4加载了预加载列表和桌面信息,开机后桌面上的应用程序也能正常运行,不会有任何异常。还由于不用扫描应用程序文件夹,该文件夹中安装的应用程序数量不会影响开机流程中的扫描所需时间,达到了开机时间不受***安装的应用程序的数量制约的技术效果。达到了解决上述安卓***开机时间会随着安装APK增多而变长问题的目的。
在某些具体的实施例中,还包括步骤S14:扫描应用程序文件夹;该步骤具体应用方式可以通过如下步骤实现,在PMS工作时进行S2创建一个副线程,等待PMS线程传来的桌面加载完成的通知,当接到通知后有步骤S14扫描应用程序文件夹;在通知桌面加载完成的同时,开始扫描应用程序文件夹,应用程序扫描完成后进行步骤S15刷新应用图标。所述应用程序文件夹包括system/priv-app、system/app、vendor/app、data/app文件夹等,这些文件夹中包含不在桌面显示的应用程序,同时也多为用户自安装的程序,将扫描这些应用程序放在关闭开机动画、显示桌面的同时进行,使得安装多少APK也不影响开机完成和桌面的显示,同时上述应用程序并不是预制桌面上的应用程序,用户不会在开机的第一时间使用,也不会影响用户的使用体验。
作为一个具体的实施例,还包括步骤S3,检查框架库文件是否需要优化可执行文件;所述可执行文件为安卓***中的DEX格式的文件,可以类比为大部分人知道的Windows操作***下的EXE格式的文件。进行该判断步骤的作用是,如果***第一次开启(如设备***新装后的第一次开机或恢复出厂设置后第一次开机)会去检测是否有生成应用相应的DEX文件,若是没有则要生成和优化,这样能提高后面应用运行时的效率。因此,若判断为否,才进行获取预加载列表和当前默认桌面的信息的操作;若判断为是,即S8判定为需要优化DEX可执行文件,则开始优化可执行文件,优化完毕后通知桌面加载完成,关闭开机动画,开始显示桌面。通过设置步骤S3,避免了在第一次开机时尚未优化***文件就进行预加载列表的读取等操作,即避免了可能的运行错误,同时对第一次开机的设备进行优化,能够使得以后的设备开机速度加快。
在另一些具体的实施例中,还包括步骤S5:判断当前桌面是否为预制桌面;若判断为是,才进行步骤扫描***文件夹下/框架文件夹中的类并预扫描所述的预加载列表,否则开始优化可执行文件,优化完毕后通知桌面加载完成,关闭开机动画,开始显示桌面。所述预制桌面应理解为优化操作过的桌面,在本实施例中指桌面UI和主页应用程序都被优化过的桌面,具体的从***配置记录文件中可以读取当前哪些应用程序为主页应用,并可以通过包名来做进一步的确认。若非所述预制桌面,则进入步骤S8判定为需要优化DEX可执行文件,进行优化可执行文件操作。设计步骤S5的意义在于,避免了在更改主页应用后尚未优化***文件就进行类加载等操作,即避免了可能的运行错误,同时对桌面UI和桌面的主页应用程序进行优化,也能提高以后的设备开机速度。
在某些具体的实施例中,所述优化可执行文件操作的具体步骤S9为:扫描***文件夹下的框架文件夹和应用程序文件夹,即system/framework框架文件夹和system/priv-app、system/app、vendor/app这些应用程序文件夹,再进行S10判断重配置文件中读取的包信息是否被扫描到,对于未扫描到的文件进行S13删除未被扫描到的包信息,并进行步骤S11开始扫描数据文件夹下的应用文件夹,即/data/app文件夹,并进行S12更新权限和配置信息。进行上述优化可执行文件步骤,,删除未被扫描优化过的文件、包信息等,让***在开机流程中不再扫描这些文件,节省了扫描文件的时间,提高之后的操作中***的开机速度。
发明人还提供了一种安卓***实现快速开机的装置,包括读取解析模块31、预加载模块32、扫描模块33和桌面显示模块34,所述读取解析模块31用于读取并解析保存的应用包配置文件,预加载模块32用于获取预加载列表和当前默认桌面的信息;扫描模块用于扫描***文件夹下的框架文件夹中的类并预扫描所述的预加载列表,使能桌面显示模块;桌面显示模块34用于关闭开机动画,开始显示桌面。通过上述模块,使得安卓***在便进行了解析配置文件、获取加载列表和桌面信息、扫描运行需要的类,等所有准备工作,此时关闭开机动画,开始显示桌面,桌面上的应用程序也能正常运行,不会有任何异常,且由于省去了扫描应用程序文件夹的步骤,达到了开机时间不受***安装的应用程序的数量制约的技术效果。也达到了解决上述安卓***开机时间会随着安装APK增多而变长问题的目的。
具体的,扫描模块33还用于在使能桌面显示模块的同时,开始扫描应用程序文件夹,桌面显示模块35还用于在应用程序扫描完成后,刷新应用图标。设计扫描模块的好处在于将扫描这些应用程序放在关闭开机动画、显示桌面的同时进行,使得安装多少APK也不影响开机完成和桌面的显示,同时上述应用程序并不是预制桌面上的应用程序,用户不会在开机的第一时间使用,也不会影响用户的使用体验。
在另一些实施例中,还包括优化判断模块35,所述优化判断模块35用于检查判断框架库文件是否需要优化可执行文件;若判断为否,才使能预加载模块;若判断为是,则优化判断模块开始优化可执行文件,优化完毕后使能桌面显示模块。设计优化判断模块的好处在于避免了在第一次开机时就进行快速开机操作,避免了可能的运行错误,也提高了***的运行效率。
在另一些具体的实施例中,所述优化判断模块35用于判断当前桌面是否为预制桌面;若判断为是,才使能扫描模块33,否则优化判断模块开始优化可执行文件,优化完毕后使能桌面显示模块。设计优化判断模块的另一个好处在于避免了在更改了主页应用或预制桌面后进行快速开机操作,避免了可能的运行错误,也提高了***的运行效率。
具体的所述优化判断模块35还包括扫描判断子模块351、删除子模块352、更新子模块353,所述扫描判断子模块用于扫描***文件夹下的框架文件夹和应用程序文件夹,并判断检查重配置文件中读取的包信息是否被扫描到,删除子模块用于删除未被扫描到的包信息,扫描判断子模块还用于扫描数据文件夹下的应用文件夹,更新子模块用于更新权限和配置信息。设计这些子模块的好处在与更新文件和优化配置信息、删除未扫描到的文件包信息,令***在快速开机时不用浪费时间扫描这些文件,也便于***在之后的快速开机操作中调用可执行文件,提高了应用程序以及***的运行速度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。