车辆Android系统异常处理方法、系统及存储介质
技术领域
本发明涉及车辆系统功能安全技术领域,具体是涉及车辆Android系统异常处理方法、系统及存储介质。
背景技术
Android系统底层为Linux系统支持,Android系统建立在Linux系统启动之后的Linux系统的基础上,通过init进程启动其他所有的进程,这其中就包括启动system_server进程。system_server进程会启动Android系统的所有服务和应用。其中,Init进程为Linux系统的第一个进程,后续所有进程的启动和管控都由该进程完成。system_server进程为Linux系统中启动的一个进程,由zygote进程派生出。所有Android系统的服务和应用,都依赖该进程。该进程在系统启动过程中会由init进程自动启动。在Android系统异常导致退出的情况下,会尝试重启。
在安卓系统出现异常时,目前的解决方案中,都是去恢复出厂或者提供ota升级选项来规避,但直接恢复出厂设置,会丢失所有的用户数据。而ota升级则需要网络条件和时间来更新系统。这就导致用户当前无法继续使用该设备。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供车辆Android系统异常处理方法、系统及存储介质。
第一方面,本发明提供了一种车辆Android系统异常处理方法,包括以下步骤:在Linux系统中增设异常守护进程,当Linux系统启动后,init进程启动异常守护进程;当所述init进程启动Android系统时,通过所述异常守护进程判断所述Android系统是否正常启动;当所述异常守护进程判定所述Android系统启动异常,所述异常守护进程执行启动异常界面显示指令显示异常显示界面;获取用户通过所述异常显示界面输入的触按指令,执行与所述触按指令对应的服务。
根据第一方面,在第一方面第一种可能的实现方式中,所述“异常守护进程判断所述Android系统是否正常启动”步骤,包括以下步骤:获取system_server进程的启动工况;
根据所述获取的system_server进程的启动工况,判断所述system_server进程是否启动异常;其中,所述init进程通过启动所述system_server进程在所述Linux系统中启动Android系统;
当判定所述system_server进程启动异常时,判定所述Android系统无法正常启动,并停止继续执行system_server进程的启动指令。
根据第一方面,在第一方面第二种可能的实现方式中,所述Android系统启动异常包括所述system_server进程超时启动异常和system_server进程频繁启动异常,
所述“根据获取的system_server进程的启动工况,判断所述system_server进程是否启动异常”步骤,具体包括以下步骤:
获取所述system_server进程的启动持续时长以及预设时间范围内的启动次数;
当所述system_server进程的启动持续时长超过启动时间阈值时,判定为所述system_server进程超时启动异常;
当所述system_server进程在预设时间范围内启动次数超过次数阈值时,判定所述system_server进程频繁启动异常。
根据第一方面,在第一方面第三种可能的实现方式中,当所述init进程启动所述Android系统时,所述异常守护进程统计所述system_server进程的启动持续时长以及预设时间范围内的启动次数。
根据第一方面,在第一方面第四种可能的实现方式中,所述触按指令包括恢复出厂指令和/或升级系统指令和/或基础操作指令;
所述“获取异常显示界面的触按指令,执行与所述触按指令对应的服务”步骤之后,具体包括以下步骤:
当获取到所述恢复出厂指令时,进行恢复出厂设置处理;
当获取到所述升级系统指令时,进行系统升级处理;
当获取到所述基础操作指令时,进行显示基础操作界面处理。
第二方面,本发明提供一种车辆Android系统异常处理系统,包括第一获取单元、第一判断单元、第一控制单元、异常显示单元和第二获取单元,第一获取单元设置在Linux系统中,用于获取system_server进程的启动工况;第一判断单元与所述第一获取单元通信连接,用于根据获取的system_server进程的启动工况,判断system_server进程是否启动异常;第一控制单元与所述第一判断单元通信连接,当判定system_server进程启动异常时,执行启动异常显示界面指令,并停止继续执行system_server进程的启动指令;异常显示单元与所述第一控制单元通信连接;第二获取单元与所述第一判断单元通信连接,当system_server进程启动异常时,获取异常显示界面的触按指令;第二控制单元与所述第二获取单元和所述异常显示单元通信连接,用于获取异常显示界面的触按指令时,控制所述异常显示单元显示异常显示界面。
根据第二方面,在第二方面第一种可能的实现方式中,所述第一获取单元包括计数器和计时器,所述计数器用于获取system_server进程在预设时间范围内的启动次数,所述计时器用于获取system_sever进程的启动时间。
根据第二方面,在第二方面的第二种可能的实现方式中,还包括存储单元,存储单元与所述第一控制单元通信连接,用于当判定system_server进程启动异常时,存储system_server进程启动时间和预设时间范围内启动次数。
根据第二方面,在第二方面的第三种可能的实现方式中,还包括第三判断单元和第三控制单元,所述第三判断单元用于所述第二获取单元通信连接,用于根据所述第二获取单元获取得到的异常显示界面的触按指令,判断所述触按指令类型;第三控制单元,与所述第三判断单元通信连接,用于根据所述触按指令类型,执行与之对应的服务。
第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的车辆Android系统异常处理方法的步骤。
与现有技术相比,本发明的优点如下:
本发明提供的车辆Android系统异常处理方法、系统及存储介质,所述方法通过包括以下步骤,Linux系统启动后,init进程启动异常守护进程,其中,所述异常守护进程在Linux系统中;当所述init进程启动所述Android系统时,所述异常守护进程判断所述Android系统是否正常启动;当所述异常守护进程判定所述Android系统启动异常,所述异常守护进程执行启动异常界面显示指令显示异常显示界面;获取用户通过所述异常显示界面输入的触按指令,执行与所述触按指令对应的服务。通过在Linux系统中增设异常守护进程,异常守护进程和车身控制进程运行在Linux系统,并不依赖Android系统,因此在Android系统异常情况下,通过异常守护进程启动异常界面显示指令显示异常显示界面,用户仍然能够继续使用基础功能,有效保障行车安全。
附图说明
图1是本发明实施例的方法流程图;
图2是本发明实施例的功能模块框图;
图3是本发明实施例的另一功能模块框图;
图4是本发明提供的Android系统循环崩溃异常处理流程图。
图中,
110、第一获取单元;120、第一判断单元;130、第一控制单元;140、异常显示单元;150、第二获取单元;160、第二控制单元;170、存储单元。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
参见图1所示,本发明实施例提供一种车辆Android系统异常处理方法,包括以下步骤:
S100、当Linux系统启动后,init进程启动异常守护进程,其中,所述异常守护进程在Linux系统中;
S200、当所述init进程启动Android系统时,通过所述异常守护进程判断所述Android系统是否正常启动;
S300、当所述异常守护进程判定所述Android系统启动异常,执行启动异常界面显示指令显示异常显示界面;
S400、获取用户通过所述异常显示界面输入的触按指令,执行与所述触按指令对应的服务。
Init进程为Linux系统的第一个进程,后续所有进程的启动和管控都由该init进程完成。请参考图4为本发明提供的Android系统循环崩溃异常处理流程图,Linux系统包括Kernel(实时操作系统)和UserSpace(用户空间),用户空间运行有普通Linux进程、车身控制进程、异常守护进程和zygote进程,Android系统运行有system_sever进程和APP,由于system_server进程为Linux系统中启动的一个进程,由zygote进程派生出。所有Android系统的服务和应用,都依赖该进程。该进程在系统启动过程中会由init自动启动。在Android系统异常导致退出的情况下,会尝试重启。Android系统底层为Linux系统支持,Android系统是在Linux启动之后的Linux系统的基础上,通过init启动其他所有的进程,包括启动system_server进程。system_server进程会启动Android所依赖的所有服务和应用。
如上所述,根据本发明,本发明的前提条件是车身的控制都是通过MCU(Microcontroller Unit)来交互,而与MCU交互的进程,是运行在Linux系统的用户空间,并不依赖Android系统的空间,因此在车辆Android系统异常时,上述方法运行在Linux系统的用户空间,可以提供操作车辆的功能,有效保障行车安全。
本发明提供的车辆Android系统异常处理方法,通过Linux系统启动后,init进程启动异常守护进程,异常守护进程在Linux系统中;当init进程启动所述Android系统时,所述异常守护进程判断所述Android系统是否正常启动;当所述异常守护进程判定所述Android系统启动异常,异常守护进程执行启动异常界面显示指令显示异常显示界面;获取用户通过所述异常显示界面输入的触按指令,执行与所述触按指令对应的服务。由于system_sever进程为Linux系统中启动的一个进程,由zygote进程派生出,所有Android系统的服务和应用,都依赖于system_sever进程,通过在Linux系统中增设异常守护进程,由于异常守护进程和车身控制进程运行在Linux系统,并不依赖Android系统,因此在Android系统异常情况下,通过异常守护进程启动异常界面显示指令显示异常显示界面,用户仍然能够继续使用智能设备的基础功能,例如车辆驾驶系统下电、减速等功能,从而保障行车安全。
在一实施例中,所述system_server进程启动异常包括所述system_server进程超时启动异常和system_server进程频繁启动异常,
所述“根据获取的system_server进程的启动工况,判断system_server进程是否启动异常”步骤,具体包括以下步骤:
当system_server进程的启动时间超过启动时间阈值,判定为system_server进程超时启动异常;
当系统服务在预设时间范围内启动次数超过次数阈值时,判定system_server进程频繁启动异常;
当system_server进程启动超时或system_server进程频繁启动时,均认为system_server进程启动异常。
在一实施例中,所述“当判定system_server进程启动异常时,判定Android系统无法正常启动,执行启动异常显示界面指令,并停止继续执行system_server进程的启动指令”步骤之后,还包括以下步骤:
执行system_server进程启动时间和预设时间范围内启动次数的存储指令。
在一实施例中,所述触按指令包括恢复出厂指令和/或升级系统指令和/或基础操作指令;所述“获取异常显示界面触按指令”步骤之后,还包括以下步骤:
当获取到恢复出厂触按指令时,执行恢复出厂指令,清除用户数据,尝试恢复至原始状态;
当获取到升级系统触按指令时,即用户触按显示界面的ota选项时,从服务器获取较稳定的升级包,执行升级系统指令,进行系统升级;
当获取到基础操作触按指令时,执行基础操作指令,给用户提供可进行基础操作的界面,保证用户能够正常使用该设备,基础操作可以在车辆Android系统异常时,系统进行异常恢复进程的过程中,用户仍然能够继续使用智能设备的基础功能,例如车辆驾驶系统下电、车辆减速、车窗、空调、车门的开关等,从而保障行车安全。
基于同一发明构思,请参考图2,本发明提供一种车辆Android系统异常处理系统,包括第一获取单元110、第一判断单元120、第一控制单元130、异常显示单元140、第二获取单元150、第二控制单元160,第一获取单元110设置在Linux系统中,用于获取system_server进程的启动工况;第一判断单元120与所述第一获取单元110通信连接,用于根据获取的system_server进程的启动工况,判断system_server进程是否启动异常;第一控制单元130与所述第一判断单元120通信连接,当判定system_server进程启动异常时,执行启动异常显示界面指令,并停止继续执行system_server进程的启动指令;异常显示单元140与所述第一控制单元130通信连接;第二获取单元150与所述第一判断单元120通信连接,当system_server进程启动异常时,获取异常显示界面的触按指令;第二控制单元160与所述第二获取单元150和所述异常显示单元140通信连接,用于获取异常显示界面的触按指令时,控制所述异常显示单元140显示异常显示界面。
一些实施例中,所述第一获取单元110包括计数器和计时器,所述计数器用于获取system_server进程在预设时间范围内的启动次数,所述计时器用于获取system_sever进程的启动时间。
一些实施例中,请参考图3,还包括存储单元170,与所述第一控制单元130通信连接,用于当判定system_server进程启动异常时,存储system_server进程启动时间和预设时间范围内启动次数。
一些实施例中,还包括第三判断单元和第三控制单元,所述第三判断单元用于所述第二获取单元150通信连接,用于根据所述第二获取单元150获取得到的异常显示界面的触按指令,判断所述触按指令类型;第三控制单元与所述第三判断单元通信连接,用于根据所述触按指令类型,执行与之对应的服务。
基于同一发明构思,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的车辆Android系统异常处理方法的步骤。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。