发明内容
本发明实施例的目的在于提供一种基于车机系统获取日志的方法及电子设备,以实现在保证车机系统的运行效率的同时,获取车机系统的日志。具体技术方案如下:
第一方面,本发明实施例提供了一种基于车机系统获取日志的方法,应用于车机系统,所述方法包括:
基于用户获取日志的操作指令进入日志系统界面;
接收用户在所述日志系统界面中发出的、针对指定应用的日志记录功能的开启指令;其中,所述日志系统界面具有对所述车机系统中各应用的日志记录功能的开关权限;
响应于针对所述指定应用的日志记录功能的开启指令,开启所述指定应用的日志记录功能;
在所述指定应用的日志记录功能开启后,运行所述指定应用,将运行所述指定应用所产生的各条日志记录于所述车机系统的内存中,并从所述内存中获取运行所述指定应用所产生的各条日志。
可选的,所述基于用户获取日志的操作指令进入日志系统界面,包括:
在检测到用户对用于进入日志系统界面的入口按钮的点击操作时,展示暗码输入窗口,所述入口按钮为所述车机系统的一个应用对应的运行按钮;
在所述暗码输入窗口,接收用户输入的用于校验身份的暗码;
若用户输入的暗码与预设暗码匹配,则展示所述日志系统界面。
可选的,所述开启所述指定应用的日志记录功能,包括:
将所述指定应用的日志记录功能的属性值修改为表征开启的属性值。
可选的,所述从所述内存中获取运行所述指定应用所产生的各条日志,包括:
将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置中;其中,所述各条目标日志为运行所述指定应用所产生的各条日志。
可选的,所述将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置中,包括:
记录日志状态,其中,所述日志状态用于表示是否正在运行所述指定应用;
在所述日志状态为进行中状态时,暂停运行所述指定应用,并将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置中;
或者,在所述日志状态为进行中状态时,等待所述指定应用运行完成,直到所述日志状态为非进行中状态时,将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置中。
可选的,在所述暂停运行所述指定应用之后,所述方法还包括:
在将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置完成时,恢复运行所述指定应用。
可选的,所述将所述内存中的各条目标日志复制到指定的存储路径表示的存储位置,包括:
获取用户给定的日志等级;
将所述内存中用户给定的日志等级的目标日志复制到所述存储路径表示的存储位置中。
可选的,在所述开启所述指定应用的日志记录功能之后,所述方法还包括:
退出所述日志系统界面,展示所述车机系统的默认界面;
在接收到用户在所述默认界面中发出的对所述指定应用的运行指令时,执行所述运行所述指定应用的步骤。
第二方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一基于车机系统获取日志的方法的步骤。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于车机系统获取日志的方法的步骤。
第四方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一基于车机系统获取日志的方法。
本发明实施例提供的基于车机系统获取日志的方法及电子设备,可以在基于用户获取日志的操作指令进入日志系统界面后,在接收用户在日志系统界面中发出的、针对指定应用的日志记录功能的开启指令时,开启指定应用的日志记录功能,此时运行指定应用后,运行指定应用时所产生的各条日志记录在车机系统的内存中,再从内存中获取运行指定应用所产生的各条日志。可见本发明实施例能够将车机系统的日志存储在内存中,因此可以从内存中获取到车机系统的日志,同时内存中记录了指定应用的日志而没有记录车机系统所有功能的日志,因此保证了车机系统的运行效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
为了实现在保证车机系统的运行效率的同时,获取车机系统的日志,本发明实施例提供了一种基于车机系统获取日志的方法,应用于车机系统,如图1所示,该方法包括以下步骤:
S101,基于用户获取日志的操作指令进入日志系统界面。
一种实施方式中,车机系统可以在检测到用户对用于进入日志系统界面的入口按钮的点击操作时,展示暗码输入窗口,其中,入口按钮为车机系统的一个应用对应的运行按钮。然后在暗码输入窗口接收用户输入的用于校验身份的暗码。若用户输入的暗码与预设暗码匹配,则展示日志系统界面。
例如,入口按钮可以是蓝牙电话应用对应的运行按钮。可以理解的,由于车机系统上一般未采用全球移动通信系统(Global System for Mobile Communications,GSM)蜂窝网拨号,而是基于车机系统的蓝牙与移动终端连接进行拨号,因此车机系统普遍设置有蓝牙电话应用,蓝牙电话应用具有拨号功能,以下将蓝牙电话应用简称为蓝牙。
在本发明实施例中,在用户输入的暗码与预设暗码不匹配时,可以运行该应用。或者,暗码输入窗口还可以设置有取消输入按钮,若检测到用户点击取消输入按钮,则可以运行该应用。即本发明实施例将一个应用的运行按钮作为进入日志系统界面的入口按钮,通过该按钮用户可以选择运行该应用或者进入日志系统界面。
S102,接收用户在日志系统界面中发出的、针对指定应用的日志记录功能的开启指令。
其中,日志系统界面具有对车机系统中各应用的日志记录功能的开关权限。例如该权限为SElinux权限,其中SElinux权限允许更改车机系统中各属性的属性值。
在本发明实施例中,指定应用为待利用日志进行性能分析的应用,指定应用可以是车机系统中的任意应用。
例如,图2为车机系统的日志系统界面,图2所示的车机系统的应用包括:蓝牙、无线通信技术(WIFI)、全球定位系统(Global Positioning System,GPS)、系统和音频。用户在日志系统界面点击任意应用对应的按钮时,车机系统接收到开启指令。
例如,如图2所示,车机系统在检测到用户在日志系统界面点击蓝牙按钮时,表示接收到针对蓝牙的日志记录功能的开启指令,并在执行S103的过程中,如图3所示,在显示界面中显示用于提示用户等待的提示信息。图3中的提示信息包括“正在执行操作,请等待”。
图2所示的日志系统界面除了各应用对应的按钮外,还包括其他功能按钮,例如:网络信息、日志等级、日志选项、拷贝日志、删除日志、错误报告(BUGREPORT)上传、日志(LOG)上传、扩大日志容量、U盘空中下载技术(Over-The-Air technology,OTA)升级界面。图2仅为本发明实施例提供的日志系统界面的一种示例,日志系统界面包括的内容和排版方式不限于此。
S103,响应于针对指定应用的日志记录功能的开启指令,开启指定应用的日志记录功能。
其中,日志记录功能用于将运行应用的过程中产生的日志记录在内存中。示例性的,日志中的数据包括:应用运行过程中产生的信息,应用运行的状态、顺序、逻辑数据等,本发明实施例对日志中包括的数据不作具体限定。
一种实施方式中,可以将指定应用的日志记录功能的属性值修改为表征开启的属性值。
例如,在指定应用为蓝牙时,启动车机系统后台的SystemProperties类服务,利用该服务将蓝牙的日志记录功能的属性值修改为“true”,即SystemProperties.set(“persist.vendor.bluetooth”,”true”)。其中,SystemProperties类服务能够创建、获取及修改系统属性的属性值。
修改其他应用的日志记录功能的属性值的方式类似,例如修改音频应用的日志记录功能的属性值的方式为SystemProperties.set(“persist.vendor. audio”,”true”)。
可选的,本发明实施例也可以关闭指定应用的日志记录功能。一种实施方式中,车机系统在接收到用户在日志系统界面中发出的、针对指定应用的日志记录功能的关闭指令时,关闭指定应用的日志记录功能。例如,用户在日志系统界面点击蓝牙按钮,使得蓝牙的日志记录功能开启,此时车机系统在日志记录界面再次检测到用户点击蓝牙按钮时,关闭蓝牙的日志记录功能。蓝牙的日志记录功能关闭后,停止在内存中记录运行蓝牙的过程中产生的日志。
S104,在指定应用的日志记录功能开启后,运行指定应用,将运行指定应用所产生的各条日志记录于车机系统的内存中,并从内存中获取运行指定应用所产生的各条日志。
本发明实施例提供的基于车机系统获取日志的方法,可以在基于用户获取日志的操作指令进入日志系统界面后,在接收用户在日志系统界面中发出的、针对指定应用的日志记录功能的开启指令时,开启指定应用的日志记录功能,此时运行指定应用后,运行指定应用时所产生的各条日志记录在车机系统的内存中,再从内存中获取运行指定应用所产生的各条日志。可见本发明实施例能够将车机系统的日志存储在内存中,因此可以从内存中获取到车机系统的日志,同时内存中记录了指定应用的日志而没有记录车机系统所有功能的日志,因此保证了车机系统的运行效率。
由于运行指定应用的指令不在日志系统界面触发,因此在上述S103开启指定应用的日志记录功能之后,车机系统还可以退出日志系统界面,展示车机系统的默认界面。然后在接收到用户在默认界面中发出的对指定应用的运行指令时,执行S104中运行指定应用的步骤。
例如,车机系统在检测到用户在默认界面点击指定应用对应的按钮时,运行指定应用。
针对上述S104,如果指定应用存在故障,则运行指定应用的过程中,复现该故障,此时在内存中记录的日志包括运行指定应用故障时产生的故障日志,故障日志能够方便用户更快地分析故障原因。
针对上述S104,从车机系统的内存中获取运行指定应用所产生的各条日志的方式包括:将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。其中,各条目标日志为运行指定应用所产生的各条日志。
可选的,由于运行指定应用时,未显示车机系统的日志系统界面,因此在上述S104运行指定应用时,若需要从内存中获取日志,则可以重新进入日志系统界面,在接收到用户在日志系统界面中发出的、针对日志获取功能的开启指令时,从内存中获取日志。例如,如图2所示,在检测到用户点击“拷贝日志”按钮时,从内存中获取日志。
一种实施方式中,车机系统可以设置日志的指定的存储路径,即SystemProperties.set(“persist.sys.ecarxlog.targetpath”,log_dir),再启动ecarx_log shell脚本,将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。其中,ecarx_log shell脚本用于从内存中抓取日志,并将抓取的日志统一压缩到指定的存储路径下,然后退出。
在本发明实施例中,在指定的存储路径是车机系统外接U盘的路径时,在从内存中获取日志的过程中,如果车机系统检测到未插入U盘,则显示用于提示U盘未插入的提示信息,如图4所示,提示信息包括“U盘未插入”。
车机系统在检测到插入U盘后,将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。在获取日志成功时,可以不显示提示信息,或者也可以显示用于提示日志获取成功的信息。
车机系统在获取日志的过程中,如果出现除未插入U盘以外的其他问题,则可以显示错误提示。例如,在车机系统设置日志的指定的存储路径失败时,可以如图5所示,显示“优盘创建日志文件夹失败,请检查优盘容量和读写权限”的提示。
在本发明实施例中,车机系统将内存中日志复制到指定的存储路径表示的存储位置时,还可以依据日志状态执行,将内存中的各条目标日志复制到指定的存储路径表示的存储位置中的方式可以实现为以下步骤:
步骤1,记录日志状态。
其中,日志状态用于表示是否正在运行指定应用。
在本发明实施例中,日志状态包括:进行中状态和非进行中状态。进行中状态表示当前正在运行指定应用;非进行中状态表示当前未正在运行指定应用。
需要说明的是,在执行步骤1之后,可以执行步骤2或者步骤3。
步骤2,在日志状态为进行中状态时,暂停运行指定应用,并将内存中的目标日志复制到指定的存储路径表示的存储位置中。
一种实施方式中,在日志状态为进行中状态时,表示指定应用正在运行,日志数据正在存储到内存。此时可以先暂停运行指定应用,暂停运行指定应用后,不继续产生指定应用的日志,即不继续在内存中记录指定应用的日志。因此将日志状态设置为非进行中状态,并将内存中的目标日志复制到指定的存储路径表示的存储位置中。
在本发明实施例中,在暂停运行指定应用之后,在将内存中的各条目标日志复制到指定的存储路径表示的存储位置完成时,车机系统还可以恢复运行指定应用,并设置日志状态为进行中状态。在恢复运行指定应用时,运行指定应用产生的日志继续记录在内存中。
步骤3,在日志状态为进行中状态时,等待指定应用运行完成,直到在日志状态为非进行中状态时,将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。
在本发明实施例中,若日志状态为非进行中状态,则将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。
本发明实施例能够在日志状态为进行中状态时,暂停运行指定应用,然后再从内存中获取日志,能够提高复制的日志与内存中的日志的一致性。同时等待指定应用运行完成后,再从内存中获取日志,能够在提高复制的日志与内存中的日志的一致性的同时,避免干扰指定应用的运行。
在本发明实施例中,每条日志还可以对应日志等级,本发明实施例可以依据日志等级,从内存中获取目标日志。
上述车机系统将内存中的各条目标日志复制到指定的存储路径表示的存储位置的方式可以实现为:获取用户给定的日志等级,将内存中用户给定的日志等级的目标日志复制到存储路径表示的存储位置中。
例如,如图2所示,车机系统在检测到用户在日志系统界面点击“日志等级”按钮后,显示如图6所示的日志等级选择窗口。图6所示的日志等级窗口中包括五个日志等级选项,分别为:冗余(VERBOSE)、排除故障(DEBUG)、信息(INFO)、警告(WARN)、错误(ERROR)。图6所示的五个日志等级从上往下依次降低。然后接收用户在日志等级选择窗口选择的日志等级,并在检测到用户在日志系统界面点击“拷贝日志”按钮后,将内存中用户选择的日志等级的目标日志,复制到存储路径表示的存储位置中。
图6所示的日志等级窗口为本发明实施例提供的一种示例,日志等级窗口包括的日志等级不限于此。
由于本发明实施例能够根据日志等级获取日志,减少获取内存中全部日志由于日志数据量过多而导致的数据溢出。而且获取指定等级的日志,方便日志的查看和检索。
参见图7,以下对本发明实施例提供的基于车机系统获取日志的方法的整体流程进行说明:
S701,基于用户获取日志的操作指令进入日志系统界面。
S701进入日志系统界面的方式与上述S101相同,可参考上述S101中的相关描述,此处不再赘述。
S702,接收用户在日志系统界面中发出的、针对指定应用的日志记录功能的开启指令。
S702的实现方式与上述S102相同,可参考上述S102的相关描述,此处不再赘述。
S703,响应于针对指定应用的日志记录功能的开启指令,开启指定应用的日志记录功能。
S703的实现方式与上述S103相同,可参考上述S103的相关描述,此处不再赘述。
S704,退出日志系统界面,展示车机系统的默认界面。
S705,在接收到用户在默认界面中发出的对指定应用的运行指令时,运行指定应用,并将运行指定应用时所产生的各条日志,记录于车机系统的内存中。
S705的实现方式与上述S104相同,可参考上述S104的相关描述,此处不再赘述。
S706,基于用户获取日志的操作指令进入日志系统界面。
S706进入日志系统界面的方式与上述S101相同,可参考上述S101中的相关描述,此处不再赘述。
S707,在接收到用户在日志系统界面发出的、针对日志获取功能的开启指令时,将内存中的各条目标日志复制到指定的存储路径表示的存储位置中。
基于相同的发明构思,对应于上述方法实施例,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述方法实施例中的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于车机系统获取日志的方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于车机系统获取日志的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。