1.本技术涉及智能终端
技术领域:
:,尤其涉及保留应用数据的方法和终端设备。
背景技术:
::2.安卓设备流行当下,各种特殊的用户场景越来越多,用户体验也越来越重要。应用功能设计中,某些用户数据信息需要在恢复出厂设置或者是工具升级过程中保留下来。但是现有技术中普通应用app无法使用保留用户数据的功能,而且各个厂商的保留用户数据的功能实现方式各不相同,维护不方便,无法做到方式统一。3.由此可见,相关技术对复位时用户数据管理存在缺陷,需要提供一种可靠的保留应用数据的方法以便于用户能够保留普通应用的用户数据。技术实现要素:4.本技术的目的是提供一种保留应用数据的方法和终端设备,用以解决相关技术对普通应用的用户数据无法保留的问题。5.第一方面,本技术提供一种保留应用数据的方法,内核层设置有诊断分区,所述诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失,所述方法包括:6.应用程序层在对应用数据进行读写操作时,调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给所述应用程序框架层;7.若应用程序框架层从所述数据标识中检测到指定字符,则应用程序框架层建立与系统库之间的通信连接;8.应用程序框架层通过所述通信连接调用系统库中的对话服务,将所述数据标识发送给所述对话服务;9.所述系统库中的对话服务在预置列表中查找所述诊断分区中与所述数据标识对应的数据地址;并在所述数据地址对所述待处理应用数据进行读写操作。10.在一些实施例中,若所述读写操作为写操作,所述调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给所述应用程序框架层,包括:11.调用应用程序框架层提供的标准接口将所述待处理应用数据和所述数据标识同时传递给所述应用程序框架层;12.所述将所述数据标识发送给所述对话服务,具体包括:13.将所述待处理应用数据和所述数据表示同时发送给所述对话服务。14.在一些实施例中,若所述读写操作为读操作时所述标准接口为用于读操作的读接口,若所述读写操作为写操作时所述标准接口为用于写操作的写接口。15.在一些实施例中,所述读接口包括操作系统的原生获取接口和预置扩展读接口;所述预置扩展读接口是在所述操作系统的原生获取接口类中扩展实现的;16.其中,所述操作系统的原生获取接口用于检测所述数据标识中是否含有指定字符,若含有所述指定字符则将所述数据标识发送给所述预置扩展读接口处理;17.所述预置扩展读接口用于与所述对话服务建立通信。18.在一些实施例中,所述写接口包括操作系统的原生写接口和预置扩展写接口;所述预置扩展写接口是在所述操作系统的原生写接口类中扩展实现的;19.其中,所述操作系统的原生写接口用于检测所述数据标识中是否含有指定字符,若含有所述指定字符则将所述数据标识发送给所述预置扩展写接口处理;20.所述预置扩展写接口用于与所述对话服务建立通信。21.在一些实施例中,所述预置列表包括第一子列表和第二子列表,所述第一子列表用于存储第一类应用的数据标识和数据地址之间的对应关系,所述第二子列表用于存储第二类应用的数据标识和数据地址之间的对应关系。22.在一些实施例中,所述方法还包括:23.在对待处理应用恢复出厂设置或进行非全擦拭工具升级之后,应用程序层生成针对所述待处理应用数据的所述读操作请求;24.在基于所述读操作请求得到所述待处理应用数据之后,基于所述待处理应用数据运行所述待处理应用。25.第二方面,本技术还提供了一种终端设备,包括:26.显示器、处理器和存储器;27.所述显示器用于显示信息;28.所述存储器,用于存储所述处理器可执行指令;29.所述处理器被配置为执行所述指令,以实现如本技术第一方面中提供的任一方法。30.第三方面,本技术一实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备的处理器执行时,使得所述终端设备能够执行如本技术第一方面中提供的任一方法。31.第四方面,本技术一实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如本技术第一方面中提供的任一方法。32.本技术的实施例提供的技术方案至少带来以下有益效果:33.通过在内核层设置有诊断分区,使得诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失,通过调用本技术在应用程序框架层提供的标准接口,使得任一应用只要调用标准接口即可实现对诊断分区的读写操作,以实现对用户数据的维护,避免了不同平台或厂商的应用无法统一适配的问题,提高了用户体验。34.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本技术各较佳实施例。附图说明35.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。36.图1为本技术实施例提供的一种终端设备的结构示意图;37.图2为本技术实施例提供的一种终端设备的软件架构示意图;38.图3为本技术实施例提供的一种保留应用数据的流程示意图;39.图4为本技术实施例提供的一种保留应用数据的框架示意图;40.图5为本技术实施例提供的应用在诊断分区获取数据的流程示意图;41.图6为本技术实施例提供的应用在诊断分区写入数据的另一流程示意图;42.图7为本技术实施例提供的应用在诊断分区获取数据的接口调用的框架示意图;43.图8为本技术实施例提供的应用在诊断分区写入数据的接口调用的框架示意图。具体实施方式44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。45.并且,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。46.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。47.下面将结合实施例对本技术提供的一种保留应用数据的方法进行介绍。48.本技术的发明构思可概括为:应用程序层在对应用数据进行读写操作时,调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给应用程序框架层,若应用程序框架层从数据标识中检测到指定字符,则应用程序框架层建立与系统库之间的通信连接,应用程序框架层通过通信连接调用系统库中的对话服务,将数据标识发送给对话服务;系统库中的对话服务在预置列表中查找诊断分区中与数据标识对应的数据地址,并在数据地址对待处理应用数据进行读写操作,其中,内核层设置有诊断分区,诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失。综上,通过在内核层设置有诊断分区,使得诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失,通过调用本技术在应用程序框架层提供的标准接口,使得任一应用只要调用标准接口即可实现对诊断分区的读写操作,以实现对用户数据的维护,避免了不同平台或厂商的应用无法统一适配的问题,提高了用户体验。49.在介绍完本技术实施例的主要发明思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。50.首先,图1示出了一种终端设备100的结构示意图。51.下面以终端设备100为例对实施例进行具体说明。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。52.图1中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radiofrequency,rf)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(wirelessfidelity,wi-fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。53.rf电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。54.存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作系统。本技术中存储器120可以存储操作系统及各种应用程序,还可以存储执行本技术实施例所述方法的程序代码。55.显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如查看应用数据等。56.显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphicaluserinterface,gui)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本技术中应用数据读写过程等。57.其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元130可以显示应用程序以及对应的操作步骤。58.摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupleddevice,ccd)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。59.终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。60.音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至rf电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。本技术中麦克风162可以获取用户的语音。61.wi-fi属于短距离无线传输技术,终端设备100可以通过wi-fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。62.处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本技术中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例所述的处理方法。另外,处理器180与显示单元130耦接。63.蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴终端设备(例如智能手表)建立蓝牙连接,从而进行数据交互。64.终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。65.图2是本技术实施例的终端设备100的软件结构框图。66.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(androidruntime)和系统库,以及内核层。67.应用程序层可以包括一系列应用程序包。68.如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。69.应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。70.如图2所示,应用程序框架层可以分为java侧以及native侧,java侧包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,应用管理器等。安装管理服务(packagemanagerservice,后简称pms)位于图2中应用程序框架层的应用管理器(图中未示出)。71.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。72.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。73.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括授权提示框的显示界面,可以包括显示文字的视图以及显示图片的视图。74.电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。75.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。76.通知管理器使应用程序可以在悬浮窗中显示通知信息(例如短信息的消息摘要,消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。77.native侧的服务位于应用程序框架层的native侧,与系统库相邻,installd是属于native侧的服务。78.androidruntime包括核心库和虚拟机。androidruntime负责安卓系统的调度和管理。79.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。80.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。81.系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),三维图形处理库(例如:opengles),2d图形引擎(例如:sgl)等。82.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。83.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。84.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。85.2d(一种动画方式)图形引擎是2d绘图的绘图引擎。86.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。87.本技术实施例中的终端设备100可以为手机、平板电脑、可穿戴设备以及电视等可安装安卓系统的终端设备。88.本技术实施例提供的一种保留应用数据的方法,在该方法中,本技术将在内核层设置有诊断分区。89.若将app应用和程序数据均保存在data分区,复位手机时data分区的内容会被重置,本技术所提供的诊断分区不属于data分区,所以,诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失。此外,本技术指定了该诊断分区数据的数据查找路径,例如:路径为/dev/block/bootdevice/by-name/diag,根据该路径对诊断分区数据进行操作,能够实现对用户数据的读写。90.为了方便应用的数据存取,本技术在诊断分区设置了预置列表,根据应用需求不同该类表可设置一个或多个子列表。例如该预置列表可包括第一子列表和第二子列表,第一子列表用于存储第一类应用的数据标识和数据地址之间的对应关系,第二子列表用于存储第二类应用的数据标识和数据地址之间的对应关系。例如,工检app是一种工厂生产中用于手机功能测试、手机基本信息保存、查看的应用,由于工检app需要存放的数据较多,本技术将分区存储区域分为两部分,一部分为工检app单独使用部分,定义为工检数据list(factory-list),规定其起始位置为0*1024,对应第一子列表;其它app使用部分,定义为普通应用数据list(app-list),规定起始位置为512*1024,对应第二子列表。91.保存到诊断分区中的所有数据最多占用92个字节,例如:app-list中的第0位key值key1对应数据在诊断分区中的存放起始位置为512*1024,最大长度为92个字节,则key1对应数据的后一位数据在诊断分区中的存放起始位置为512*1024 92,最大长度也是92个字节,依此类推。92.需要说明的是,工检app是本技术开发的一个应用,用于工厂生产时测试的app,这个app用于查看一些设备参数信息,因此需要保存、查看一些设备参数信息供给工检app查看。工检app将根据本技术的保留应用数据的方法实现读写诊断分区的设备参数信息。93.在一些实施例中,为了避免普通应用用户数据丢失,本技术实施例提供的一种保留应用数据的方法的流程图如图3所示,包括以下内容:94.在步骤301中,应用程序层在对应用数据进行读写操作时,调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给应用程序框架层。95.本技术实施例提供的一种保留应用数据的方法的框架如图4所示,上述读写操作分为读操作和写操作,分别对应图4中的获取数据get和设置数据set。整个框架包括以下内容:位于应用程序层的应用在对应用数据进行读写操作时,调用位于framework层(应用程序框架层)标准接口,建立与系统层的对话服务即diagagentd服务的通信,最终由对话服务在诊断分区设置数据或获取数据完成读写操作。96.在一些实施例中,若读写操作为写操作,则在将待处理应用数据的数据标识传递给应用程序框架层过程中,本技术还将调用应用程序框架层提供的标准接口将待处理应用数据传递给应用程序框架层。97.需要说明的是,读写操作所调用的应用程序框架层提供的标准接口也是不同的。其中,若读写操作为读操作时,标准接口为用于读操作的读接口,若读写操作为写操作时,标准接口为用于写操作的写接口。98.而且,读接口包括操作系统的原生获取接口和预置扩展读接口,预置扩展读接口是在操作系统的原生获取接口类中扩展实现的。99.例如,现有android系统中有systemproperties.java类接口用于获取设置属性值保存数据,本技术提供的标准接口是通过在systemproperties.java类中扩展实现的。其中本技术为应用提供的标准接口有systemproperties.getstable(stringkey,stringvalue),该接口用于获取数据,即对应读操作;标准接口systemproperties.setstable(stringkey,stringvalue),该接口用于设置数据,即对应写操作。100.在实际调用时,应用不一定要使用getstable和setstable这两个标准接口,也可以使用systemproperties.get(stringkey,stringvalue)和systemproperties.set(stringkey,stringvalue)这两个安卓原生接口,本技术按照key值命名规则对这两个接口进行了处理,如果发现key值是以stable.sys开头的则会分别调用getstable和setstable接口,上述通过指定字符对接口进行了区分,便于应用灵活使用。101.调用了标准接口后,在步骤302中,若应用程序框架层从数据标识中检测到指定字符,则应用程序框架层建立与系统库之间的通信连接。102.其中,操作系统的原生获取接口用于检测数据标识中是否含有指定字符,若含有指定字符则将数据标识发送给预置扩展读接口处理,预置扩展读接口用于与对话服务建立通信。例如,如果发现数据标识key值是以指定字符stable.sys开头,则会分别调用标准接口getstable和setstable,从而与对话服务建立通信。若key值中仅包含原生属性类型值,例如:sys.usb.config属性等等,则不调用标准接口。103.在步骤303中,应用程序框架层通过通信连接调用系统库中的对话服务,将数据标识发送给对话服务。104.在一些实施例中,对话服务即为diagagentd服务,这个服务是属于系统库层的服务,主要完成的是对诊断分区的读写操作应用程序框架层将数据标识发送给对话服务,即将key值数据发送到diagagentd服务,diagagentd服务将根据key值所在list中位置来完成对诊断分区中对应位置数据的读写操作。105.需要说明的是,key值是app应用自己定义的。例如,应用开发了一个复位也要保存数据的功能,该应用将提前定义好这个key值。key值是唯一的不同功能使用不同值。应用在保存数据的时候已经生成了key值,应用再根据这个key值去保存和查询用户数据。而且,应用调用标准接口时设置的属性值必须与这个key值名称一致,例如上述key值命名原则是按照stable.sys.功能名称来命名的,因此若应用发现数据标识key值是以指定字符stable.sys开头,即标准接口时设置的属性值与这个key值名称一致,则会调用标准接口如getstable或setstable执行读写操作。106.在步骤304中,系统库中的对话服务在预置列表中查找诊断分区中与数据标识对应的数据地址;并在数据地址对待处理应用数据进行读写操作。107.在一些实施例中,diagagentd服务根据上述key值,在诊断分区中查找与数据标识key值对应的数据地址,并在数据地址对待处理应用数据(即用户数据)进行读写操作。为了避免部分数据被遗漏,diagagentd服务将对诊断分区中的两个列表进行查找,查找到待处理应用数据后,diagagentd服务对该待处理应用数据进行读写操作。108.需要补充的是,在对待处理应用恢复出厂设置或进行非全擦拭工具升级之后,若应用程序层生成针对待处理应用数据的读操作请求,在基于读操作请求得到待处理应用数据之后,基于待处理应用数据运行待处理应用。109.例如,演示模式功能是本技术在门店中提供给销售人员演示的一种功能。这个功能要求只要设备开启了演示模式开关,就要记住演示模式这个状态,即使是恢复出厂设置,开机后也自动进入演示模式,若有应用想要读取该应用的相关数据,则应用程序层生成针对待处理应用数据的读操作请求,在基于读操作请求得到待处理应用数据之后,基于待处理应用数据允许待处理应用进行读取。110.在一些实施例中,应用在诊断分区获取数据流程如图5所示,包括以下步骤:111.在步骤501中,应用程序框架层获取到数据标识,将数据标识发送给对话服务,对话服务在预置列表中查找诊断分区中与数据标识对应的数据地址。112.在步骤502中,判断与数据标识对应的数据地址是否在第二子列表中。第二子列表即为app-list。若与数据标识对应的数据地址在第二子列表,则执行步骤504,若与数据标识对应的数据地址不在第二子列表,则执行步骤503。113.在步骤503中,判断与数据标识对应的数据地址是否在第一子列表。第一子列表即为factory-list。若与数据标识对应的数据地址在第二子列表,则执行步骤504,若与数据标识对应的数据地址不在第二子列表,则结束获取数据流程。114.在步骤504中,获取数据标识对应的待处理应用数据的路径。115.在步骤505中,基于上述数据标识对应的待处理应用数据的路径,在与数据标识对应的数据地址获取待处理应用数据。116.在另一些实施例中,应用在诊断分区写入数据(设置数据)流程如图6所示,包括以下步骤:117.在步骤601中,应用程序框架层获取到数据标识,将数据标识发送给对话服务,对话服务在预置列表中查找诊断分区中与数据标识对应的数据地址。118.在步骤602中,判断与数据标识对应的数据地址是否在第二子列表中。第二子列表即为app-list。若与数据标识对应的数据地址在第二子列表,则执行步骤604,若与数据标识对应的数据地址不在第二子列表,则执行步骤603。119.在步骤603中,判断与数据标识对应的数据地址是否在第一子列表中。第一子列表即为factory-list。若与数据标识对应的数据地址在第二子列表,则执行步骤604,若与数据标识对应的数据地址不在第二子列表,则结束写入数据流程。120.在步骤604中,获取数据标识对应的待处理应用数据的路径。121.在步骤605中,数据标识对应的待处理应用数据的路径在与数据标识对应的数据地址写入待处理应用数据。122.上述获取数据和写入数据的操作区别在于相关接口的调用,获取数据调用getstable接口,其接口调用的框架如图7所示,写入数据调用setstable接口,其接口调用的框架如图8所示,获取数据get和写入数据set的流程原理均是相同的,其中,framework层代表的是应用程序框架层,diagagentd服务表示的是系统层,diagagentservice表示的是连接应用程序框架层与系统层的服务,getstable和setstable是本方案中提供给app使用的标准接口。根据图7和图8,本技术对接口名称以及对应的属性进行了准确区分,由此,普通应用可以直接调用本技术提供的标准接口,无需根据平台厂商进行相应适配,实现对于应用数据的读写操作。123.本技术实施例真正实现了能够通过在内核层设置有诊断分区,使得诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失,通过调用本技术在应用程序框架层提供的标准接口,使得任一应用只要调用标准接口即可实现对诊断分区的读写操作,以实现对用户数据的维护,避免了不同平台或厂商的应用无法统一适配的问题,提高了用户体验。124.在示例性实施例中,本技术还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器120,上述指令可由终端设备100的处理器180执行以完成上述保留应用数据的方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。125.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器180执行时实现如本技术提供的保留应用数据的方法。126.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。127.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。128.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。129.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
技术特征:
1.一种保留应用数据的方法,其特征在于,内核层设置有诊断分区,所述诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失,所述方法包括:应用程序层在对应用数据进行读写操作时,调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给所述应用程序框架层;若应用程序框架层从所述数据标识中检测到指定字符,则应用程序框架层建立与系统库之间的通信连接;应用程序框架层通过所述通信连接调用系统库中的对话服务,将所述数据标识发送给所述对话服务;所述系统库中的对话服务在预置列表中查找所述诊断分区中与所述数据标识对应的数据地址;并在所述数据地址对所述待处理应用数据进行读写操作。2.根据权利要求1所述的方法,其特征在于,若所述读写操作为写操作,所述调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给所述应用程序框架层,包括:调用应用程序框架层提供的标准接口将所述待处理应用数据和所述数据标识同时传递给所述应用程序框架层;所述将所述数据标识发送给所述对话服务,具体包括:将所述待处理应用数据和所述数据标识同时发送给所述对话服务。3.根据权利要求1所述的方法,其特征在于,若所述读写操作为读操作时所述标准接口为用于读操作的读接口,若所述读写操作为写操作时所述标准接口为用于写操作的写接口。4.根据权利要求3所述的方法,其特征在于,所述读接口包括操作系统的原生获取接口和预置扩展读接口;所述预置扩展读接口是在所述操作系统的原生获取接口类中扩展实现的;其中,所述操作系统的原生获取接口用于检测所述数据标识中是否含有指定字符,若含有所述指定字符则将所述数据标识发送给所述预置扩展读接口处理;所述预置扩展读接口用于与所述对话服务建立通信。5.根据权利要求3所述的方法,其特征在于,所述写接口包括操作系统的原生写接口和预置扩展写接口;所述预置扩展写接口是在所述操作系统的原生写接口类中扩展实现的;其中,所述操作系统的原生写接口用于检测所述数据标识中是否含有指定字符,若含有所述指定字符则将所述数据标识发送给所述预置扩展写接口处理;所述预置扩展写接口用于与所述对话服务建立通信。6.根据权利要求1-5中任一所述的方法,其特征在于,所述预置列表包括第一子列表和第二子列表,所述第一子列表用于存储第一类应用的数据标识和数据地址之间的对应关系,所述第二子列表用于存储第二类应用的数据标识和数据地址之间的对应关系。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:在对待处理应用恢复出厂设置或进行非全擦拭工具升级之后,应用程序层生成针对所述待处理应用数据的所述读操作请求;在基于所述读操作请求得到所述待处理应用数据之后,基于所述待处理应用数据运行所述待处理应用。
8.一种终端设备,其特征在于,包括:显示器、处理器和存储器;所述显示器用于显示信息;所述存储器,用于存储所述处理器可执行指令;所述处理器被配置为执行所述指令以实现如权利要求1-7中任一项所述的保留应用数据的方法。9.一种计算机可读存储介质,其特征在于,包括:当所述计算机可读存储介质中的指令由所述终端设备执行时,使得所述终端设备能够执行如权利要求1-7中任一项所述的保留应用数据的方法。10.一种计算机程序产品,其特征在于,包括:计算机程序;所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的保留应用数据的方法。
技术总结
本申请涉及智能终端技术领域,提供了一种保留应用数据的方法和终端设备,用以解决相关技术对普通应用用户数据无法保留的问题。应用程序层在对应用数据进行读写操作时,调用应用程序框架层提供的标准接口将待处理应用数据的数据标识传递给应用程序框架层,若应用程序框架层从数据标识中检测到指定字符,则应用程序框架层建立与系统库之间的通信连接,应用程序框架层通过通信连接调用系统库中的对话服务,将数据标识发送给对话服务;系统库中的对话服务在预置列表中查找诊断分区中与数据标识对应的数据地址,并在数据地址对待处理应用数据进行读写操作,其中,内核层设置有诊断分区,诊断分区的数据在恢复出厂设置或非全擦拭工具升级时不会丢失。工具升级时不会丢失。工具升级时不会丢失。
技术研发人员:张军辉
受保护的技术使用者:青岛海信移动通信技术股份有限公司
技术研发日:2022.02.18
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-8044.html