CN114398296B - 用于问题定位的方法和终端设备 - Google Patents
用于问题定位的方法和终端设备 Download PDFInfo
- Publication number
- CN114398296B CN114398296B CN202210291671.2A CN202210291671A CN114398296B CN 114398296 B CN114398296 B CN 114398296B CN 202210291671 A CN202210291671 A CN 202210291671A CN 114398296 B CN114398296 B CN 114398296B
- Authority
- CN
- China
- Prior art keywords
- partition
- operation data
- data
- storing
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请提供了一种用于问题定位的方法和终端设备,便于对擦除操作或者写入操作进行定位。该方法包括:检测到第一操作时,获取第一操作数据,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存用于存储单板条形码、整机条形码以及物理地址,预设内存包括第一分区和第二分区,第二分区用于存储操作数据,第一操作数据包括第一分区的分区标识和执行第一操作的时间点;将第一操作数据存储于第二分区,以用于对第一操作进行定位。
Description
技术领域
本申请涉及终端领域,尤其涉及一种用于问题定位的方法和终端设备。
背景技术
终端设备在出厂前,测试人员会检查终端设备的关键信息是否存在以及是否准确,例如,测试人员会检查终端设备的单板条形码、整机条形码以及物理地址等信息是否存在以及是否准确。目前,测试人员发现终端设备中的关键信息经常出现丢失或者错误的现象,怀疑是维护测量产线的工作人员操作不当引起的,使得在终端设备中写入了错误的关键信息或者擦除了关键信息。
测试人员一般通过报错打印对终端设备出现的问题进行定位,但是,关键信息是高度保密的,所以一般无日志记录,另外,当关键信息写入错误或者关键信息被擦除时,终端设备不会进行报错,导致测试人员无法依靠报错打印对擦除操作或者写入操作进行定位。
因此,亟需一种用于问题定位的方法,便于擦除操作或者写入操作进行定位。
发明内容
本申请提供一种用于问题定位的方法和终端设备,便于对擦除操作或者写入操作进行定位。
第一方面,提供了一种用于问题定位的方法,包括:检测到第一操作时,获取第一操作数据,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存用于存储单板条形码、整机条形码以及物理地址,预设内存包括第一分区和第二分区,第二分区用于存储操作数据,第一操作数据包括第一分区的分区标识和执行第一操作的时间点;将第一操作数据存储于第二分区,以用于对所述第一操作进行定位。
单板条形码(SN)、整机条形码(BSN)以及物理地址(LANMAC)等信息可以称为关键信息,关键信息一般存储在内存中的特定内存空间中,具有高保密性。
上述预设内存指的是存储关键信息的内存。预设内存可以被划分为多个分区,该多个分区中每个分区的作用可以不同,本申请对分区的具体数量不作限定。预设内存可以包括第一分区和第二分区,第一分区指的是多个分区中除第二分区的任意一个分区,第二分区是从预设内存中划分的专门用于存储操作数据的分区,该操作数据也可以称为产线日志信息,本申请对此不作限定。为了区分不同的分区,每个分区都可以具有分区标识,该分区标识可以是数字、符号、字母或者这三种形式可包括的任意组合形式,本申请对此不作限定。
若产线工作人员产生误操作,在终端设备的预设内存中写入信息或者擦除信息,终端设备可以检测到该操作,并获取该操作对应的操作数据。由于预设内存中存在多个分区,故可以检测到该操作具体写入或者擦除的具体分区,获取该分区的分区标识。终端设备还需要确定在预设内存中写入信息或者擦除信息的时间点,故可以获取执行操作的时间点。因此,当产线工作人员产生的误操作为第一操作时,终端设备获取的第一操作数据包括第一分区的分区标识和执行第一操作的时间点。
可选地,上述第一操作数据还包括第一操作所属进程的进程标识和第一操作的操作类型,操作类型为写操作或者擦除操作。
第一操作所属进程可以理解为产生第一操作的进程,即该进程对预设内存中的第一分区写入信息或者擦除信息。进程标识用于区分不同的进程,也可以称为进程号或者进程名,本申请对此不作限定。
写操作即写入信息的操作,若第一操作用于在预设内存中的第一分区写入信息,在该操作的操作类型为写操作。擦除操作即擦除信息的操作,若第一操作用于在预设内存中的第一分区擦除信息,在该操作的操作类型为擦除操作。
终端设备获取第一操作数据后,可以将第一操作数据存储于第二分区,以便于关键信息出现丢失或者错误时供测试人员查看。
本申请提供的用于问题定位的方法,在预设内存中开辟第二分区,专门用于存储操作数据,通过预设内存中的内存存储操作数据,具有高保密性,可以保证操作数据的安全,当检测到第一操作时,获取第一操作数据,并将第一操作数据存储在第二分区中,有利于终端设备出现问题时进行查看,实现对擦除操作或者写入操作进行定位。
结合第一方面,在第一方面的某些实现方式中,上述第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,第一内存空间用于存储数据头,第二内存空间用于存储多个操作数据,多个操作数据包括第一操作数据,第三内存空间用于存储预留位。
第二分区的内存空间分为三部分,分别用于存储数据头、操作数据以及预留位。第二内存空间中可以存储的操作数据的数量,本申请对此不作限定。本申请对第二分区的内存空间的大小也不作限定。
结合第一方面,在第一方面的某些实现方式中,上述在将第一操作数据存储于第二分区之前,方法还包括:获取第二分区的分区标识;根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置;在字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置;将第一操作数据存储于第二分区,包括:以第一字节位置为起始字节,在第二分区存储第一操作数据。
终端设备在存储第一操作数据之前,可以确定存储第一操作数据的起始字节,以便于正确存储第一操作数据。第二分区是预设内存中的某一个内存空间,故终端设备首先根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置。第二分区中的第一内存空间存储数据头,第二内存空间才用于存储操作数据,故终端设备可以在上述字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置,该第一字节位置为存储第一操作数据的起始字节。
本申请提供的用于问题定位的方法,第二分区的第二内存空间可以存储多个操作数据,在存储操作数据之前,计算第二内存空间的起始位置,以便于有序存储操作数据。
结合第一方面,在第一方面的某些实现方式中,上述预设内存还包括第三分区;方法还包括:检测到第二操作时,获取第二操作数据,第二操作用于在第三分区写入信息或者擦除信息,第二操作数据包括第三分区的分区标识和执行第二操作的时间点;在第一字节位置的基础上增加第一操作数据占用的字节数,得到第二字节位置;以第二字节位置为起始字节,在第二分区存储第二操作数据。
终端设备存储第一操作数据之后,检测到第二操作时,可以获取第二操作数据。第二操作数据包括第三分区的分区标识和执行第二操作的时间点,还可以包括第二操作所属进程的进程标识以及第二操作的操作类型,本申请对此不作限定。
终端设备获取第二操作数据后,可以确定存储第二操作数据的起始字节,以便于后续存储第二操作数据。终端设备在上述方法中确定存储第一操作数据的起始字节为第一字节位置,可以在此基础上增加第一操作数据占用的字节数,得到第二字节位置,该第二字节位置为存储第二操作数据的起始字节。
本申请提供的用于问题定位的方法,在存储第一操作数据之后存储第二操作数据,先计算字节偏移量,即增加第一操作数据占用的字节,确定存储第二操作数据的起始字节,有利于避免踩内存的问题的出现,有利于有序存储操作数据。
结合第一方面,在第一方面的某些实现方式中,上述多个操作数据为预设个数的操作数据,预设个数的操作数据已占用第二内存空间,预设内存还包括第四分区;方法还包括:检测到第三操作时,获取第三操作数据,第三操作用于在第四分区写入信息或者擦除信息,第三操作数据包括第四分区的分区标识和执行第三操作的时间点;删除预设个数的操作数据中第一个操作数据;利用第一个操作数据释放的字节存储第三操作数据。
终端设备在第二内存空间存储了预设个数的操作数据后,检测到第三操作时,获取第三操作数据,第三操作数据包括第四分区的分区标识和执行第三操作的时间点,还可以包括第三操作所属进程的进程标识以及第三操作的操作类型,本申请对此不作限定。
第二分区的第二内存空间的大小是固定的,且已经存储了预设个数的操作数据,当终端设备再获取第三操作数据后,可以删除已经存储的预设个数的操作数据中第一个操作数据,并利用第一个操作数据释放的字节存储第三操作数据。其中,第一个操作数据可以是预设个数的操作数据中时间点距离当前最远的一个操作数据,或者,可以是预设个数的操作数据中时间点距离当前最近的一个操作数据。
本申请提供的用于问题定位的方法,第二分区的字节数是有限的,当预设个数的操作数据将第二分区中存储的内存空间占用完之后,可以删除预设个数的操作数据中第一个操作数据,以利用释放的字节保存第三个操作数据,以保证在第二分区内存储。
结合第一方面,在第一方面的某些实现方式中,上述第一操作数据还包括第一操作所属进程的进程标识和第一操作的操作类型,操作类型为写操作或者擦除操作。
结合第一方面,在第一方面的某些实现方式中,上述第一操作数据是按照预设格式存储于第二分区中的,预设格式为相邻两个数据之间存在分隔符。
第二方面,提供了一种终端设备,包括:获取模块和处理模块。获取模块用于:检测到第一操作时,获取第一操作数据,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存用于存储单板条形码、整机条形码以及物理地址,预设内存包括第一分区和第二分区,第二分区用于存储操作数据,第一操作数据包括第一分区的分区标识和执行第一操作的时间点;处理模块用于:将第一操作数据存储于第二分区,以用于对所述第一操作进行定位。
结合第二方面,在第二方面的某些实现方式中,上述第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,第一内存空间用于存储数据头,第二内存空间用于存储多个操作数据,多个操作数据包括第一操作数据,第三内存空间用于存储预留位。
结合第二方面,在第二方面的某些实现方式中,上述获取模块还用于:获取第二分区的分区标识;处理模块还用于:根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置;在字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置;以第一字节位置为起始字节,在第二分区存储第一操作数据。
结合第二方面,在第二方面的某些实现方式中,上述预设内存还包括第三分区;获取模块还用于:检测到第二操作时,获取第二操作数据,第二操作用于在第三分区写入信息或者擦除信息,第二操作数据包括第三分区的分区标识和执行第二操作的时间点;处理模块还用于:在第一字节位置的基础上增加第一操作数据占用的字节数,得到第二字节位置;以第二字节位置为起始字节,在第二分区存储第二操作数据。
结合第二方面,在第二方面的某些实现方式中,上述多个操作数据为预设个数的操作数据,预设个数的操作数据已占用第二内存空间,预设内存还包括第四分区;获取模块还用于:检测到第三操作时,获取第三操作数据,第三操作用于在第四分区写入信息或者擦除信息,第三操作数据包括第四分区的分区标识和执行第三操作的时间点;处理模块还用于:删除预设个数的操作数据中第一个操作数据;利用第一个操作数据释放的字节存储第三操作数据。
结合第二方面,在第二方面的某些实现方式中,上述第一操作数据还包括第一操作所属进程的进程标识和第一操作的操作类型,操作类型为写操作或者擦除操作。
结合第二方面,在第二方面的某些实现方式中,上述第一操作数据是按照预设格式存储于第二分区中的,预设格式为相邻两个数据之间存在分隔符。
第三方面,本申请提供了一种终端设备,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该终端设备还包括存储器。可选地,该终端设备还包括通信接口,处理器与通信接口耦合。
第四方面,本申请提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请对处理器及各种电路的具体实现方式不做限定。
第五方面,本申请提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,本申请提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1是本申请实施例提供的一种测试手机关键信息的示意图;
图2是本申请实施例提供的一种终端设备的结构示意图;
图3是本申请实施例提供的一种终端设备的软件结构的示意性框图;
图4是本申请实施例提供的一种用于问题定位的方法的示意性流程图;
图5是本申请实施例提供的一种预设内存的示意图;
图6是本申请实施例提供的一种存储第一操作数据的示意图;
图7是本申请实施例提供的一种第二分区的示意图;
图8是本申请实施例提供的一种数据链表的示意图;
图9是本申请实施例提供的另一种用于问题定位的方法的示意性流程图;
图10是本申请实施例提供的一种终端设备的示意性框图;
图11是本申请实施例提供的另一种终端设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
终端设备在出厂前,测试人员会检查终端设备的关键信息是否存在以及是否准确,例如,测试人员会检查终端设备的单板条形码、整机条形码以及物理地址等信息是否存在以及是否准确。
示例性地,终端设备可以为手机,手机在出厂前,测试人员会检查手机序列号和其对应的条形码、手机识别码和其对应的条形码是否存在以及是否准确。图1示出了一种测试手机关键信息的示意图。如图1中的a界面所示,测试人员可以在拨号界面通过拨号键盘显示的数字和符号输入“*#06*#”以测试手机中是否存在关键信息。若手机中保存有关键信息,响应于用户的输入操作,可以显示设备信息,设备信息可以包括手机序列号和其对应的条形码、手机识别码和其对应的条形码,如图1中的b界面所示。在图1中的b界面中,手机序列号为“MEID 3566****95817”,手机识别码为“IMEI 3566****958170”。其中,MEID是国际移动设备识别码(international mobile equipment identity)的缩写,也可以称为手机串号、手机串码、手机序列号,可以用于在全球移动通信(global system for mobile,GSM)网络中识别每一部独立的手机。IMEI是移动设备识别码(mobile equipment identifier)的缩写,是采用了码分多址(code division multiple access,CDMA)技术的手机的身份识别码,也是每台CDMA手机或通讯平板唯一的识别码。
在终端设备的生产阶段,测试人员发现终端设备中的关键信息经常出现丢失或者错误的现象,导致终端设备无法出厂,影响终端设备的出厂效率。
示例性地,终端设备可以为手机,手机在出厂前,测试人员发现手机中的关键信息经常出现丢失或者错误的现象,即测试人员通过上述图1所示的方式查看关键信息时,发现设备信息不存在或者设备信息错误。
在终端设备的生产阶段,维护测量产线的工作人员只能对终端设备的关键信息进行读取,不能进行写入操作和擦除操作,本申请实施例怀疑上述现象是维护测量产线的工作人员操作不当引起的,使得在终端设备中写入了错误的关键信息或者擦除了关键信息。
测试人员想要通过报错打印对上述问题进行定位,但是,关键信息是高度保密的,所以一般无日志记录,另外,当关键信息写入错误或者关键信息被擦除时,终端设备不会进行报错,导致测试人员无法依靠报错打印对擦除操作或者写入操作进行定位。
有鉴于此,本申请实施例提供了一种用于问题定位的方法和终端设备,便于对擦除操作或者写入操作进行定位。
为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的硬件结构进行介绍。示例性地,图2为本申请实施例提供的一种终端设备的结构示意图。
终端设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,收话器170B,麦克风170C,传感器模块180,按键190,指示器192,摄像头193,以及显示屏194等。
可选地,上述传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中还可以设置存储器,用于存储指令和数据。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备充电,也可以用于终端设备与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接充电管理模块140与处理器110。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在终端设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
无线通信模块160可以提供应用在终端设备上的包括无线局域网(wirelesslocalarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM)等无线通信的解决方案。
终端设备通过GPU,显示屏194以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端设备可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。在一些实施例中,终端设备可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。
终端设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备接听电话或语音信息时,可以通过将收话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定终端设备的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测终端设备在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备可以接收按键输入,产生与终端设备的用户设置以及功能控制有关的键信号输入。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。分层架构可以采用安卓(Android)系统,也可以采用苹果(IOS)系统,还可以采样其他操作系统,本申请实施例对此不作限定。下面以分层架构的Android系统为例,示例性说明终端设备的软件结构。
图3为本申请实施例适用的终端设备的一种软件结构框图。分层架构将终端设备的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将Android系统分为四层,从上到下依次为应用程序层(applications)、应用程序框架层(application framework)、安卓运行时(Androidruntime)和系统库、以及内核层(kernel)。
应用程序层可以包括一系列应用程序包,应用程序层通过调用应用程序框架层所提供的应用程序接口(application programming interface,API)运行应用程序。如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供API和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
安卓系统运行时包括核心库和虚拟机。安卓系统运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是Java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的Java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。系统库可以包含多个功能的模块,例如:表面管理器,媒体库以及三维图形处理库等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维图层和三维图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含显示驱动,屏幕驱动、摄像头驱动以及传感器驱动等,本申请实施例对此不做限制。
本申请实施例涉及的终端设备可以为手机、平板电脑、个人计算机(personalcomputer,PC)、智能手表等可穿戴终端设备,还可以是各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personal digital assistant,PDA)、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备等。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一操作和第二操作是为了区分不同的操作,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
图4为本申请实施例提供的一种用于问题定位的方法400的示意图,该方法可以应用于终端设备,终端设备的硬件结构图可以如图2所示,终端设备的软件结构框图可以如图3所示,但本申请实施例对此不作限定。
如图4所示,方法400可以包括如下步骤:
S401、检测到第一操作时,获取第一操作数据,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存用于存储单板条形码、整机条形码以及物理地址,预设内存包括第一分区和第二分区,第二分区用于存储操作数据,第一操作数据包括第一分区的分区标识和执行第一操作的时间点。
单板条形码(SN)、整机条形码(BSN)以及物理地址(LANMAC)等信息可以称为关键信息,关键信息一般存储在内存中的特定内存空间中,具有高保密性。例如,手机的关键信息可以存储在oeminfo中,oeminfo是内存中的一种,类似于存储介质。
上述预设内存指的是存储关键信息的内存。预设内存可以被划分为多个分区,该多个分区中每个分区的作用可以不同,本申请实施例对分区的具体数量不作限定。预设内存可以包括第一分区和第二分区,第一分区指的是多个分区中除第二分区的任意一个分区,第二分区是从预设内存中划分的专门用于存储操作数据的分区,该操作数据也可以称为产线日志信息,本申请实施例对此不作限定。为了区分不同的分区,每个分区都可以具有分区标识,该分区标识可以是数字、符号、字母或者这三种形式可包括的任意组合形式,本申请实施例对此不作限定。
示例性地,分区标识可以是数字。图5示出了一种预设内存的示意图。如图5所示,预设内存是终端设备的内存中的特定内存,可以包括4个分区,该4个分区的分区标识可以分别为1、2、3以及4。分区标识为1的分区可以用于存储单板条形码,分区标识为2的分区可以用于存储整机条形码,分区标识为3的分区可以用于存储物理地址,分区标识为4的分区可以为上述第二分区,用于存储操作数据,第一分区可以为分区标识为1的分区、分区标识为2的分区或者分区标识为3的分区。
可选地,为了合理利用预设内存的内存空间,当预设内存包括96兆字节时,第二分区可以包括4千字节。
若产线工作人员产生误操作,在终端设备的预设内存中写入信息或者擦除信息,终端设备可以检测到该操作,并获取该操作对应的操作数据。由于预设内存中存在多个分区,故可以检测到该操作具体写入或者擦除的具体分区,获取该分区的分区标识。终端设备还需要确定在预设内存中写入信息或者擦除信息的时间点,故可以获取执行操作的时间点。因此,当产线工作人员产生的误操作为第一操作时,终端设备获取的第一操作数据包括第一分区的分区标识和执行第一操作的时间点。
需要说明的是,当产线工作人员产生的误操作用于在终端设备的预设内存中的第二分区写入信息或者擦除信息,终端设备也可以获取第二分区的分区标识和执行此操作的时间点。
可选地,上述第一操作数据还包括第一操作所属进程的进程标识和第一操作的操作类型,操作类型为写操作或者擦除操作。
第一操作所属进程可以理解为产生第一操作的进程,即该进程对预设内存中的第一分区写入信息或者擦除信息。进程标识用于区分不同的进程,也可以称为进程号或者进程名,本申请实施例对此不作限定。
写操作即写入信息的操作,若第一操作用于在预设内存中的第一分区写入信息,在该操作的操作类型为写操作。擦除操作即擦除信息的操作,若第一操作用于在预设内存中的第一分区擦除信息,在该操作的操作类型为擦除操作。为了便于描述,操作类型可以用符号W或者E表示,W用于表示写操作,E用于表示擦除操作。
当第一操作数据包括第一分区的分区标识、执行第一操作的时间点、第一操作所属进程的进程标识以及第一操作的操作类型时,测试人员通过查看第一操作数据,可以确定产线工作人员的误操作。
示例性地,第一分区的分区标识为15,执行第一操作的时间点为2021年8月3日20时54分09秒,第一操作所属进程的进程标识为01,第一操作的操作类型为擦除操作,测试人员通过查看第一操作数据,可以确定在2021年8月3日20时54分09秒,进程标识为01的进程对分区标识为15的分区进行了擦除操作。
在这种方式下,测试人员通过查看第一操作数据,明确出现问题的根源,可以达到省时省力的效果。
S402、将第一操作数据存储于第二分区。
终端设备获取第一操作数据后,可以将第一操作数据存储于第二分区,以便于关键信息出现丢失或者错误时供测试人员查看。
可选地,第一操作数据是按照预设格式存储于第二分区中的,预设格式为相邻两个数据之间存在分隔符。
终端设备可以将第一操作数据按照预设格式存储于第二分区。若第一操作数据包括第一分区的分区标识、执行第一操作的时间点、第一操作所属进程的进程标识以及第一操作的操作类型,则相邻两个数据之间均存在分隔符。分隔符用于分隔不同的数据,以便用于区分不同的数据,分隔符可以为逗号、顿号、短横线或者竖线,但本申请实施例并不限于此。终端设备可以使用固定大小的内存空间保存第一操作数据。
示例性地,图6示出了一种存储第一操作数据的示意图。如图6所示,终端设备可以使用32字节保存第一操作数据。若第一分区的分区标识为15,执行第一操作的时间点为2021年8月3日20时54分09秒,第一操作所属进程的进程标识为01,第一操作的操作类型为擦除操作(E),分隔符为“|”,则第一操作数据的存储方式可以为01|0015|20210803205409|E。其中,进程标识01占用2个字节、分隔符占用1个字节、分区标识占用4个字节、时间点占用14个字节、操作类型占用1个字节,共占用24个字节,故还剩有32-24=8个字节,该8个字节可以为预置位。
本申请实施例提供的用于问题定位的方法,在预设内存中开辟第二分区,专门用于存储操作数据,通过预设内存中的内存存储操作数据,具有高保密性,可以保证操作数据的安全,当检测到第一操作时,获取第一操作数据,并将第一操作数据存储在第二分区中,有利于终端设备出现问题时进行查看,实现对擦除操作或者写入操作进行定位。
作为一个可选的实施例,第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,第一内存空间用于存储数据头,第二内存空间用于存储多个操作数据,多个操作数据包括第一操作数据,第三内存空间用于存储预留位。
第二分区的内存空间分为三部分,分别用于存储数据头、操作数据以及预留位。第二内存空间中可以存储的操作数据的数量,本申请实施例对此不作限定。本申请实施例对第二分区的内存空间的大小也不作限定。
可选地,第二内存空间可以包括预设个数的操作数据,若终端设备使用包括x个字节的内存空间保存第一操作数据,则第二内存空间可以包括N*x个字节,N为预设个数。第一内存空间的字节数可以与第三内存空间的字节数相同,也可以与第三内存空间的字节数不同,本申请实施例对此不作限定。
示例性地,图7示出了一种第二分区的示意图。如图7所示,数据头占用的字节数为4字节,第二分区可以包括5个操作数据,分别为操作数据1、操作数据2、操作数据3、操作数据4以及操作数据5,每个操作数据可以占用32字节,预留位占用4字节,即第二分区可以存储5个操作数据,该5个操作数据可以包括上述第一操作数据,第一操作数据可以是该5个操作数据中的任意一个,对第一操作数据的存储位置不作限定。
作为一个可选的实施例,在上述S402、将第一操作数据存储于第二分区之前,方法400还包括:获取第二分区的分区标识;根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置;在字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置;S402、将第一操作数据存储于第二分区,包括:以第一字节位置为起始字节,在第二分区存储第一操作数据。
终端设备在存储第一操作数据之前,可以确定存储第一操作数据的起始字节,以便于正确存储第一操作数据。第二分区是预设内存中的某一个内存空间,故终端设备首先根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置。第二分区中的第一内存空间存储数据头,第二内存空间才用于存储操作数据,故终端设备可以在上述字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置,该第一字节位置为存储第一操作数据的起始字节。
示例性地,在上述图7所示的第二分区中,第一内存空间的字节数为4字节,终端设备首先确定第二分区在预设内存的字节起始位置,然后在该字节起始位置的基础上增加4字节数,得到第一字节位置,然后存储第一操作数据,第一操作数据的存储位置为图7中操作数据1的位置。
本申请实施例提供的用于问题定位的方法,第二分区的第二内存空间可以存储多个操作数据,在存储操作数据之前,计算第二内存空间的起始位置,以便于有序存储操作数据。
可选地,上述预设内存还可以包括第三分区;方法400还可以包括:检测到第二操作时,获取第二操作数据,第二操作用于在第三分区写入信息或者擦除信息,第二操作数据包括第三分区的分区标识和执行第二操作的时间点;在第一字节位置的基础上增加第一操作数据占用的字节数,得到第二字节位置;以第二字节位置为起始字节,在第二分区存储第二操作数据。
第三分区可以是与上述第一分区和第二分区不同的分区,也可以是与上述第一分区相同的分区,或者是与上述第二分区相同的分区,本申请实施例对此不作限定。
终端设备存储第一操作数据之后,检测到第二操作时,可以获取第二操作数据。第二操作数据包括第三分区的分区标识和执行第二操作的时间点,还可以包括第二操作所属进程的进程标识以及第二操作的操作类型,本申请实施例对此不作限定。
终端设备获取第二操作数据后,可以确定存储第二操作数据的起始字节,以便于后续存储第二操作数据。终端设备在上述方法中确定存储第一操作数据的起始字节为第一字节位置,可以在此基础上增加第一操作数据占用的字节数,得到第二字节位置,该第二字节位置为存储第二操作数据的起始字节。
示例性地,在上述图7所示的第二分区中,第一操作数据的存储位置为图7中操作数据1的位置,终端设备在存储第一操作数据的起始字节增加第一操作数据占用的字节32个字节,得到第二字节位置,然后存储第二操作数据,第二操作数据的存储位置为图7中操作数据2的位置。
本申请实施例提供的用于问题定位的方法,在存储第一操作数据之后存储第二操作数据,先计算字节偏移量,即增加第一操作数据占用的字节,确定存储第二操作数据的起始字节,有利于避免踩内存的问题的出现,有利于有序存储操作数据。
作为一个可选的实施例,多个操作数据为预设个数的操作数据,预设个数的操作数据已占用第二内存空间,预设内存还可以包括第四分区;上述方法400还可以包括:检测到第三操作时,获取第三操作数据,第三操作用于在第四分区写入信息或者擦除信息,第三操作数据包括第四分区的分区标识和执行第三操作的时间点;删除预设个数的操作数据中第一个操作数据;利用第一个操作数据释放的字节存储第三操作数据。
预设个数的操作数据已占用第二内存空间,即第二内存空间已经存储了预设个数的操作数据。
第四分区可以是与上述第一分区、第二分区以及第三分区不同的分区,也可以是与上述第一分区相同的分区,或者,是与上述第二分区相同的分区,或者,是与上述第三分区相同的分区,本申请实施例对此不作限定。
终端设备在第二内存空间存储了预设个数的操作数据后,检测到第三操作时,获取第三操作数据,第三操作数据包括第四分区的分区标识和执行第三操作的时间点,还可以包括第三操作所属进程的进程标识以及第三操作的操作类型,本申请实施例对此不作限定。
第二分区的第二内存空间的大小是固定的,且已经存储了预设个数的操作数据,当终端设备再获取第三操作数据后,可以删除已经存储的预设个数的操作数据中第一个操作数据,并利用第一个操作数据释放的字节存储第三操作数据。其中,第一个操作数据可以是预设个数的操作数据中时间点距离当前最远的一个操作数据,或者,可以是预设个数的操作数据中时间点距离当前最近的一个操作数据。
若预设个数的操作数据以数据链表的形式表示,当操作数据多于预设个数的操作数据时,终端设备可以断开数据链表中第一个操作数据,连接新的操作数据。其中,第一个操作数据可以是数据链表的头部的第一个数据,也可以是数据链表的尾部的第一个数据,本申请实施例对此不作限定。
示例性地,图8示出了一种数据链表的示意图。如图8所示,预设个数的操作数据为5个操作数据,分别为操作数据1、操作数据2、操作数据3、操作数据4以及操作数据5,且以数据链表的形式表示,头部数据为操作数据1,尾部数据为操作数据5,当获取操作数据6后,终端设备可以断开与操作数据5的连接,连接操作数据6,即利用操作数据5释放的字节存储操作数据6。
本申请实施例提供的用于问题定位的方法,第二分区的字节数是有限的,当预设个数的操作数据将第二分区中存储的内存空间占用完之后,可以删除预设个数的操作数据中第一个操作数据,以利用释放的字节保存第三个操作数据,以保证在第二分区内存储。
为了实现上述方法,本申请实施例提供了一种具体的实现方式。
本申请实施例在存储关键信息的内存(即上述预设内存)中开辟一个分区标识为4的内存分区(即上述第二分区),用于存储产线日志信息,并创建了一个数据结构以追踪产线日志信息,该数据结构可以如上述图6所示。当产线报出问题时,测试人员可以通过调用产线日志信息对问题进行定位。
本申请实施例提供的实现方式可以适用于终端设备的内核态、用户态以及小系统阶段,本申请实施例以用户态的实现为例,对本申请提供的实现方式进行详细说明。
图9示出了一种问题定位的方法900的示意图。该方法900可以由终端设备执行,终端设备可以包括检测接口、日志接口、数据接口以及时间接口。其中,检测接口、日志接口、数据接口以及时间接口可以均理解为函数。终端设备的硬件结构图可以如图2所示,终端设备的软件结构框图可以如图3所示,但本申请实施例对此不作限定。
如图9所示,方法900可以包括如下步骤:
S901、终端设备通过检测接口检测到第一操作时,调用日志接口,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存包括第一分区和第二分区,第二分区用于存储操作数据。
检测接口也可以称为擦/写接口,本申请实施例对此不作限定。若第一操作为写操作,可以用参数write_oeminfo表示,若第一操作为擦除操作,可以用参数erase_oeminfo表示。
终端设备通过检测接口检测到第一操作时,还可以调用DoStorageKeyidAction接口,该接口可以将第二分区的内存空间分为第一内存空间、第二内存空间以及第三内存空间,第一内存空间用于存储数据头,第二内存空间用于存储多个操作数据,第三内存空间用于存储预留位,还可以将第二内存空间分为相等的五部分,每一部分均用于存储操作数据。
S902、终端设备通过日志接口获取第二分区的分区标识。
日志接口可以用oem_keyidLog表示,但本申请实施例并不限于此。
分区标识为4的内存分区,用于存储产线日志信息,故终端设备获取的第二分区的分区标识为4。
S903、终端设备通过日志接口根据第二分区的分区标识,确定字节偏移量,并调用数据接口以获取第一操作数据。
终端设备确定第二分区的分区标识后,需要计算字节偏移量,即计算存储产线日志信息的字节位置,以正确存储产线日志信息。其中,字节偏移量可以用curoffset表示,但本申请实施例并不限于此。
具体地,终端设备根据所述第二分区的分区标识,可以确定第二分区在预设内存的字节起始位置;在该字节起始位置的基础上增加第一内存空间的字节数,可以得到第一字节位置,即字节偏移量。
数据接口可以用DoStorageKeyidFillData表示,用于获取操作对应的操作数据。
S904、终端设备通过数据接口,获取第一分区的分区标识、第一操作所属进程的进程标识以及第一操作的操作类型,并调用时间接口以获取执行第一操作的时间点。
第一分区的分区标识可以用dataTmp.oeminfoid表示。第一操作所属进程的进程标识可以用dataTmp.flag表示。第一操作的操作类型可以用dataTmp.sparse1表示。执行第一操作的时间点可以用dataTmp.datetime表示。
S905、终端设备通过时间接口获取执行第一操作的时间点。
时间接口可以用DoStorageKeyidGetTime表示,该接口可以利用rtc_get_time函数获取执行第一操作的时间点。
S906、终端设备通过时间接口向数据接口发送执行第一操作的时间点,对应地,数据接口接收该执行第一操作的时间点。
数据接口调用时间接口以获取执行第一操作的时间点,时间接口可以向数据接口返回执行第一操作的时间点。
S907、终端设备通过数据接口向日志接口发送第一操作数据,对应地,日志接口接收该第一操作数据,第一操作数据包括第一分区的分区标识、第一操作所属进程的进程标识、第一操作的操作类型以及执行第一操作的时间点。
数据接口得到执行第一操作的时间点后,结合第一分区的分区标识、第一操作所属进程的进程标识以及第一操作的操作类型,确定第一操作数据,并向日志接口返回第一操作数据。
S908、终端设备通过日志接口根据字节偏移量,在第二分区存储第一操作数据。
存储第一操作数据也可以称为写入第一数据,本申请实施例对此不作限定。
若第一操作为写操作,第一操作数据可以用参数about_common_oeminfo_write表示,若第一操作为擦除操作,可以用参数about_common_oeminfo_read表示。
终端设备可以按照上述图6所述的存储格式在第二分区存储第一操作数据。
本申请实施例提供的用于问题定位的方法,通过不同的接口实现检测第一操作,并获取第一操作数据,并将第一操作数据存储在第二分区中,有利于终端设备出现问题时进行查看,实现对擦除操作或者写入操作进行定位。
上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图9,详细描述了本申请实施例提供的问题定位的方法,下面将结合图10和图11,详细描述本申请实施例提供的终端设备。
图10示出了本申请实施例提供的一种终端设备1000,该终端设备1000包括:获取模块1010和处理模块1020。其中,获取模块1010用于:检测到第一操作时,获取第一操作数据,第一操作用于在预设内存中的第一分区写入信息或者擦除信息,预设内存用于存储单板条形码、整机条形码以及物理地址,预设内存包括第一分区和第二分区,第二分区用于存储操作数据,第一操作数据包括第一分区的分区标识和执行第一操作的时间点;处理模块1020用于:将第一操作数据存储于第二分区,以用于对所述第一操作进行定位。
可选地,上述第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,第一内存空间用于存储数据头,第二内存空间用于存储多个操作数据,多个操作数据包括第一操作数据,第三内存空间用于存储预留位。
可选地,上述获取模块1010还用于:获取第二分区的分区标识;处理模块1020还用于:根据第二分区的分区标识,确定第二分区在预设内存的字节起始位置;在字节起始位置的基础上增加第一内存空间的字节数,得到第一字节位置;以第一字节位置为起始字节,在第二分区存储第一操作数据。
可选地,上述预设内存还包括第三分区;获取模块1010还用于:检测到第二操作时,获取第二操作数据,第二操作用于在第三分区写入信息或者擦除信息,第二操作数据包括第三分区的分区标识和执行第二操作的时间点;处理模块1020还用于:在第一字节位置的基础上增加第一操作数据占用的字节数,得到第二字节位置;以第二字节位置为起始字节,在第二分区存储第二操作数据。
可选地,上述多个操作数据为预设个数的操作数据,预设个数的操作数据已占用第二内存空间,预设内存还包括第四分区;获取模块1010还用于:检测到第三操作时,获取第三操作数据,第三操作用于在第四分区写入信息或者擦除信息,第三操作数据包括第四分区的分区标识和执行第三操作的时间点;处理模块1020还用于:删除预设个数的操作数据中第一个操作数据;利用第一个操作数据释放的字节存储第三操作数据。
可选地,上述第一操作数据还包括第一操作所属进程的进程标识和第一操作的操作类型,操作类型为写操作或者擦除操作。
可选地,上述第一操作数据是按照预设格式存储于第二分区中的,预设格式为相邻两个数据之间存在分隔符。
应理解,这里的终端设备1000以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,终端设备1000可以具体为上述方法实施例中的终端设备,或者,上述方法实施例中终端设备的功能可以集成在终端设备1000中,终端设备1000可以用于执行上述方法实施例中与终端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述终端设备1000具有实现上述方法实施例中终端设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的实施例中,图10中的终端设备1000也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC)。
图11是本申请实施例提供的另一种终端设备1100的示意性框图。该终端设备1100包括处理器1110、通信接口1120和存储器1130。其中,处理器1110、通信接口1120和存储器1130通过内部连接通路互相通信,该存储器1130用于存储指令,该处理器1120用于执行该存储器1130存储的指令,以控制该通信接口1120发送信号和/或接收信号。
应理解,终端设备1100可以具体为上述方法实施例中的终端设备,或者,上述方法实施例中终端设备的功能可以集成在终端设备1100中,终端设备1100可以用于执行上述方法实施例中与终端设备对应的各个步骤和/或流程。可选地,该存储器1130可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器1110可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与终端设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器1110可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述方法实施例中终端设备对应的方法。
本申请还提供了一种芯片系统,该芯片系统用于支持上述方法实施例中终端设备实现本申请实施例所示的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例所示的终端设备对应的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种用于问题定位的方法,其特征在于,包括:
检测到第一操作时,获取第一操作数据,所述第一操作用于在预设内存中的第一分区写入信息或者擦除信息,所述预设内存用于存储单板条形码、整机条形码以及物理地址,所述预设内存包括所述第一分区和第二分区,所述第二分区用于存储预设个数的操作数据,所述第一操作数据包括所述第一分区的分区标识和执行所述第一操作的时间点;
将所述第一操作数据存储于所述第二分区,以用于对所述第一操作进行定位;
所述方法还包括:
检测到第三操作时,获取第三操作数据,所述第三操作用于在所述预设内存还包括的第四分区写入信息或者擦除信息,所述第三操作数据包括所述第四分区的分区标识和执行所述第三操作的时间点;
所述第二分区已存储所述预设个数的操作数据时,删除所述预设个数的操作数据中第一个操作数据,所述第一个操作数据是所述预设个数的操作数据中时间点距离当前最远的一个操作数据;并利用所述第一个操作数据释放的字节存储所述第三操作数据。
2.根据权利要求1所述的方法,其特征在于,所述第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,所述第一内存空间用于存储数据头,所述第二内存空间用于存储多个操作数据,所述多个操作数据包括所述第一操作数据,所述第三内存空间用于存储预留位。
3.根据权利要求2所述的方法,其特征在于,在所述将所述第一操作数据存储于所述第二分区之前,所述方法还包括:
获取所述第二分区的分区标识;
根据所述第二分区的分区标识,确定所述第二分区在所述预设内存的字节起始位置;
在所述字节起始位置的基础上增加所述第一内存空间的字节数,得到第一字节位置;
所述将所述第一操作数据存储于所述第二分区,包括:
以所述第一字节位置为起始字节,在所述第二分区存储所述第一操作数据。
4.根据权利要求3所述的方法,其特征在于,所述预设内存还包括第三分区;
所述方法还包括:
检测到第二操作时,获取第二操作数据,所述第二操作用于在所述第三分区写入信息或者擦除信息,所述第二操作数据包括所述第三分区的分区标识和执行所述第二操作的时间点;
在所述第一字节位置的基础上增加所述第一操作数据占用的字节数,得到第二字节位置;
以所述第二字节位置为起始字节,在所述第二分区存储所述第二操作数据。
5.根据权利要求1所述的方法,其特征在于,所述第一操作数据还包括所述第一操作所属进程的进程标识和所述第一操作的操作类型,所述操作类型为写操作或者擦除操作。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一操作数据是按照预设格式存储于所述第二分区中的,所述预设格式为相邻两个数据之间存在分隔符。
7.一种终端设备,其特征在于,包括:
获取模块,用于检测到第一操作时,获取第一操作数据,所述第一操作用于在预设内存中的第一分区写入信息或者擦除信息,所述预设内存用于存储单板条形码、整机条形码以及物理地址,所述预设内存包括所述第一分区和第二分区,所述第二分区用于存储预设个数的操作数据,所述第一操作数据包括所述第一分区的分区标识和执行所述第一操作的时间点;
处理模块,用于将所述第一操作数据存储于所述第二分区,以用于对所述第一操作进行定位;
所述获取模块还用于:
检测到第三操作时,获取第三操作数据,所述第三操作用于在所述预设内存还包括的第四分区写入信息或者擦除信息,所述第三操作数据包括所述第四分区的分区标识和执行所述第三操作的时间点;
所述处理模块还用于:
所述第二分区已存储所述预设个数的操作数据时,删除所述预设个数的操作数据中第一个操作数据,所述第一个操作数据是所述预设个数的操作数据中时间点距离当前最远的一个操作数据;并利用所述第一个操作数据释放的字节存储所述第三操作数据。
8.根据权利要求7所述的终端设备,其特征在于,所述第二分区的内存空间包括第一内存空间、第二内存空间以及第三内存空间,所述第一内存空间用于存储数据头,所述第二内存空间用于存储多个操作数据,所述多个操作数据包括所述第一操作数据,所述第三内存空间用于存储预留位。
9.根据权利要求8所述的终端设备,其特征在于,所述获取模块还用于:
获取所述第二分区的分区标识;
所述处理模块还用于:
根据所述第二分区的分区标识,确定所述第二分区在所述预设内存的字节起始位置;
在所述字节起始位置的基础上增加所述第一内存空间的字节数,得到第一字节位置;
以所述第一字节位置为起始字节,在所述第二分区存储所述第一操作数据。
10.根据权利要求9所述的终端设备,其特征在于,所述预设内存还包括第三分区;
所述获取模块还用于:
检测到第二操作时,获取第二操作数据,所述第二操作用于在所述第三分区写入信息或者擦除信息,所述第二操作数据包括所述第三分区的分区标识和执行所述第二操作的时间点;
所述处理模块还用于:
在所述第一字节位置的基础上增加所述第一操作数据占用的字节数,得到第二字节位置;
以所述第二字节位置为起始字节,在所述第二分区存储所述第二操作数据。
11.根据权利要求7所述的终端设备,其特征在于,所述第一操作数据还包括所述第一操作所属进程的进程标识和所述第一操作的操作类型,所述操作类型为写操作或者擦除操作。
12.根据权利要求7至11中任一项所述的终端设备,其特征在于,所述第一操作数据是按照预设格式存储于所述第二分区中的,所述预设格式为相邻两个数据之间存在分隔符。
13.一种终端设备,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述终端设备执行如权利要求1至6中任一项所述的方法。
14.一种芯片系统,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的设备实现如权利要求1至6中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至6中任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291671.2A CN114398296B (zh) | 2022-03-24 | 2022-03-24 | 用于问题定位的方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291671.2A CN114398296B (zh) | 2022-03-24 | 2022-03-24 | 用于问题定位的方法和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398296A CN114398296A (zh) | 2022-04-26 |
CN114398296B true CN114398296B (zh) | 2022-09-27 |
Family
ID=81234740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210291671.2A Active CN114398296B (zh) | 2022-03-24 | 2022-03-24 | 用于问题定位的方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398296B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541895A (zh) * | 2023-06-20 | 2023-08-04 | 荣耀终端有限公司 | 一种电路板检测方法、电子装置及芯片系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007141089A (ja) * | 2005-11-21 | 2007-06-07 | Hitachi Ltd | コンテンツ格納管理システム、コンテンツ格納管理方法、コンテンツ格納管理プログラム |
CN105975356A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 内存错误检测方法、内存管理系统和装置、以及服务器 |
CN108897642A (zh) * | 2018-06-27 | 2018-11-27 | 清华大学 | 持久性事务内存系统中日志机制的优化方法及装置 |
CN111274155A (zh) * | 2020-02-25 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 动态库的内存操作记录方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536788B (zh) * | 2003-04-11 | 2010-04-28 | 华为技术有限公司 | 日志保留系统和方法 |
JP2017068342A (ja) * | 2015-09-28 | 2017-04-06 | 富士通株式会社 | 制御プログラム、制御方法、及び、情報処理装置 |
CN108920306A (zh) * | 2018-06-29 | 2018-11-30 | 努比亚技术有限公司 | 基于内存管理的重启定位方法、移动终端及可读存储介质 |
CN113448815B (zh) * | 2020-03-26 | 2022-10-18 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
US11520523B2 (en) * | 2020-05-26 | 2022-12-06 | Western Digital Technologies, Inc. | Data integrity protection of ZNS needs |
-
2022
- 2022-03-24 CN CN202210291671.2A patent/CN114398296B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007141089A (ja) * | 2005-11-21 | 2007-06-07 | Hitachi Ltd | コンテンツ格納管理システム、コンテンツ格納管理方法、コンテンツ格納管理プログラム |
CN105975356A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 内存错误检测方法、内存管理系统和装置、以及服务器 |
CN108897642A (zh) * | 2018-06-27 | 2018-11-27 | 清华大学 | 持久性事务内存系统中日志机制的优化方法及装置 |
CN111274155A (zh) * | 2020-02-25 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 动态库的内存操作记录方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114398296A (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113448815B (zh) | 一种采集追踪trace调用链的方法和电子设备 | |
CN114398296B (zh) | 用于问题定位的方法和终端设备 | |
CN116669064B (zh) | 无线协议测试方法及电子设备 | |
CN117707439A (zh) | 日志打印方法及相关装置 | |
CN115314427B (zh) | 一种协议测试方法、电子设备及芯片系统 | |
CN116662270B (zh) | 文件解析方法及相关装置 | |
CN108132817B (zh) | 对象管理方法及装置 | |
CN116450372A (zh) | 共享内存泄露的定位方法和定位装置 | |
CN114650332B (zh) | 信息处理方法、系统及计算机存储介质 | |
CN114371895B (zh) | 一种终端设备、邮件标记方法和存储介质 | |
CN116450473A (zh) | 踩内存问题的定位方法和电子设备 | |
CN115334604A (zh) | 一种终端设备、网络控制方法和存储介质 | |
CN112230819B (zh) | 信息处理方法、信息处理装置、存储介质与电子设备 | |
US11815990B2 (en) | Method for determining faulty computing core in multi-core processor and electronic device | |
CN114416173B (zh) | 版本切换方法和终端设备 | |
CN116088955B (zh) | 进程处理方法和终端设备 | |
CN113821843B (zh) | 移动终端及其插入卡的类型确定方法 | |
CN116095685B (zh) | 关键信息的保护方法和终端设备 | |
CN113312249A (zh) | 日志数据生成方法、日志数据显示方法及装置 | |
CN116088943B (zh) | 背光模组的控制方法和终端设备 | |
US20240323670A1 (en) | Method for Detecting Embedded Subscriber Identity Module ESIM Card and Terminal Device | |
CN114979949B (zh) | 飞行状态识别方法和飞行状态识别装置 | |
EP4354915A1 (en) | Method for detecting embedded subscriber identity module (esim) card, and terminal device | |
CN111444070B (zh) | 接口交互数据处理方法和用户终端 | |
CN114896009B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |