一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于安卓系统的输入系统日志的动态输出方法及装置与流程

2021-12-03 23:41:00 来源:中国专利 TAG:


1.本发明主要涉及车机系统,具体地涉及一种基于安卓系统的输入系统日志的动态输出方法。


背景技术:

2.系统日志是用于记录系统中发生的事件、问题等信息的文件。当系统出现故障时,由于系统日志记录了故障发生前后的相关信息,浏览系统日志就可以定位故障原因。
3.在对车机进行稳定性分析时,经常会发生应用触屏无响应或者响应慢的现象。例如用户在触摸屏上执行触碰、滑动等输入操作时,系统无响应或者响应慢,即出现所谓的“冻屏”现象。导致这种现象的原因一般会涉及到车机系统的三个部分:内核层、中间件层和应用层。随着汽车电子技术的飞速发展,车机系统日益复杂,当输入系统出现问题时,很难快速判断问题发生的原因在于车机系统的哪个部分。由于谷歌原生的输入系统日志是默认关闭的,在定位上述问题时往往需要通过修改代码打开输入系统日志,才能从输入系统日志中定位问题所在的具体位置。然而,这种定位方法需要编译临时版本,而编译版本耗时长,严重影响问题解决进度。因此,为了快速定位输入系统问题的原因,如何根据需求快速地打开特定的输入系统日志是亟待解决的问题。


技术实现要素:

