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

安卓日志存储方法和装置与流程

2021-10-24 11:14:00 来源:中国专利 TAG:
安卓日志存储方法和装置【
技术领域
:】1.本发明涉及安卓系统
技术领域
:,尤其涉及一种安卓日志存储方法和装置。
背景技术
::2.目前,在安卓系统中,由于内核空间对用户空间是不可见的,因此对于内核空间来说,用户空间的进程程序打印的日志(log)文件无法被其直接获取。3.通常来讲,安卓设备在发生底层异常时会导致整机重启,在此场景下,由于上层系统无法提前感知,文件系统输入/输出(input/output,i/o)过程的缓存信息无法及时被同步到存储设备,导致缓存数据丢失,日志无法完整保存,尤其是定位问题所需的重启前的关键日志,大大降低了问题定位的效率和准确性。4.因此,如何在内核异常的情况下完好保存安卓缓存日志文件,成为目前亟待解决的问题。技术实现要素:5.本发明实施例提供了一种安卓日志存储方法和装置,旨在解决相关技术中内核发生异常时安卓缓存日志如何保存的技术问题,能够完好的保存安卓系统的关键缓存日志,防止数据的意外丢失。6.第一方面,本发明实施例提供了一种安卓日志存储方法,包括:内核初始化时,在内核空间确定第一内存区域,并将所述第一内存区域的地址信息存储至指定区域;将所述第一内存区域映射到用户空间的第一缓存区域,并将所述第一缓存区域的地址信息提供给安卓程序;其中,所述第一缓存区域用于所述安卓程序存储日志数据,所述第一内存区域的地址信息用于指示安卓程序日志数据的存储位置。7.可选地,在内核空间确定第一内存区域之后,还包括:设置所述第一内存区域为不可回收页。8.可选地,将所述第一内存区域映射到用户空间的第一缓存区域,还包括:注册设备节点,通过所述设备节点将所述第一内存区域映射到用户空间的第一缓存区域。9.可选地,所述指定区域定义有全局结构体,所述全局结构体用于存储所述第一内存区域的地址信息。10.可选地,所述方法还包括:内核异常时,根据所述指定区域存储的所述第一内存区域的地址信息,将相应物理内存中的日志数据生成日志文件。11.第二方面,本发明实施例提供了一种安卓日志存储装置,包括:第一处理模块,用于在内核空间确定第一内存区域,并将所述第一内存区域的地址信息存储至指定区域;第二处理模块,用于将所述第一内存区域映射到用户空间的第一缓存区域,并将所述第一缓存区域在所述用户空间的地址信息存储至所述指定区域;其中,所述第一缓存区域用于存储安卓程序的日志数据,所述第一内存区域和所述第一内存区域的地址信息用于指示安卓程序日志数据的存储位置。12.可选地,所述第一处理模块还用于设置所述第一内存区域为不可回收页。13.可选地,所述第二处理模块,具体用于注册设备节点,通过所述设备节点将所述第一内存区域映射到用户空间的第一缓存区域。14.第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的程序指令,所述处理器调用所述程序指令以执行上述第一方面或者第一方面任一可能实施方式的方法。15.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任一可能实施方式的方法。16.以上技术方案,针对相关技术中的内核发生异常时安卓缓存日志如何保存的技术问题,对安卓日志进行存储。在该技术方案中,主要就是在内核空间确定第一内存区域,将第一内存区域的地址信息保存至指定区域,注册设备节点实现第一内存区域映射到用户空间的第一缓存区域。第一缓存区域存储安卓程序相关日志数据,在内核异常时,读取指定区域中的第一内存区域地址信息,得到安卓程序日志数据的存储位置,转储成文件。17.本发明实施例,解决了在底层内核异常时缓存信息无法及时被同步到存储设备,导致缓存数据丢失的情况,对安卓系统的关键缓存日志进行了完好的保存。【附图说明】18.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。19.图1为本发明实施例提供的一种安卓系统的层级示意图;20.图2为本发明实施例提供的一种安卓日志存储方法的流程图;21.图3为本发明实施例提供的另一种安卓日志存储方法的流程图;22.图4为本发明实施例提供一种安卓日志存储装置的结构示意图;23.图5为本发明实施例提供的一种电子设备的结构示意图。【具体实施方式】24.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。25.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。26.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。27.图1为本发明实施例提供的一种安卓系统的层级示意图。如图1所示,安卓系统分为内核空间和用户空间,内核空间是linux内核的运行空间,用户空间是安卓程序的运行空间。如图1所示,本发明实施例在内核空间内确定了第一内存区域,该第一内存区域的地址信息存储在指定区域。进一步,该第一内存区域映射到用户空间,对应第一缓存区域。第一缓存区域用于存储安卓程序的日志数据。其中,由于第一缓存区域与第一内存区域对应,则安卓程序的日志数据对应的物理内存区域为第一内存区域。因此,当安卓系统所在的终端设备发生异常时,可以从指定区域获取第一内存区域的地址信息,进而可以从第一内存区域获取到安卓程序的日志数据。以下将结合具体步骤对本发明实施例的安卓日志存储方法进行详细说明。28.参见图2,为本发明实施例提供的一种安卓日志存储方法的流程图。该方法的执行主体为设置有安卓系统的终端设备。更为具体的,执行主体为安卓系统中的处理程序,如uboot程序。如图2所示,该方法的处理步骤包括:29.步骤101,内核初始化时,在内核空间确定第一内存区域,并将所述第一内存区域的地址信息存储至指定区域。其中,该指定区域可以为内核空间的指定区域。在一些实施例中,该指定区域为用户空间的指定区域。30.其中,所述指定区域定义可以为全局结构体,所述全局结构体用于存储所述第一内存区域的地址信息。31.步骤102,将所述第一内存区域映射到用户空间的第一缓存区域,并将所述第一缓存区域的地址信息提供给安卓程序。32.其中,所述第一缓存区域用于所述安卓程序存储日志数据,所述第一内存区域的地址信息用于指示安卓程序日志数据的存储位置。33.总的来说,由于用户空间的进程程序打印的log无法被其直接获取,导致在内核异常时容易出现数据丢失,因此本发明实施例采用了在内核空间内申请第一内存区域,将第一内存区域的物理地址记入指定区域。从而在内核异常时,可以从该指定区域读取此第一内存区域的物理地址,由此根据该物理地址确定第一内存区域,并从第一内存区域获取安卓程序的日志文件。可见,本发明实施例实现了在内核异常情况下的安卓缓存日志的存储,完好保存数据。34.以上技术方案,针对相关技术中的内核发生异常时安卓缓存日志如何保存的技术问题,采用了在内核空间初始化时确定内存空间来解决。在该技术方案中,内核空间所确定的第一内存区域即内存空间,申请到内存空间的物理地址和大小都将放在指定区域,其中的指定区域为定义的全局结构体,全局结构体中的数据结构排列整齐完好,方便存储和读取地址信息。申请到的第一内存区域需要映射到用户空间的第一缓存区域,其中,第一缓存区域是用于上层安卓程序存储生成的日志数据,日志数据还会随着程序不断生成而实时更新。在底层内核发生异常时,保存在全局结构体内的第一内存区域的物理地址可指示出安卓程序日志数据的存储位置,根据存储位置将对应的物理内存中的日志数据转储成文件。35.参见图3,为本发明实施例提供的另一种安卓日志存储方法的流程图。如图3所示,包括:36.步骤201,内核初始化时,在内核空间确定第一内存区域,并将所述第一内存区域的地址信息存储至指定区域。其中,该指定区域可以为内核空间的指定区域。在一些实施例中,该指定区域为用户空间的指定区域。37.步骤202,设置所述第一内存区域为不可回收页。38.其中,所述第一内存区域以页的形式存在,内存单元通常为4k,设置为不可回收的页是为了防止内存管理单元将不常用的页回收。39.步骤203,注册设备节点,通过所述设备节点将所述第一内存区域映射到用户空间的第一缓存区域。40.其中,所述设备节点为杂项(miscellaneous;以下简称:misc)设备节点。在注册所述misc设备节点时还需设置节点属性,属性可以包括需要指定主设备号和次设备号等,主设备号标识设备对应的驱动程序,次设备号由内核使用,用于确定设备节点所指设备。由于内核与上层程序都可访问节点,因此可通过注册的misc设备节点实现第一内存区域映射到用户空间的第一缓存区域。41.步骤204,将所述第一内存区域映射到用户空间的第一缓存区域,并将所述第一缓存区域的地址信息提供给安卓程序。42.其中,所述第一缓存区域用于所述安卓程序存储日志数据,所述第一内存区域的地址信息用于指示安卓程序日志数据的存储位置。43.步骤205,内核异常时,根据所述指定区域存储的所述第一内存区域的地址信息,将相应物理内存中的日志数据生成日志文件。44.通过以上技术方案,解决了在底层内核异常时缓存信息无法及时被同步到存储设备,导致缓存数据丢失的情况,对安卓系统的关键缓存日志进行了完好的保存。45.参见图4,为本发明的一个实施例的安卓日志存储装置的结构示意图。46.如图4所示,本发明的一个实施例的安卓日志存储装置300包括:第一处理模块301,用于在内核空间确定第一内存区域,并将所述第一内存区域的地址信息存储至指定区域;第二处理模块302,用于将所述第一内存区域映射到用户空间的第一缓存区域,并将所述第一缓存区域在所述用户空间的地址信息存储至所述指定区域;其中,所述第一缓存区域用于存储安卓程序的日志数据,所述第一内存区域和所述第一内存区域的地址信息用于指示安卓程序日志数据的存储位置。47.该安卓日志存储装置300使用图2和图3示出的任一项实施例中的方案,因此,具有上述所有技术效果,在此不再赘述。安卓日志存储300还具有以下技术特征:48.可选地,所述第一处理模块还用于设置所述第一内存区域为不可回收页。49.可选地,所述第二处理模块,具体用于注册设备节点,通过所述设备节点将所述第一内存区域映射到用户空间的第一缓存区域。50.图5为本发明实施例提供的一种电子设备的结构示意图。如图5所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,所述指令被设置为用于执行上述图2和图3实施例任一项中所述的方案。因此,该终端设备具有图2和图3实施例中相同的技术效果,在此不再赘述。51.其中,上述电子设备可以为能够与用户进行智能对话的设备,例如:云服务器,本说明书实施例对上述电子设备的具体形式不作限定。可以理解的是,这里的电子设备即为方法实施例中提到的机器。52.图5示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图5显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。53.如图5所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420、存储器430,连接不同系统组件(包括处理单元410、通信接口420和存储器430)的通信总线440。54.通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。55.电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。56.存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书各实施例的功能。57.具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书所描述的实施例中的功能和/或方法。58.处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1和图2所示任一项实施例提供的安卓日志存储方法。59.本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书所示实施例提供的安卓日志存储方法。60.上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory;以下简称:rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory;以下简称:eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd‑rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。61.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。62.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。63.可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork;以下简称:lan)或广域网(wideareanetwork;以下简称:wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。64.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。65.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。66.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。67.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属
技术领域
:的技术人员所理解。68.取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。69.需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer;以下简称:pc)、个人数字助理(personaldigitalassistant;以下简称:pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。70.在本说明书所提供的实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。71.另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。72.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。73.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