CN114546717A - 安卓智能终端开机的方法、装置、智能终端和存储介质 - Google Patents
安卓智能终端开机的方法、装置、智能终端和存储介质 Download PDFInfo
- Publication number
- CN114546717A CN114546717A CN202210047890.6A CN202210047890A CN114546717A CN 114546717 A CN114546717 A CN 114546717A CN 202210047890 A CN202210047890 A CN 202210047890A CN 114546717 A CN114546717 A CN 114546717A
- Authority
- CN
- China
- Prior art keywords
- package
- exists
- intelligent terminal
- packages
- starting
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
Abstract
本发明涉及一种安卓智能终端开机的方法,所述安卓智能终端加载有安卓系统,该方法包括以下步骤:在所述安卓系统开机启动时,启动控制包管理服务Package Manager Service;判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;控制所述Package Manager Service重新生成packages.xml文件。本申请首先通过确定packages.xml文件是否存在,如果存在,则确定解析该文件的过程中是否存在异常,如果存在异常,则删除该异常文件并重新生成该文件。通过检测终端的packages.xml文件是否有异常损坏导致不能开机的情况并针对该文件存在的问题进行删除和重新生成,从而解决安卓智能终端因为packages.xml文件异常损坏而导致的无法开机的问题。
Description
技术领域
本发明涉及智能终端技术领域,尤其涉及安卓智能终端开机的方法、装置、智能终端和存储介质。
背景技术
Android系统服务Package Manager Service(简称PMS,是Android系统服务,它负责系统中Package的管理,应用程序的安装、卸载、信息查询等)会扫描所安装的APK(Android Package,即Android安装包),建立对应的数据结构来管理Package信息、组件信息、权限信息等各种信息,方便系统上层各应用的调用。安卓终端系统在启动过程中,常常会因为PMS启动相关的问题,导致终端不能够正常开机。
发明内容
基于此,本发明提供了一种安卓智能终端开机的方法、装置、智能终端和存储介质,本申请通过检测终端不能够正常开机的原因是否和packages.xml文件有关,当确定与packages.xml文件相关时,通过删除异常的packages.xml文件来解决终端不能够正常开机进入系统的问题。
根据本申请的一些实施例的第一方面,提供了一种安卓智能终端开机的方法,所述安卓智能终端加载有安卓系统,该方法包括以下步骤:
在所述安卓系统开机启动时,启动控制包管理服务Package Manager Service;
判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;
检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;
控制所述Package Manager Service重新生成packages.xml文件。
进一步地,如果所述packages.xml文件不存在,控制所述控制包管理服务PackageManager Service生成所述packages.xml文件。
进一步地,如果解析所述packages.xml文件的过程中不存在异常,继续启动其他服务以使终端正常开机。
进一步地,所述判断packages.xml文件是否存在,包括以下步骤:
检测Settings类的readLPw函数的mSettingsFilename.exists文件是否存在;
如果存在,确定所述packages.xml文件存在;
如果不存在,确定所述packages.xml文件不存在。
进一步地,所述解析所述packages.xml文件,包括以下步骤:
根据安卓系统API提供的XmlPullParser类解析所述packages.xml文件。
进一步地,所述检测所述解析所述packages.xml文件的过程中是否存在异常,包括以下步骤:
通过JAVA语法自带的try,catch机制监听解析所述packages.xml文件的过程;
判断是否抛出Exception;
如果捕获到Exception,则确定解析所述packages.xml文件的过程中存在异常。
进一步地,所述控制所述Package Manager Service重新生成packages.xml文件,包括以下步骤:
重新启动安卓系统的System Server进程;
通过System Server进程重新启动所述控制包管理服务Package ManagerService;
在所述控制包管理服务Package Manager Service构造函数里实例化Settings类;
在所述Settings类的构造函数通过mSettingsFilename=new File(mSystemDir,"packages.xml")方法重新生成所述packages.xml文件。
据本申请的一些实施例的第二方面,提供了一种安卓智能终端开机的装置,包括:
启动模块,用于在所述安卓系统开机启动时,启动控制包管理服务PackageManager Service;
判断模块,用于判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;
异常检测模块,用于检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;
重建模块,用于控制所述Package Manager Service重新生成packages.xml文件。
根据本申请的一些实施例的第三方面,提供了一种智能终端,包括:
至少一个存储器和至少一个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面任一项所述的一种安卓智能终端开机的方法的步骤。
根据本申请的一些实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序:所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
本申请提供的一种安卓智能终端开机的方法,首先通过确定packages.xml文件是否存在,如果不存在,则控制终端重新生成该文件,如果存在,则确定解析该文件的过程中是否存在异常,如果存在,则删除该异常文件并重新生成该文件。本申请通过检测终端的packages.xml文件是否有异常损坏导致不能开机的情况并针对该文件存在的问题进行删除和重新生成,从而解决安卓智能终端因为packages.xml文件异常损坏而导致的无法开机的问题。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图说明
图1为本申请实施例中的一种安卓智能终端开机的方法的步骤流程图;
图2为本申请实施例中的一种安卓智能终端开机的装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的人体,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联人体的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联人体是一种“或”的关系。
安卓终端系统在启动过程中,常常会因为PMS启动相关的问题,导致终端不能够正常开机。当前安卓系统针对不开机的恢复机制中没有包含packages.xml文件异常损坏这种异常情况的处理,从而导致手机因发生这种异常不能恢复,一直处于开机动画界面不能进入系统,影响较为严重。
为了解决上述问题,请参阅图1,图1为本申请提供一种安卓智能终端开机的方法,安卓智能终端加载有安卓系统,该方法包括以下步骤:
步骤S1:在所述安卓系统开机启动时,启动控制包管理服务Package ManagerService。
控制包管理服务Package Manager Service(简称PMS)会在启动过程中扫描安卓系统各个分区安装的所有应用,并将已经安装的应用的基本信息包括如安装路径,申请的permission等信息写入系统存储的data/system/packages.xml路径,下次安卓系统开机启动时会去解析packages.xml并与当前扫描到的各分区的应用两者进行对比,看是否发现有升级的app,然后进行相关处理,最后再次写入packages.xml中。
步骤S2:判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件。
该packages.xml文件记录了系统当中安装的应用的所有属性,权限等信息。当系统中的应用安装、删除、升级时,文件就会被更新。
在首次开机过程中,PMS在扫描到各分区应用基本信息在写入packges.xml的时候,手机刚好在这个时候出现掉电直接关机,虽然packages.xml文件存在,但是其内容没有写完,就会出现packages.xml文件内容损坏的异常情况。此时,需要判断该packages.xml文件是否存在以便于系统进行解析和读取。在一个具体的实施例中,所述判断packages.xml文件是否存在,包括以下步骤:
检测Settings类的readLPw函数的mSettingsFilename.exists文件是否存在。如果存在,确定所述packages.xml文件存在。如果不存在,确定所述packages.xml文件不存在。
解析packages.xml文件的目的在于确认每一个应用的一些基本信息,包含了应用的版本号,申请了哪些系统权限,安装在系统文件的目录等等基本信息。然后将解析到的这些信息写入系统数据库,然后供上层应用去读取以及使用。具体的,解析所述packages.xml文件,包括以下步骤:
根据安卓系统API提供的XmlPullParser类解析所述packages.xml文件。
步骤S3:检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件。
所述异常指示安卓系统不能够正常解析该packages.xml文件。在一个具体的例子中,所述检测所述解析所述packages.xml文件的过程中是否存在异常,包括以下步骤:
通过JAVA语法自带的try,catch机制监听解析所述packages.xml文件的过程。判断是否抛出Exception。如果捕获到Exception,则确定解析所述packages.xml文件的过程中存在异常。
步骤S4:控制所述Package Manager Service重新生成packages.xml文件。
删除异常的packages.xml文件后,为了能够重新启动终端系统,则需要重新生成该packages.xml文件。在一个具体的例子中,控制所述Package Manager Service重新生成packages.xml文件,包括以下步骤:
重新启动安卓系统的SystemServer进程;
通过SystemServer进程重新启动所述控制包管理服务Package ManagerService;
在所述控制包管理服务Package Manager Service构造函数里实例化Settings类;
在所述Settings类的构造函数通过mSettingsFilename=new File(mSystemDir,"packages.xml")方法重新生成所述packages.xml文件。
本申请通过检测packages.xml文件是否存在异常,并确定如果存在异常,删除该异常packages.xml文件并重新生成该packages.xml文件,从而避免了安卓智能终端因为packages.xml文件损坏导致的不能开机。
通常,安卓智能终端会在第一次开机后,将packages.xml文件建立好,在后续的多次重启开机过程中,只需要读取更新该packages.xml文件即可。但是,终端有可能第一次时没有packages.xml文件,为了补救上述问题,在一个优选的实施例中,该方法还包括以下步骤:
如果所述packages.xml文件不存在,控制所述控制包管理服务Package ManagerService生成所述packages.xml文件。
此时,表明终端的控制包管理服务Package Manager Service还没有生成该packages.xml文件。因此,需要重新生成该文件以供后续读取。
在另一个优选的实施例中,还包括以下步骤:
如果解析所述packages.xml文件的过程中不存在异常,继续启动其他服务以使终端正常开机。
与上述的一种安卓智能终端开机的方法相对应,本申请实施例还提供一种安卓智能终端开机的装置200,包括:
启动模块210,用于在所述安卓系统开机启动时,启动控制包管理服务PackageManager Service;
判断模块220,用于判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;
异常检测模块230,用于检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;
重建模块240,用于控制所述Package Manager Service重新生成packages.xml文件。
在一个可选的实施例中,该装置200还包括:
文件生成模块,用于如果所述packages.xml文件不存在,控制所述控制包管理服务Package Manager Service生成所述packages.xml文件。
在一个可选的实施例中,该装置200还包括:
正常开机模块,用于如果解析所述packages.xml文件的过程中不存在异常,继续启动其他服务以使终端正常开机。
在一个可选的实施例中,判断模块220包括:
文件判断单元,用于检测Settings类的readLPw函数的mSettingsFilename.exists文件是否存在。
第一确定单元,用于如果存在,确定所述packages.xml文件存在。
第二确定单元,用于如果不存在,确定所述packages.xml文件不存在。
文件解析单元,用于根据安卓系统API提供的XmlPullParser类解析所述packages.xml文件。
在一个可选的实施例中,异常检测模块230包括:
监听单元,用于通过JAVA语法自带的try,catch机制监听解析所述packages.xml文件的过程。
抛出单元,用于判断是否抛出Exception。
异常确定单元,用于如果捕获到Exception,则确定解析所述packages.xml文件的过程中存在异常。
在一个可选的实施例中,重建模块240包括:
第一重启单元,用于重新启动安卓系统的SystemServer进程。
第二重启单元,用于通过SystemServer进程重新启动所述控制包管理服务Package Manager Service。
实例化单元,用于在所述控制包管理服务Package Manager Service构造函数里实例化Settings类。
重建单元,用于在所述Settings类的构造函数通过mSettingsFilename=newFile(mSystemDir,"packages.xml")方法重新生成所述packages.xml文件。
与上述的一种安卓智能终端开机的方法相对应,本申请实施例还提供一种智能终端,包括:至少一个存储器和至少一个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上述任意一种安卓智能终端开机的方法的步骤。
与上述的一种安卓智能终端开机的方法相对应,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序:所述计算机程序被处理器执行时实现如上述任意一种安卓智能终端开机的方法的步骤。
本申请提供的一种安卓智能终端开机的方法,通过检测终端的packages.xml文件是否有异常损坏导致不能开机的情况并针对该文件存在的问题进行删除和重新生成,从而解决安卓智能终端因为packages.xml文件异常损坏而导致的无法开机的问题。首先,确定packages.xml文件是否存在,如果不存在,则控制终端重新生成该文件,如果存在,则确定解析该文件的过程中是否存在异常,如果存在,则删除该异常文件并重新生成该文件。
应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求来限制。以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。
Claims (10)
1.一种安卓智能终端开机的方法,所述安卓智能终端加载有安卓系统,其特征在于,该方法包括以下步骤:
在所述安卓系统开机启动时,启动控制包管理服务Package Manager Service;
判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;
检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;
控制所述Package Manager Service重新生成packages.xml文件。
2.根据权利要求1所述的一种安卓智能终端开机的方法,其特征在于,还包括以下步骤:
如果所述packages.xml文件不存在,控制所述控制包管理服务Package ManagerService生成所述packages.xml文件。
3.根据权利要求2所述的一种安卓智能终端开机的方法,其特征在于,还包括以下步骤:
如果解析所述packages.xml文件的过程中不存在异常,继续启动其他服务以使终端正常开机。
4.根据权利要求1所述的一种安卓智能终端开机的方法,其特征在于,所述判断packages.xml文件是否存在,包括以下步骤:
检测Settings类的readLPw函数的mSettingsFilename.exists文件是否存在;
如果存在,确定所述packages.xml文件存在;
如果不存在,确定所述packages.xml文件不存在。
5.根据权利要求1所述的一种安卓智能终端开机的方法,其特征在于,所述解析所述packages.xml文件,包括以下步骤:
根据安卓系统API提供的XmlPullParser类解析所述packages.xml文件。
6.根据权利要求1所述的一种安卓智能终端开机的方法,其特征在于,所述检测所述解析所述packages.xml文件的过程中是否存在异常,包括以下步骤:
通过JAVA语法自带的try,catch机制监听解析所述packages.xml文件的过程;
判断是否抛出Exception;
如果捕获到Exception,则确定解析所述packages.xml文件的过程中存在异常。
7.根据权利要求1所述的一种安卓智能终端开机的方法,其特征在于,所述控制所述Package Manager Service重新生成packages.xml文件,包括以下步骤:
重新启动安卓系统的SystemServer进程;
通过SystemServer进程重新启动所述控制包管理服务Package Manager Service;
在所述控制包管理服务Package Manager Service构造函数里实例化Settings类;
在所述Settings类的构造函数通过mSettingsFilename=new File(mSystemDir,"packages.xml")方法重新生成所述packages.xml文件。
8.一种安卓智能终端开机的装置,其特征在于,包括:
启动模块,用于在所述安卓系统开机启动时,启动控制包管理服务Package ManagerService;
判断模块,用于判断packages.xml文件是否存在,如果所述packages.xml文件存在,解析所述packages.xml文件;
异常检测模块,用于检测所述解析所述packages.xml文件的过程中是否存在异常,如果存在异常,删除异常的所述packages.xml文件;
重建模块,用于控制所述Package Manager Service重新生成packages.xml文件。
9.一种智能终端,其特征在于,包括:
至少一个存储器和至少一个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7任一项所述的一种安卓智能终端开机的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:
所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047890.6A CN114546717A (zh) | 2022-01-17 | 2022-01-17 | 安卓智能终端开机的方法、装置、智能终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047890.6A CN114546717A (zh) | 2022-01-17 | 2022-01-17 | 安卓智能终端开机的方法、装置、智能终端和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546717A true CN114546717A (zh) | 2022-05-27 |
Family
ID=81671398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210047890.6A Pending CN114546717A (zh) | 2022-01-17 | 2022-01-17 | 安卓智能终端开机的方法、装置、智能终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546717A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860327A (zh) * | 2022-07-07 | 2022-08-05 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
-
2022
- 2022-01-17 CN CN202210047890.6A patent/CN114546717A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860327A (zh) * | 2022-07-07 | 2022-08-05 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
CN114860327B (zh) * | 2022-07-07 | 2022-09-23 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399132B (zh) | 一种调度测试方法、装置及存储介质 | |
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN100426298B9 (zh) | 一种垃圾文件清理方法及系统 | |
CN110941528B (zh) | 一种基于故障的日志埋点设置方法、装置及系统 | |
US8768896B2 (en) | Setting information database management | |
US20080072219A1 (en) | Deployment and versioning of applications | |
JP2003256225A (ja) | コンピュータシステム、障害対応方法及びコンピュータシステムを機能させるためのプログラム | |
US8930761B2 (en) | Test case result processing | |
US20090187791A1 (en) | Failure Location Detection Using Types in Assembly Files | |
CN111506326A (zh) | 终端设备的升级方法、装置、设备及存储介质 | |
CN111914250B (zh) | 一种Linux系统脚本程序运行时验证与管控方法 | |
CN115185777A (zh) | 一种异常检测方法、装置、可读存储介质以及电子设备 | |
CN111258850A (zh) | 一种基于Linux系统的更新软件信息的方法及装置 | |
CN111859399A (zh) | 一种基于oval的漏洞检测方法及装置 | |
CN114546717A (zh) | 安卓智能终端开机的方法、装置、智能终端和存储介质 | |
US20070234114A1 (en) | Method, apparatus, and computer program product for implementing enhanced performance of a computer system with partially degraded hardware | |
CN109254856B (zh) | 智能pos服务端提供接口给客户端的方法 | |
CN115934390A (zh) | 处理应用程序崩溃的方法、系统和运行应用程序的设备 | |
CN113791824B (zh) | 一种终端设备的外设驱动加载方法、系统及介质 | |
CN114546420A (zh) | 一种软件远程安装保护卸载方法 | |
CN111694724A (zh) | 分布式表格系统的测试方法、装置、电子设备及存储介质 | |
CN112650613B (zh) | 一种错误信息处理方法、装置、电子设备及存储介质 | |
CN112596750A (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN113504917A (zh) | Ambari大数据平台集成大数据组件的方法及介质 | |
CN112559131A (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 |