CN116700768B - 一种应用的处理方法及相关装置 - Google Patents

一种应用的处理方法及相关装置 Download PDF

Info

Publication number
CN116700768B
CN116700768B CN202211286005.6A CN202211286005A CN116700768B CN 116700768 B CN116700768 B CN 116700768B CN 202211286005 A CN202211286005 A CN 202211286005A CN 116700768 B CN116700768 B CN 116700768B
Authority
CN
China
Prior art keywords
application
identifier
directory
terminal device
terminal equipment
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
Application number
CN202211286005.6A
Other languages
English (en)
Other versions
CN116700768A (zh
Inventor
高金刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211286005.6A priority Critical patent/CN116700768B/zh
Publication of CN116700768A publication Critical patent/CN116700768A/zh
Application granted granted Critical
Publication of CN116700768B publication Critical patent/CN116700768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请实施例提供一种应用的处理方法及相关装置,涉及终端技术领域。方法包括:终端设备确定应用运行异常;当确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起时,终端设备删除应用在第三目录下的应用数据;其中,目标文件为用于存储应用的安装信息的文件,第一目录用于存放第一版本的应用,第二目录用于存放第二版本的应用,第一版本低于第二版本,第三目录用于存放应用运行时生成的应用数据。这样,终端设备通过删除系统应用的应用数据,使该系统应用可以正常运行。

Description

一种应用的处理方法及相关装置
技术领域
本申请涉及终端技术领域,尤其涉及一种应用的处理方法及相关装置。
背景技术
随着终端设备的发展,终端设备中可以安装各种应用,包括系统应用和三方应用。然而,在一些断电、重启等场景下可能会存在终端设备开机异常的问题。
一种实现中,终端设备可以重启终端设备,使终端设备可以正常开机。但是仍然可能存在重启后的终端设备中应用在运行时出现闪退、无响应弹框等无法正常运行的问题。
发明内容
本申请实施例提供一种应用的处理方法及相关装置,若终端设备在开机启动时出现过异常,并安装了system/等系统应用目录下的低版本的系统应用,则当该系统应用在运行过程中出现异常时,终端设备可以删除该系统应用的应用数据,从而使该系统应用可以正常运行。
第一方面,本申请实施例提供一种应用处理的方法,方法包括:
终端设备确定应用运行异常,当确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起时,终端设备可以删除应用在第三目录下的应用数据。其中,目标文件可以为用于存储应用的安装信息的文件,第一目录可以用于存放第一版本的应用,第二目录可以用于存放第二版本的应用,第一版本低于第二版本,第三目录可以用于存放应用运行时生成的应用数据。这样,终端设备通过删除系统应用的应用数据,使该系统应用正常运行。
一种可能的实现方式中,当确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起时,终端设备删除应用在第三目录下的应用数据,可以包括:当确定第一标识和第二标识均存在时,终端设备删除应用在第三目录下的应用数据;其中,第一标识为终端设备确定开机时目标文件解析失败时标识的,第二标识为第一目录下的应用已安装,且第二目录下存在应用的应用标识时标识的。这样,终端设备可以更为准确的确定本申请实施例中的异常场景,并针对该异常场景进行相应的处理。
一种可能的实现方式中,终端设备确定应用运行异常之前,可以包括:当终端设备确定开机时目标文件解析失败时,终端设备记录第一标识,以及终端设备删除目标文件,重启终端设备,重新创建目标文件,其中,重新创建后的目标文件中不包括应用的安装信息;终端设备扫描第一目录,得到应用的应用标识;当终端设备确定重新创建后的目标文件中不包括应用的应用标识时,终端设备安装第一目录中第一版本的应用;终端设备扫描第二目录;当终端设备在第二目录中得到应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识。这样,终端设备通过记录第一标识和第二标识确定本申请实施例中的异常场景,可以简化终端设备的执行流程,提高终端设备的运行效率。
一种可能的实现方式中,终端设备安装第一目录中第一版本的应用之后,可以包括:在目标文件中添加应用的安装信息;在已安装列表中添加应用的应用标识。这样,终端设备将安装成功的应用的信息添加目标文件中以及已安装列表中,可以使终端设备在扫描第二目录时,可以判断出该应用是否已安装,从而根据应用的安装结果执行相应的流程。
一种可能的实现方式中,当终端设备在第二目录中得到应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识,可以包括:当终端设备在第二目录中得到应用的应用标识时,终端设备在已安装列表中查询应用的应用标识,当终端设备确定已安装列表中包含应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识。这样,可以保证终端设备中应用包名相同的应用不会安装在不同目录下,从而使终端设备的应用安装流程正常执行。
一种可能的实现方式中,终端设备删除应用在第三目录下的应用数据之前,可以包括:终端设备显示弹框,弹框可以包括提示信息和第一按钮,提示信息用于提示应用异常需要删除应用运行时生成的应用数据;终端设备接收到触发同意按钮的操作;终端设备删除应用在第三目录下的应用数据,可以包括:响应于操作,终端设备删除应用在第三目录下的应用数据。这样,终端设备通过向用户弹框提示可以使用户及时了解应用运行的解决方法,保证应用的正常运行,提升用户体验。终端设备删除应用在第三目录下的应用数据,可以使得低版本的系统应用在运行过程中不会再使用高版本的系统应用的应用数据,不会出现应用数据不匹配的情况,从而使应用可以正常运行。
一种可能的实现方式中,应用运行异常,可以包括下述的一种或多种:应用闪退、异常弹框、停止运行或进程异常退出。终端设备通过检测应用运行的状态可以及时对应用运行异常的情况作出相应的处理,提升用户体验。
一种可能的实现方式中,应用的安装信息,可以包括下述的一种或多种:应用包名、安装文件路径、版本号、签名信息或权限信息。终端设备可以通过目标文件获取应用与升级版本以及安装路径等信息的对应关系。
一种可能的实现方式中,终端设备删除应用在第三目录下的应用数据之后,可以包括:终端设备删除第一标识和第二标识。这样,终端设备可以正确记录第一标识和第二标识的状态,准确识别本申请实施例中的问题场景,并针对该问题场景做出相应的处理。
第二方面,本申请实施例提供一种应用处理的装置,该应用处理的装置可以是终端设备,也可以是终端设备内的芯片或者芯片系统。该应用处理的装置可以包括显示单元、处理单元。显示单元用于实现第一方面或第一方面的任意一种可能的实现方式中终端设备执行的与显示相关的任意方法。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式中终端设备执行的与处理相关的任意方法。当该应用处理的装置是终端设备时,该处理单元可以是处理器。该应用处理的装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当该应用处理的装置是终端设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,处理单元,用于确定应用运行异常;还用于确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起;还用于删除应用在第三目录下的应用数据。
一种可能的实现方式中,处理单元,用于确定第一标识和第二标识均存在时,删除应用在第三目录下的应用数据。其中,第一标识为终端设备确定开机时目标文件解析失败时标识的,第二标识为第一目录下的应用已安装,且第二目录下存在应用的应用标识时标识的。
一种可能的实现方式中,处理单元,用于确定开机时目标文件解析失败时,记录第一标识;具体还用于删除目标文件,重启终端设备,重新创建目标文件;还用于扫描第一目录,得到应用的应用标识;还用于确定重新创建后的目标文件中不包括应用的应用标识时,安装第一目录中第一版本的应用;还用于扫描第二目录,具体还用于在第二目录中得到应用的应用标识时,记录第二标识。
一种可能的实现方式中,处理单元,用于在目标文件中添加应用的安装信息;还用于在已安装列表中添加应用的应用标识。
一种可能的实现方式中,处理单元,用于在第二目录中得到应用的应用标识时,在已安装列表中查询应用的应用标识;还用于确定已安装列表中包含应用的应用标识,记录第二标识。
一种可能的实现方式中,显示单元,用于显示弹框,弹框可以包括提示信息和第一按钮,提示信息可以用于提示应用异常需要删除应用运行时生成的应用数据。
处理单元,用于接收到触发第一按钮的操作,具体还用于响应于该操作,删除应用在第三目录下的应用数据。
一种可能的实现方式中,应用运行异常可以包括下述的任一种或多种:应用闪退、异常弹框、停止运行或进程异常退出。
一种可能的实现方式中,应用的安装信息可以包括下述的任一种或多种:应用包名、安装文件路径、版本号、签名信息或权限信息。
一种可能的实现方式中,处理单元,用于删除第一标识和第二标识。
第三方面,本申请实施例提供一种终端设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的应用处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的应用处理方法。
第五方面,本申请实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的应用处理方法。
第六方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的应用处理方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种终端设备的结构示意图;
图2为本申请实施例提供的一种终端设备的软件结构示意图;
图3为本申请实施例提供的一种具体的应用处理方法的流程示意图;
图4为本申请实施例提供的一种应用处理方法的示意图;
图5为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语进行简单介绍:
1、术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
2、终端设备
本申请实施例的终端设备也可以为任意形式的电子设备,例如,电子设备可以包括手持式设备、车载设备等。例如,一些电子设备为:手机(mobile phone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiationprotocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。
作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即可以穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)系统中的终端设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
本申请实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
示例性的,图1示出了电子设备的结构示意图。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM卡接口,和/或USB接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。例如,可以执行本申请实施例的应用的处理方法。
图2是本申请实施例的终端设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括电话、音乐、日历、相机、游戏、备忘录、视频等应用。应用可以包括系统应用和三方应用。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如本申请实施例中,应用程序框架层中可以通过调用函数或接口实现读取或解析文件、创建或删除文件,以及安装应用等功能。
如图2所示,应用程序框架层可以包括窗口管理器、资源管理器、通知管理器、内容提供器和视图系统等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、触摸屏幕、拖拽屏幕、截取屏幕等。
资源管理器为应用程序提供各种资源,例如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、终端设备振动、指示灯闪烁等。
内容提供器用于在不同的应用程序之间实现数据共享的功能,允许一个程序访问另一个程序中的数据,同时还能保证被访问的数据的安全性。
视图系统可以负责应用程序的界面绘制和事件处理。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:媒体库(Media Libraries)、函数库(Function Libraries)、图形处理库(例如:OpenGL ES)等。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
函数库为开发者提供多种服务的API接口,方便开发者快速集成并实现各种功能。
图形处理库用于实现三维图形绘图、图像渲染、合成和图层处理等。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、电池驱动、蓝牙驱动、中央处理器驱动、USB驱动等。
终端设备中的应用可以包括系统应用和三方应用。各应用的APK和应用运行数据可以存放在终端设备不同的目录中。
例如,对于系统应用,在终端设备出厂时,终端设备中没有进行系统应用的安装,系统应用的Android应用程序包(android application package,APK)通常存放在终端设备的特定目录下。当终端设备首次开机时,终端设备在该特定目录下自动完成对该系统应用的安装,后续如果终端设备中升级该系统应用,升级后的系统应用的APK将存在不同于该特定目录的目录中,特定目录下的系统应用APK不会删除。
示例性的,终端设备出厂时的系统应用的APK可以存放在终端设备的system/目录、vendor/目录、或者product/目录等目录下。终端设备升级后的系统应用的APK可以存放在data/app/目录下。
对于三方应用,三方应用可以是终端设备首次开机之后,用户自行下载安装的应用,三方应用的APK可以存放在data/app/目录下。终端设备如果升级三方应用,升级后的三方应用的APK将替换掉原来低版本的三方应用的APK,且升级后的三方应用的APK依然存放在data/app/目录下。
系统应用的安装信息和三方应用的安装信息可以存放在终端设备的data/system/目录下的packages.xml文件中,其中,安装信息可以包括应用包名、安装文件路径、版本号、签名信息、权限信息等。
系统应用和三方应用各自在运行时所生成的应用数据均可以存放在终端设备的data/data/目录下,例如,应用数据可以是数据库相关的数据文件、缓存数据文件,以及日志信息文件等。
如表1所示,汇总示出了终端设备中上述目录以及存放文件的对应关系。
表1
目录 存放文件
system/ 终端设备出厂时自带的系统应用的APK
vendor/ 终端设备出厂时自带的系统应用的APK
product/ 终端设备出厂时自带的系统应用的APK
data/app/ 升级后的系统应用的APK、安装的三方应用的APK
data/data/ 应用运行时产生的应用数据
data/system/ packages.xml文件,存放应用的安装信息
结合上述终端设备的目录中存放的应用文件,终端设备可以进行应用的安装或处理。其中,终端设备可以通过应用市场安装或升级应用,终端设备也可以在开机时通过扫描目录中的APK进行应用的安装。
示例性的,当终端设备通过应用市场升级某一应用时,应用市场可以将该应用的安装文件下载到临时目录中,并升级该应用。在该应用升级成功后,终端设备可以将该应用的安装文件拷贝到data/app/目录下,并将packages.xml文件中该应用的安装信息更新为升级后应用的安装信息。例如,若应用在升级之前,packages.xml文件中该应用的安装路径为system/app/目录,在该应用升级后,packages.xml文件中该应用的安装路径可以更新为data/app/目录。后续在终端设备开机过程中,终端设备可以根据packages.xml文件中该应用的安装路径等信息判断该应用为升级后的应用。
当终端设备通过扫描目录中的APK进行应用的安装时,在开机过程中,终端设备可以读取并解析packages.xml文件,获取应用的安装信息。进一步,终端设备会进行system/目录、vendor/目录,以及product/目录等系统应用目录下系统应用的APK的扫描,终端设备可以根据APK解析得到系统应用的应用包名、版本号等应用信息。
在安装系统应用目录下的系统应用之前,终端设备可以将解析得到的该系统应用的应用信息与packages.xml文件中该系统应用的应用信息进行比较。
若packages.xml文件中没有该系统应用的安装信息,或者,终端设备解析得到的该系统应用的版本号高于packages.xml文件中该系统应用的版本号,则终端设备可以安装系统应用目录下的该系统应用。在该系统应用安装成功后,终端设备可以将该系统应用的安装信息添加到packages.xml文件中,以及将该系统应用的应用包名等信息添加到已安装列表中。
若packages.xml文件中该系统应用的版本号高于终端设备解析得到的该系统应用的版本号,说明packages.xml文件中有data/app/目录下的更高版本的系统应用,则终端设备可以将system/目录下的该系统应用的应用包名等信息添加到禁用列表中。同时,终端设备还可以将packages.xml文件中data/app/目录下的该系统应用的应用包名等信息添加到待安装列表中,用于等到扫描data/app/目录时,进行系统应用的安装。
例如,若终端设备为首次开机,packages.xml文件中没有应用的安装信息。终端设备可扫描system/目录下的系统应用,并解析得到该系统应用的应用包名。由于packages.xml文件中没有该系统应用的安装信息,终端设备可以执行安装该系统应用的流程,并将该系统应用的安装信息写入packages.xml文件中,以及将该系统应用的应用包名添加到已安装列表中。
在完成system/目录、vendor/目录,以及product/目录等目录下APK的扫描后,终端设备会再扫描data/app/目录下的应用的APK,同样,终端设备可以根据APK解析得到应用的应用包名等信息。进一步,终端设备可以判断已安装列表中是否包含该应用包名。若已安装列表中包含该应用包名,则说明该应用已安装,不会再次安装该应用。若已安装列表中不包含该应用包名,则说明该应用未安装,则安装该应用,并将该应用的安装信息添加到packages.xml文件中,以及将该应用包名添加到已安装列表中。
然而,首次开机后添加了应用的安装信息的packages.xml文件,后续在终端设备存在断电、重启等场景下可能会出现被损坏等情况,导致终端设备再次开机时出现开机异常。
例如,当packages.xml文件发生损坏时,packages.xml文件的读取可能发生逻辑错误,导致终端设备进入Recover页面,导致终端设备无法开机使用。其中,该Recover页面中可以显示重启系统、清空数据/设定工厂模式或备份数据等选项。
一种实现中,在终端设备无法开机使用时,终端设备可以把packages.xml文件删除,重新生成packages.xml文件,并重启终端设备,使终端设备可以正常开机。但是重新生成的packages.xml文件中没有了应用的安装信息,则终端设备会认为是首次开机的场景,将执行首次开机的流程,终端设备会先安装system/目录下的系统应用。若用户在重启之前已升级为高版本的系统应用,则会导致升级过的高版本系统应用回退到低版本的系统应用。
此外,由于在终端设备删除packages.xml文件并重启的过程中,终端设备不会删除应用在data/data/目录下所产生的应用数据。若用户在重启之前已升级为高版本的系统应用,则高版本的系统应用的应用数据仍然存在于data/data/目录中。这样,会使得低版本的系统应用在运行过程中使用高版本的系统应用的应用数据,从而可能会出现应用数据不匹配,导致系统应用出现闪退、无响应弹框等无法正常运行的问题。
有鉴于此,本申请实施例提供的一种应用的处理方法,若终端设备在开机启动时出现过异常,并安装了system/等系统应用目录下的低版本的系统应用,则当该系统应用在运行过程中出现异常时,终端设备可以删除该系统应用的应用数据,从而使该系统应用可以正常运行。
下面结合图3,示例性说明终端设备中packages.xml文件出现异常后,终端设备所执行的处理流程。
如图3所示,该应用的处理方法的具体实现过程可以分为五个阶段。第一阶段为开机时packages.xml文件的解析,第二阶段为扫描系统应用目录下的应用,第三阶段为扫描data/app目录下的应用,第四阶段为系统应用的安装,第五阶段为系统应用运行状态的检测。
第一阶段、开机时packages.xml文件的解析。
在终端设备开机的过程中,终端设备可以读取并解析packages.xml文件,获取应用的安装信息。
具体的,终端设备可以判断data/system/目录下是否存在packages.xml文件。若packages.xml文件不存在,终端设备可以在data/system/目录下创建packages.xml文件,其中,新创建的packages.xml文件中没有应用的安装记录以及更新信息。若packages.xml文件存在,终端设备可以进一步解析packages.xml文件中的信息。若packages.xml文件解析成功,则终端设备可以获取到应用的安装信息以及更新信息。若packages.xml文件解析失败,则终端设备会出现开机异常。
可以理解的是,在终端设备对packages.xml文件进行读写或其他操作时,可能会出现终端设备断电、重启等场景,使读写packages.xml文件等操作执行错误,从而可能导致packages.xml文件损坏等情况,使终端设备可能进入Recover页面,从而无法正常开机。
一种可能的实现中,终端设备可以在packages.xml文件损坏的情况下,触发防呆保护机制。也就是说,终端设备可以删除data/system/目录下的packages.xml文件,并重启终端设备。同时,终端设备可以记录开机异常的第一标识。其中,第一标识的数据类型可以为整型、布尔型、字符串或者其他的数据类型,本申请实施例不作限定。第一标识可以存放在集合或列表中,例如map集合,或者list列表等,本申请实施例对第一标识的存放方式不作限定。
在重启终端设备之后,终端设备可以再次读取data/system/目录下的packages.xml文件。由于packages.xml文件已被删除,data/system/目录下不存在packages.xml文件,终端设备则可以在data/system/目录下创建新的packages.xml文件。可以理解的是,新创建的packages.xml文件中没有了应用的安装信息。
第二阶段、扫描系统应用目录下的应用。
当终端设备开机时,终端设备可以自动扫描应用文件的存放目录。在扫描过程中,终端设备会先进行system/目录、vendor/目录,以及product/目录等目录下系统应用的APK的扫描。终端设备可以根据扫描到的APK解析得到系统应用的相关信息,其中,相关信息可以包括应用包名、文件路径、版本号等信息。进一步,终端设备可以通过将解析得到的该系统应用的相关信息与packages.xml文件中的该系统应用的安装信息进行比较,来判断是否需要安装该系统应用。
示例性的,当终端设备扫描到system/目录下的某一系统应用的APK时,终端设备可以解析该系统应用的APK,并将解析得到的该系统应用的版本号与packages.xml文件中该系统应用的版本号进行比较。
若packages.xml文件中没有该系统应用的安装信息,或者,终端设备解析得到的该系统应用的版本号较高,则终端设备将安装system/目录下的该系统应用,并将该系统应用的安装信息添加到packages.xml文件中,以及将该系统应用的应用包名等信息添加到已安装列表中。
若packages.xml文件中该系统应用的版本号较高,说明packages.xml文件中有data/app/目录下的更高版本的系统应用,则终端设备可以将system/目录下的该系统应用的应用包名等信息添加到禁用列表中。同时,终端设备还可以将packages.xml文件中data/app/目录下的该系统应用的应用包名等信息添加到待安装列表中,用于等到扫描data/app/目录时,进行系统应用的安装。
在终端设备异常开机的场景下,由于packages.xml文件被删除,导致packages.xml文件中系统应用升级后的应用信息丢失,从而使该系统应用与升级后高版本的该系统应用的绑定关系丢失。因此在终端设备开机扫描安装系统应用的过程中,由于新创建的packages.xml文件中没有了应用的安装信息,终端设备无法在packages.xml文件中找到该系统应用的升级版本。
对于新创建的packages.xml文件,终端设备会认为是首次开机的场景,将执行首次开机的流程。此时终端设备会先安装system/目录下的系统应用,并将系统应用的安装信息添加到packages.xml文件中,以及将该系统应用的应用包名等信息添加到已安装列表中。由于终端设备中不允许出现应用包名相同的应用安装在不同目录下,导致终端设备安装了system/目录下的系统应用,无法再安装data/app/目录下已升级过的高版本的该系统应用。
可以理解的是,若用户在终端设备异常开机之前已将该系统应用升级为更高版本,则会在异常开机之后导致升级后的高版本的系统应用回退到system/目录下低版本的系统应用。
第三阶段、扫描data/app目录下的应用。
在完成system/目录、vendor/目录,以及product/目录等目录下APK的扫描后,终端设备会再扫描data/app/目录下的应用的APK。同样,终端设备可以根据扫描到的APK解析得到应用的相关信息。
进一步,终端设备可以根据已安装列表或者禁用列表判断某一系统应用是否已安装。示例性的,若已安装列表中不包含该系统应用的应用包名或者禁用列表中包含该系统应用的应用包名,则说明该系统应用未安装,则终端设备可以安装data/app/目录下的该系统应用,并将该系统应用的安装信息添加到packages.xml文件中,以及将该系统应用的应用包名等信息添加到已安装列表中。
若已安装列表中包含该系统应用的应用包名,说明该系统应用已安装。由于终端设备中不允许出现应用包名相同的应用安装在不同目录下,因此,终端设备会认为在data/app/目录下的该系统应用为非法应用,不会继续安装data/app/目录下的该系统应用。这样,终端设备可以认为data/app/目录下的该系统应用安装失败,并可以记录该系统应用安装失败的第二标识。其中,第二标识的数据类型可以为整型、布尔型、字符串或者其他的数据类型,本申请实施例不作限定。第二标识可以存放在集合或列表中,例如map集合,或者list列表等,本申请实施例对第二标识的存放方式不作限定。
可以理解的是,第二标识也可以依赖于第一标识存在时进行记录,也就是说,在表示终端设备开机异常的第一标识成立的前提下,若data/app/目录下的应用安装失败,才记录该系统应用安装失败的第二标识。由于应用安装失败的原因有多种,本申请实施例在满足第一标识的条件下才记录第二标识,这样,终端设备可以减少记录应用安装失败的次数,从而不会执行不必要的操作流程,提高终端设备的运行效率。
第四阶段、系统应用的安装。
当终端设备扫描到data/app/目录时,终端设备可以根据第二阶段中终端设备添加到待安装列表中的系统应用信息安装data/app/目录下的该系统应用。具体安装应用的流程可以包括:终端设备可以获取系统应用的待安装列表、扫描并获得该待安装列表中的系统应用的信息,根据该应用信息以及data/app/目录下的该系统应用的APK完成该系统应用的安装等。对于具体的安装应用的流程,本申请实施例不作限定。
第五阶段、系统应用运行状态的检测。
当终端设备完成应用文件的存放目录的扫描以及完成应用的安装,并进入终端设备的主界面后,终端设备可以检测系统应用的运行状态。示例性的,当某一系统应用在运行过程中出现异常时,终端设备可以判断终端设备启动异常的第一标识以及data/app/目录下的该系统应用安装失败的第二标识是否均存在。其中,应用运行异常可以包括:应用异常闪退、出现异常弹框、应用停止运行,或者应用进程异常退出等,具体的应用运行异常类型,本申请实施例不作限定。
当第一标识和第二标识均存在时,说明该系统应用的运行异常是由于packages.xml文件损坏导致终端设备启动异常,且终端设备安装了system/目录下的低版本的系统应用,未安装data/app/目录下高版本的系统应用所引起的,也就是说,该系统应用属于异常降级的系统应用。
由于data/data/目录下该系统应用的应用数据仍是高版本系统应用的应用数据,这样,使得低版本的系统应用在运行过程中使用了高版本的系统应用的应用数据,出现了应用数据不匹配,从而导致了系统应用的运行异常。示例性的,应用数据的不匹配可以包括低版本的应用数据与高版本的应用数据存在数据库结构的变更,或者应用运行时部分资源依赖于高版本的该系统应用等。
当该异常降级的系统应用出现运行异常时,终端设备可以以通知、弹框等形式提示用户删除应用数据。具体的终端设备提示用户的类型,本申请实施例不作限定。示例性的,终端设备可以显示弹框进行提示,该弹框可以包括提示信息、同意按钮,以及取消按钮。该提示信息可以包括:“检测到XX应用出现运行异常,建议您进行应用修复以解决该应用无法运行的问题,此操作会删除该应用的应用数据”。
当用户触发同意按钮时,说明用户同意删除该系统应用的应用数据,则终端设备可以执行删除该应用数据的操作。可以理解的是,系统应用的应用数据可以存在于终端设备的多个目录中,终端设备可以通过相关应用接口获取该应用数据的存放目录,也可以通过扫描相关应用文件的目录判断是否存在该系统应用的应用数据。具体终端设备获取该应用数据的存放目录的方法,本申请实施例不作限定。
示例性的,应用数据的存放目录可以包括下述表2中示出的存放目录。
表2
应用数据的存放目录
data/app/应用包名/
data/data/应用包名/(同data/user_ce/用户ID/应用包名)
data/misc/profiles/应用包名/
data/user/用户ID/应用包名
data/user_de/用户ID/应用包名
/storage/emulated/用户ID/Android/data/应用包名
/storage/emulated/用户ID/Android/media/应用包名
/storage/emulated/用户ID/Android/obb/应用包名
在终端设备完成应用数据的删除操作后,终端设备可以修改或删除第一标识,和/或,第二标识。
对于第二标识,终端设备可以在删除完系统应用的应用数据后,修改或删除该系统应用所对应的第二标识。示例性的,若某一异常降级应用的第二标识存放在map集合中,终端设备可以删除该map集合中该应用所对应的标识信息,也可以修改第二标识的值,例如,终端设备可以将该应用所对应的第二标识的值从1修改为0,也可以将该应用所对应的第二标识的值从true修改为false。本申请实施例对修改第二标识值的方式不作限定。
若某一异常降级应用的第二标识存放在list列表中,终端设备可以删除该list列表中该应用所对应的标识信息。具体修改或删除第二标识的实现,本申请实施例不作限定。
对于第一标识,终端设备可以在根据上述存放第二标识的map集合或list列表判断是否修改或删除第一标识。示例性的,若终端设备判断map集合或list列表中不存在异常降级应用的标识时,终端设备可以修改或删除第一标识。例如,终端设备可以将第一标识的值从1修改为0,也可以将第一标识的值从true修改为false,本申请实施例对修改第一标识值的方式不作限定。
终端设备也可以在异常降级应用通过空间下载技术(over the air technology,OTA)升级为最新版本的系统应用后,修改或删除第一标识。终端设备还可以在该终端设备的系统完成OTA升级后,修改或删除第一标识。具体修改或删除第一标识的实现,本申请实施例不作限定。
可以理解的是,在弹框中用户也可能触发取消按钮,当用户触发取消按钮时,说明用户不同意删除该系统应用的应用数据,则终端设备可以不执行删除该应用数据的操作。一种可能的实现中,终端设备可以将该应用数据备份到其他目录后,再执行删除该应用数据的操作,从而使该系统应用正常运行。其中,备份的目录可以是终端设备预置的目录,也可以是用户指定的目录,具体的备份应用数据的目录,本申请实施例不作限定。
可以理解的是,当第一标识和第二标识没有同时存在时,说明该系统应用的运行异常不是由于packages.xml文件损坏时安装了低版本的系统应用导致的,也就是说,该系统应用不属于异常降级的系统应用,则终端设备不进行上述的异常处理流程。
下面通过具体的实施例对本申请实施例的应用的处理方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图4示出了本申请实施例的一种应用的处理方法。方法包括:
S401、终端设备确定应用运行异常。
本申请实施例中,应用的运行异常类型可以参考上述图3所对应的的实施例中第五阶段的应用运行异常的相关描述,不再赘述。
S402、当确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起时,终端设备删除应用在第三目录下的应用数据。
其中,目标文件为用于存储应用的安装信息的文件,第一目录用于存放第一版本的应用,第二目录用于存放第二版本的应用,第一版本低于第二版本,第三目录用于存放应用运行时生成的应用数据。
本申请实施例中,目标文件可以用于存储应用的安装信息,该文件可以为终端设备开机时必要的文件,若该文件损坏,终端设备将无法正常开机。示例性的,目标文件可以为终端设备data/system/目录下的packages.xml文件。目标文件中的安装信息可以参考上述实施例中安装信息的相关描述,不再赘述。
第一目录可以为存放系统应用的APK的目录,示例性的,第一目录可以为上述实施例中终端设备的system/目录、vendor/目录、或者product/目录等,本申请实施例对具体的第一目录的路径不作限定。其中,第一版本可以为第一目录中系统应用的版本。
第二目录可以为存放三方应用的APK或者升级后的系统应用的APK的目录,示例性的,第二目录可以为上述实施例中终端设备的data/app/目录等,本申请实施例对具体的第二目录的路径不作限定。其中,第二版本可以为第二目录中系统应用的版本。
应用标识可以为识别应用的唯一标识,例如,应用标识可以为应用包名或应用ID(application identity)等信息,对于识别应用的标识,本申请实施例不作限定。
第三目录可以为存放应用数据的目录,所存放的应用数据可以包括三方应用运行时生成的应用数据,也可以包括系统应用运行时生成的应用数据。示例性的,第三目录可以为上述实施例中终端设备的data/data/目录等,本申请实施例对具体的第三目录的路径不作限定。
本申请实施例中,终端设备通过判断系统应用运行异常的原因,针对目标文件损坏的异常场景进行系统应用的应用数据的删除,从而使系统应用可以正常运行。
可选的,在图4对应的实施例的基础上,S402中的当确定异常为目标文件在终端设备开机时解析失败,第一目录下的应用已安装,且第二目录下存在应用的应用标识所引起时,终端设备删除应用在第三目录下的应用数据,可以包括:当确定第一标识和第二标识均存在时,终端设备删除应用在第三目录下的应用数据;其中,第一标识为终端设备确定开机时目标文件解析失败时标识的,第二标识为第一目录下的应用已安装,且第二目录下存在应用的应用标识时标识的。
本申请实施例中,记录第一标识可以参照上述图3所对应的实施例中第一阶段的开机时packages.xml文件的解析中的相关描述,记录第二标识可以参照上述图3所对应的实施例中第三阶段的扫描data/app目录下的应用中的相关描述,不再赘述。
可以理解的是,应用运行异常可以有多种原因,在终端设备开机异常,且第一目录下的应用已安装,第二目录下存在该应用的应用标识所引起的应用运行异常,终端设备可以删除该应用在第三目录下的的应用数据。这样,终端设备可以更为准确的确定本申请实施例中的异常场景,并针对该异常场景进行相应的处理。
可选的,在图4对应的实施例的基础上,S401中的终端设备确定应用运行异常之前,可以包括:当终端设备确定开机时目标文件解析失败时,终端设备记录第一标识,以及终端设备删除目标文件,重启终端设备,重新创建目标文件,其中,重新创建后的目标文件中不包括应用的安装信息;终端设备扫描第一目录,得到应用的应用标识;当终端设备确定重新创建后的目标文件中不包括应用的应用标识时,终端设备安装第一目录中第一版本的应用;终端设备扫描第二目录;当终端设备在第二目录中得到应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识。
本申请实施例中,第二标识的记录可以不依赖于第一标识,也就是说,在记录第二标识时,不需要判断第一标识是否存在。当终端设备判断data/app/目录下的应用安装失败时,终端设备可以记录第二标识。这样,终端设备在记录第二标识时,可以不需要执行判断第一标识是否存在的流程,简化了记录第二标识的流程。
可以理解的是,第二标识也可以依赖于第一标识存在时进行记录,也就是说,在表示终端设备开机异常的第一标识成立的前提下,若data/app/目录下的应用安装失败,才记录该系统应用安装失败的第二标识。由于应用安装失败的原因有多种,本申请实施例在满足第一标识的条件下才记录第二标识,这样,终端设备可以减少记录应用安装失败的次数,从而不会执行不必要的操作流程,提高终端设备的运行效率。
可选的,在图4对应的实施例的基础上,终端设备安装第一目录中第一版本的应用之后,可以包括:在目标文件中添加应用的安装信息;在已安装列表中添加应用的应用标识。
本申请实施例中,在目标文件中添加应用的安装信息,以及在已安装列表中添加应用的应用标识可以参照上述图3所对应的实施例中第二阶段的扫描系统应用目录下的应用中的相关描述,不再赘述。终端设备将安装成功的应用的信息添加目标文件中以及已安装列表中,可以使终端设备在扫描第二目录时,可以判断出该应用是否已安装,从而根据应用的安装结果执行相应的流程。
可选的,在图4对应的实施例的基础上,当终端设备在第二目录中得到应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识,可以包括:当终端设备在第二目录中得到应用的应用标识时,终端设备在已安装列表中查询应用的应用标识,当终端设备确定已安装列表中包含应用的应用标识时,终端设备不安装第二目录下的应用,以及记录第二标识。
本申请实施例中,终端设备记录第二标识的流程可以参照上述图3所对应的实施例中第三阶段的扫描data/app目录下的应用中的相关描述,不再赘述。当终端设备确定已安装列表中包含应用的应用标识时,终端设备不安装第二目录下的应用,这样,可以保证终端设备中应用包名相同的应用不会安装在不同目录下,从而使终端设备的应用安装流程正常执行。
可选的,在图4对应的实施例的基础上,终端设备删除应用在第三目录下的应用数据之前,可以包括:终端设备显示弹框,弹框可以包括提示信息和第一按钮,提示信息可以用于提示应用异常需要删除应用运行时生成的应用数据;终端设备接收到触发同意按钮的操作;终端设备删除应用在第三目录下的应用数据,可以包括:响应于操作,终端设备删除应用在第三目录下的应用数据。
本申请实施例中,终端设备显示弹框以及终端设备删除应用在第三目录下的应用数据可以参照上述图3所对应的实施例中第五阶段的系统应用运行状态的检测中的相关描述,不再赘述。终端设备通过向用户弹框提示可以使用户及时了解应用运行的解决方法,保证应用的正常运行,提升用户体验。
终端设备删除应用在第三目录下的应用数据,可以使得低版本的系统应用在运行过程中不会再使用高版本的系统应用的应用数据,不会出现应用数据不匹配的情况,从而使应用可以正常运行。
可选的,在图4对应的实施例的基础上,应用运行异常,可以包括下述的一种或多种:应用闪退、异常弹框、停止运行或进程异常退出。
本申请实施例中,应用运行异常的原因可以有多种,终端设备通过检测应用运行的状态可以及时对应用运行异常的情况作出相应的处理,提升用户体验。
可选的,在图4对应的实施例的基础上,应用的安装信息,可以包括下述的一种或多种:应用包名、安装文件路径、版本号、签名信息或权限信息。
本申请实施例中,终端设备在目标文件中记录应用的安装信息,可以使终端设备获取当前终端设备上已安装的应用的相关信息。终端设备可以通过目标文件获取应用与升级版本以及安装路径等信息的对应关系。
可选的,在图4对应的实施例的基础上,S402中的终端设备删除应用在第三目录下的应用数据之后,可以包括:终端设备删除第一标识和第二标识。
本申请实施例中,终端设备删除第一标识和第二标识的方式可以参照上述图3所对应的实施例中第五阶段的系统应用运行状态的检测中的相关描述,不再赘述。当终端设备删除第三目录下的应用数据后,删除第一标识和第二标识,可以使终端设备正确记录第一标识和第二标识的状态,准确识别本申请实施例中的问题场景,并针对该问题场景做出相应的处理。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对实现应用的处理方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图5示为本申请实施例提供的一种芯片的结构示意图。芯片500包括一个或两个以上(包括两个)处理器501、通信线路502、通信接口503和存储器504。
在一些实施方式中,存储器504存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
上述本申请实施例描述的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器501可以实现或者执行本申请实施例中的公开的各处理相关的方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electrically erasableprogrammable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器504,处理器501读取存储器504中的信息,结合其硬件完成上述方法的步骤。
处理器501、存储器504以及通信接口503之间可以通过通信线路502进行通信。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

Claims (12)

1.一种应用的处理方法,其特征在于,所述方法包括:
终端设备确定应用运行异常;
当确定所述异常为目标文件在终端设备开机时解析失败,第一目录下的所述应用已安装,且第二目录下存在所述应用的应用标识所引起时,所述终端设备删除所述应用在第三目录下的应用数据;
其中,所述目标文件为用于存储应用的安装信息的文件,所述第一目录用于存放第一版本的所述应用,所述第二目录用于存放第二版本的所述应用,所述第一版本低于所述第二版本,所述第三目录用于存放所述应用运行时生成的应用数据。
2.根据权利要求1所述的方法,其特征在于,所述当确定所述异常为目标文件在终端设备开机时解析失败,第一目录下的所述应用已安装,且第二目录下存在所述应用的应用标识所引起时,所述终端设备删除所述应用在第三目录下的应用数据,包括:
当确定第一标识和第二标识均存在时,所述终端设备删除所述应用在所述第三目录下的所述应用数据;其中,所述第一标识为所述终端设备确定开机时所述目标文件解析失败时标识的,所述第二标识为所述第一目录下的所述应用已安装,且所述第二目录下存在所述应用的应用标识时标识的。
3.根据权利要求2所述的方法,其特征在于,所述终端设备确定应用运行异常之前,包括:
当所述终端设备确定开机时所述目标文件解析失败时,所述终端设备记录所述第一标识,以及所述终端设备删除所述目标文件,重启所述终端设备,重新创建目标文件,其中,重新创建后的所述目标文件中不包括所述应用的安装信息;
所述终端设备扫描所述第一目录,得到所述应用的应用标识;
当所述终端设备确定重新创建后的所述目标文件中不包括所述应用的应用标识时,所述终端设备安装所述第一目录中所述第一版本的所述应用;
所述终端设备扫描所述第二目录;
当所述终端设备在所述第二目录中得到所述应用的应用标识时,所述终端设备不安装所述第二目录下的所述应用,以及记录所述第二标识。
4.根据权利要求3所述的方法,其特征在于,所述终端设备安装所述第一目录中所述第一版本的所述应用之后,包括:
在所述目标文件中添加所述应用的安装信息;
在已安装列表中添加所述应用的应用标识。
5.根据权利要求4所述的方法,其特征在于,当所述终端设备在所述第二目录中得到所述应用的应用标识时,所述终端设备不安装所述第二目录下的所述应用,以及记录所述第二标识,包括:
当所述终端设备在所述第二目录中得到所述应用的应用标识时,所述终端设备在所述已安装列表中查询所述应用的应用标识,当所述终端设备确定所述已安装列表中包含所述应用的应用标识,所述终端设备不安装所述第二目录下的所述应用,以及记录所述第二标识。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述终端设备删除所述应用在第三目录下的应用数据之前,包括:
所述终端设备显示弹框,所述弹框包括提示信息和第一按钮,所述提示信息用于提示所述应用异常需要删除所述应用运行时生成的应用数据;
所述终端设备接收到触发所述第一按钮的操作;
所述终端设备删除所述应用在第三目录下的应用数据,包括:响应于所述操作,所述终端设备删除所述应用在所述第三目录下的所述应用数据。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述应用运行异常,包括下述的一种或多种:应用闪退、异常弹框、停止运行或进程异常退出。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述应用的安装信息,包括下述的一种或多种:应用包名、安装文件路径、版本号、签名信息或权限信息。
9.根据权利要求2-5任一项所述的方法,其特征在于,所述终端设备删除所述应用在第三目录下的应用数据之后,包括:
所述终端设备删除所述第一标识和所述第二标识。
10.一种终端设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以执行如权利要求1-9任一项所述的应用的处理方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-9任一项所述的应用的处理方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得电子设备执行如权利要求1-9任一项所述的应用的处理方法。
CN202211286005.6A 2022-10-20 2022-10-20 一种应用的处理方法及相关装置 Active CN116700768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211286005.6A CN116700768B (zh) 2022-10-20 2022-10-20 一种应用的处理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211286005.6A CN116700768B (zh) 2022-10-20 2022-10-20 一种应用的处理方法及相关装置

Publications (2)

Publication Number Publication Date
CN116700768A CN116700768A (zh) 2023-09-05
CN116700768B true CN116700768B (zh) 2024-04-02

Family

ID=87834536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211286005.6A Active CN116700768B (zh) 2022-10-20 2022-10-20 一种应用的处理方法及相关装置

Country Status (1)

Country Link
CN (1) CN116700768B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251842B (zh) * 2023-11-15 2024-04-19 荣耀终端有限公司 电子设备的启动方法、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775870A (zh) * 2016-12-16 2017-05-31 Tcl集团股份有限公司 一种应用程序的启动方法及系统
CN108509291A (zh) * 2018-02-27 2018-09-07 广东欧珀移动通信有限公司 应用程序运行异常修复方法及系统,以及移动终端
CN111367698A (zh) * 2018-12-26 2020-07-03 北京微播视界科技有限公司 应用程序闪退的检测及处理方法、装置及电子设备
CN113885870A (zh) * 2021-08-27 2022-01-04 荣耀终端有限公司 应用程序更新方法、电子设备、终端设备及系统
CN114791961A (zh) * 2021-01-25 2022-07-26 华为技术有限公司 媒体数据处理方法、装置及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5575071B2 (ja) * 2011-08-26 2014-08-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775870A (zh) * 2016-12-16 2017-05-31 Tcl集团股份有限公司 一种应用程序的启动方法及系统
CN108509291A (zh) * 2018-02-27 2018-09-07 广东欧珀移动通信有限公司 应用程序运行异常修复方法及系统,以及移动终端
CN111367698A (zh) * 2018-12-26 2020-07-03 北京微播视界科技有限公司 应用程序闪退的检测及处理方法、装置及电子设备
CN114791961A (zh) * 2021-01-25 2022-07-26 华为技术有限公司 媒体数据处理方法、装置及终端设备
CN113885870A (zh) * 2021-08-27 2022-01-04 荣耀终端有限公司 应用程序更新方法、电子设备、终端设备及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hey, You, Get Off of My Image: Detecting Data Residue in Android Images;Xiao Zhang 等;《Computer Security – ESORICS 2016》;第401–421页 *
基于Android平台的智能手机多包连续升级技术改进与实现;张宇杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-1765 *

Also Published As

Publication number Publication date
CN116700768A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US8694981B2 (en) Shared resource dependencies
US11222118B2 (en) Method for updating selinux security policy and terminal
CN109726067B (zh) 一种进程监控方法以及客户端设备
CN115328563B (zh) 系统启动方法及电子设备
CN116700768B (zh) 一种应用的处理方法及相关装置
CN110515671B (zh) 初始化方法、初始化装置、终端设备及可读存储介质
US11379458B2 (en) Electronic device and data management method thereof
CN114282212A (zh) 流氓软件识别方法、装置、电子设备及存储介质
US11604656B2 (en) Method and apparatus for managing application
CN116400938B (zh) 操作系统的升级方法、设备及存储介质
CN116719670B (zh) 数据处理的方法、电子设备及可读存储介质
CN111158987A (zh) 微服务架构的健康检查方法及装置
CN112181467B (zh) 终端的存储器固件升级方法、装置、终端和存储介质
CN115185745A (zh) 数据处理方法、系统、电子设备及计算机可读存储介质
CN116701299B (zh) 一种目录管理方法及相关装置
CN117176850B (zh) 界面显示方法及相关装置
CN114706633B (zh) 预加载方法、电子设备及存储介质
CN116643778B (zh) 一种应用程序优化方法及电子设备
CN116701318B (zh) 系统升级信息获取方法、电子设备及存储介质
CN116088888B (zh) 应用程序更新方法及相关装置
CN116088747A (zh) 信息处理方法、装置、设备及存储介质
CN116089135A (zh) 功能控制方法、装置、设备及存储介质
CN116737258A (zh) 卸载应用的方法及相关装置
CN116700740A (zh) 软件修复方法和相关装置
CN108170437B (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