4.本发明要解决的技术问题是提供一种基于安卓系统的输入系统日志的动态输出方法,该方法可快速打开并输出特定的输入系统日志,从而快速定位输入系统问题。
5.本发明为解决上述技术问题而采用的技术方案是一种基于安卓系统的输入系统日志的动态输出方法,包括:响应于日志开关命令,中间件模块加载头文件,所述头文件包括目标输入事件的目标日志的开关变量;以及根据所述开关变量输出所述目标日志。
6.在本发明的一实施例中,还包括:在所述中间件模块的输入系统服务中设置日志开关接口,其中所述中间件模块加载头文件的步骤包括:所述中间件模块通过所述日志开关接口加载所述头文件。
7.在本发明的一实施例中,所述开关变量包括日志参数,所述日志参数用于设置所要输出的目标日志的对象。
8.在本发明的一实施例中,所述目标日志的对象包括内核层日志、中间件层日志和应用层日志中的一个或多个。
9.在本发明的一实施例中,所述开关变量还包括开关参数,所述开关参数包括打开或关闭。
10.在本发明的一实施例中,所述目标日志包括所述目标输入事件的接收日志和分发日志中的一个或多个。
11.在本发明的一实施例中,所述目标输入事件包括基于车机触摸屏的输入事件。
12.在本发明的一实施例中,所述输入事件包括触屏、滑动和按键中的一个或多个。
13.本发明为解决上述技术问题还提出一种基于安卓系统的输入系统日志的动态输出装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的动态输出方法。
14.本发明为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的动态输出方法。
15.本发明的基于安卓系统的输入系统日志的动态输出方法可以响应于日志开关命令,通过中间件模块加载头文件,用户可以在头文件中设置目标输入事件的目标日志的开关变量,根据该开关变量可以打开或关闭指定的目标日志。本发明无需修改原生安卓系统,根据所接收到的日志开关命令即可打开并输出特定的输入系统日志,从而可以快速定位输入系统的问题。
附图说明
16.为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
17.图1是本发明一实施例的基于安卓系统的输入系统日志的动态输出方法的示例性流程图;
18.图2是本发明另一实施例的基于安卓系统的输入系统日志的动态输出方法的示例性流程图;
19.图3是本发明一实施例的基于安卓系统的输入系统日志的动态输出装置的系统框图。
具体实施方式
20.为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
21.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
22.如本技术和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
23.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
24.此外,尽管本技术中所使用的术语是从公知公用的术语中选择的,但是本技术说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本技术。
25.本技术中使用了流程图用来说明根据本技术的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
26.本发明的基于安卓系统的输入系统日志的动态输出方法可用于车机系统,其中的输入系统指车机系统的输入系统,例如触摸屏、按键等。输入系统日志记录了车机系统的输入系统的工作过程,包括输入事件在车机系统的内核层、中间件层、应用层的全部进程,以及输入事件与车机系统中其他部分的交互进程等。
27.图1是本发明一实施例的基于安卓系统的输入系统日志的动态输出方法的示例性流程图。参考图1所示,该实施例的动态输出方法包括以下步骤:
28.步骤s110:响应于日志开关命令,中间件模块加载头文件,该头文件包括目标输入事件的目标日志的开关变量。
29.步骤s120:根据开关变量输出目标日志。
30.以下具体说明上述的步骤s110和s120。
31.步骤s110中的日志开关命令可以包括两种不同的命令,即开启命令和关闭命令。当车机的输入系统出现问题时,可以向车机系统发送“开启日志”的命令用以开启目标日志。本发明对日志开关命令的来源不做限制。该日志开关命令可以由pc端输入,也可以由车机系统中的应用(app)输入。当不需要使用目标日志时,也可由pc端或app向车机系统发送“关闭日志”的命令用以关闭该目标日志。可以理解的是,输入“开启日志”或“关闭日志”命令的方法不限于以上两种。
32.在步骤s110中,中间件模块可以是车机系统中的中间件层。头文件可以是一种配置文件,在该头文件中包括目标输入事件的目标日志的开关变量。
33.目标输入事件指出现故障时输入系统所接收到的输入事件,例如出现“冻屏”问题时的滑动操作。为了定位该滑动操作所引起的“冻屏”问题处于车机系统的哪个部分,可以在头文件中配置所要打开的目标日志的开关变量。该开关变量用于指定所要打开的目标日志的类型、位置等属性。可以在日志开关命令中设置开关变量,并将该开关变量传递给头文件。
34.本发明对开关变量的类型、数量不做限制。
35.在本发明的一实施例中,该动态输出方法还包括:在中间件模块的输入系统服务中设置日志开关接口。在这些实施例中,上述的步骤s110中的中间件模块加载头文件的步骤包括:中间件模块通过该日志开关接口加载该头文件。
36.在这些实施例中,中间件层可以提供服务,其中包括对应于输入系统的输入系统服务。可以在该输入系统服务中设置日志开关接口。该日志开关接口可以是一种应用程序接口,也可以根据一定通信协议来定义该日志开关接口,使中间件模块可以获得并加载该头文件。
37.本发明通过日志开关命令,使中间件模块加载头文件可以实现动态打开或关闭输
入系统日志,极大地缩短了打开目标日志所用的时间。
38.步骤s110中的目标输入事件与车机系统的输入系统相关。车机系统的输入系统可以包括触摸屏、旋钮、机械按键、音频采集器、视频采集器等各种不同的输入装置,用于接收用户的输入操作。
39.在一些实施例中,目标输入事件包括基于车机触摸屏的输入事件。
40.在一些实施例中,该输入事件包括在触摸屏上进行的触屏、滑动和按键中的一个或多个。
41.在步骤s120中,根据开关变量输出目标日志。
42.本发明对如何输出目标日志不做限制。可以以文件的方式输出目标日志,或者在pc端或app显示端显示目标日志。
43.图2是本发明另一实施例的基于安卓系统的输入系统日志的动态输出方法的示例性流程图。该实施例以从app输入日志开关命令为例。参考图2所示,该实施例的动态输出方法包括以下步骤:
44.步骤s210:在应用程序app输入日志开关命令;
45.步骤s212:判断是否需要打开目标日志,若是,则执行步骤s214,若否,则执行步骤s218;
46.在步骤s212中可以通过输入系统服务来判断是否需要打开目标日志。从步骤s210到步骤s212可以采用binder调用输入系统服务。
47.步骤s214:重新定义输入系统日志。也即加载头文件,该头文件包括目标输入事件的目标日志的开关变量。
48.步骤s216:输入系统日志输出。
49.在步骤s216,可以以文件的形式输出该输入系统日志,也即目标日志,也可以通过app输出,还可以输出至pc端。
50.步骤s218:当步骤s212的判断结果为否时,表示不打开目标日志,也即关闭目标日志,则在步骤s218输出默认的原生系统的日志。这里的默认的原生系统的日志并不会根据日志开关命令中的开关参数来输出用户所需要的日志。
51.步骤s220:输入系统日志关闭。
52.在一些实施例中,开关变量包括日志参数,该日志参数用于设置所要输出的目标日志的对象。
53.在一些实施例中,该目标日志的对象包括内核层日志、中间件层日志和应用层日志中的一个或多个。
54.在一些实施例中,开关变量还包括开关参数,开关参数包括打开或关闭。
55.在一些实施例中,目标日志包括目标输入事件的接收日志和分发日志中的一个或多个。其中,接收日志表示该接收到该目标输入事件的日志,可以包括内核层、中间件层和应用层中任意层接收到该目标输入事件的日志;分发日志表示在车机系统中分发该目标输入事件的日志,也可以包括内核层、中间件层和应用层中任意层所发生的分发该目标输入事件的日志。
56.根据上面的实施例,开关变量包括两种参数,开关参数和日志参数。其中开关参数包括打开或关闭,用于指示打开或关闭目标日志;日志参数用于指示目标日志的对象,即该
目标日志属于哪个层,以及指示该目标日志是接收日志或分发日志。
57.为了进一步说明本发明的动态输出方法,这里给出一种日志开关命令的具体示例:
58.adb shell dumpsys input log p1 p2
59.在上述的示例中,“adb shell dumpsys”是头文件的配置语句,“input log”表示输入系统日志,p1为日志参数,可以用于设置日志目标的对象,以及设置所要打开或关闭的是目标输入事件的接收日志或分发日志;p2为开关参数,可以是“打开”或“关闭”。在这个示例中,用“1”表示打开,用“0”表示关闭。当中间件模块加载该头文件时,可以打开或关闭由p1指定的日志。
60.上述的示例不用于限制具体的日志开关命令的内容。
61.根据上面的日志开关命令示例,以下列出几种不同的开关变量的设置,并说明各个日志开关命令对应的头文件的功能:
62.示例1:adb shell dumpsys input log all 1;
63.其中,p1=all,p2=1,表示打开输入系统所有模块的日志。
64.示例2:adb shell dumpsys input log all 0;
65.其中,p1=all,p2=0,表示关闭输入系统所有模块的日志。
66.示例3:adb shell dumpsys input log libinputflinger 1;
67.其中,p1=libinputflinger,p2=1,表示打开libinputflinger模块的日志。该libinputflinger模块与中间件层的分发动作相关,则根据示例3所要打开的目标日志是中间件层日志中libinputflinger所对应的分发日志。
68.示例4:adb shell dumpsys input log libinputflinger 0;
69.其中,p1=libinputflinger,p2=0,表示关闭libinputflinger模块的日志。
70.示例5:adb shell dumpsys input log libinput 1;
71.其中,p1=libinput,p2=1,表示打开libinput模块的日志。该libinput模块与中间件层的接收动作相关,则根据示例5所要打开的目标日志是中间件层日志中的libinput所对应的接收日志。
72.示例6:adb shell dumpsys input log libinput 0;
73.其中,p1=libinput,p2=0,表示关闭libinput模块的日志。
74.示例7:adb shell dumpsys input log framework 1;
75.其中,p1=framework,p2=1,表示打开framework模块的日志。该framework模块与应用层的接收动作相关,则根据示例7所要打开的目标日志是应用层日志中的framework对应的接收日志。
76.示例8:adb shell dumpsys input log framework 0;
77.其中,p1=framework,p2=0,表示关闭framework模块的日志。
78.上述示例不用于限制本发明的日志开关命令的具体内容。基于本发明的思想根据需要可以配置任意包括目标输入事件的目标日志的开关变量的头文件,都在本发明的保护范围之内。
79.本发明的动态输出方法响应于日志开关命令,通过中间件模块加载头文件,用户可以在头文件中设置目标输入事件的目标日志的开关变量,使用户通过输入日志开关命令
即可动态打开或关闭特定的输入系统日志,不需要修改原生系统代码,节省了打开日志的时间,进而可以快速定位输入系统的问题。
80.本发明还包括一种基于安卓系统的输入系统日志的动态输出装置,包括存储器和处理器。其中,该存储器用于存储可由处理器执行的指令;处理器用于执行该指令以实现前文所述的动态输出方法。
81.该动态输出装置响应于日志开关指令即可动态打开并输出特定的输入系统日志,不需要修改原生系统代码,节省了打开日志的时间,可以快速定位输入系统的问题。
82.图3是本发明一实施例的基于安卓系统的输入系统日志的动态输出装置的系统框图。参考图3所示,该动态输出装置300可包括内部通信总线301、处理器302、只读存储器(rom)303、随机存取存储器(ram)304以及通信端口305。当应用在个人计算机上时,该动态输出装置300还可以包括硬盘306。内部通信总线301可以实现该操作装置300组件间的数据通信。处理器302可以进行判断和发出提示。在一些实施例中,处理器302可以由一个或多个处理器组成。通信端口305可以实现该操作装置300与外部的数据通信。在一些实施例中,该操作装置300可以通过通信端口305从网络发送和接收信息及数据。该操作装置300还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘306,只读存储器(rom)303和随机存取存储器(ram)304,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器302所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器302处理的结果通过通信端口305传给用户设备,在用户界面上显示。
83.上述的动态输出方法可以实施为计算机程序,保存在硬盘306中,并可加载到处理器302中执行,以实施本技术的输入系统日志的动态输出方法。
84.本发明还包括一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时实现前文所述的用于输入系统日志的动态输出方法。
85.用于输入系统日志的动态输出方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(cd)、数字多功能盘(dvd))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(eprom)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
86.应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理器可以在一个或者多个特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。
87.本技术的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dapd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或者其组合。此外,本技术的各方面可能表现
为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带
……
)、光盘(例如,压缩盘cd、数字多功能盘dvd
……
)、智能卡以及闪存设备(例如,卡、棒、键驱动器
……
)。
88.计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
89.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本技术的限定。虽然此处并没有明确说明,本领域技术人员可能会对本技术进行各种修改、改进和修正。该类修改、改进和修正在本技术中被建议,所以该类修改、改进、修正仍属于本技术示范实施例的精神和范围。
90.同时,本技术使用了特定词语来描述本技术的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本技术至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本技术的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
91.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本技术一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献