卸载应用的方法及相关装置与流程

未命名 09-16 阅读:75 评论:0


1.本技术涉及终端技术领域,尤其涉及卸载应用的方法及相关装置。


背景技术:

2.随着终端技术的发展,终端设备中可以安装各种类型的应用程序,例如,系统应用程序、三方应用程序等,用户可以管理终端设备中的这些应用程序。
3.然而,当用户清理终端设备的内存,或者管理终端设备的桌面,而想要卸载一些不经常使用的系统应用程序时,可能出现其他业务闪退的场景,给用户带来不好的使用体验。


技术实现要素:

4.本技术实施例提供卸载应用的方法及相关装置,终端设备在卸载sim卡应用时,终端设备可以先停止因在phone进程中运行而无法被删除的sim卡应用的部分组件的运行,或者去注册因在phone进程中注册而无法被删除的sim卡应用的部分组件或回调等,然后再执行卸载流程。从而可以在sim卡应用被卸载时,不影响与sim卡应用共进程的phone进程中其他业务的运行,提升用户体验。
5.或者,终端设备在卸载sim卡应用时,终端设备在执行sim卡应用卸载流程后,可以重启phone进程。因为在phone进程重启时,sim卡应用已完成卸载,sim卡应用不会在phone进程中运行,因此在phone进程中不会运行sim卡应用的组件或不会注册sim卡应用的组件或回调等,使得sim卡应用不会对phone进程造成影响。从而可以在sim卡应用被卸载时,不影响与sim卡应用共进程的phone进程中其他业务的运行,提升用户体验。
6.第一方面,本技术实施例提供一种卸载应用的方法,方法包括:
7.终端设备接收到卸载sim卡应用的操作;在第一时刻,终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或已注册的回调,目标进程为sim卡应用与其他应用共进程的进程;在第二时刻,终端设备卸载sim卡应用,第二时刻晚于第一时刻。这样,可以在sim卡应用被卸载时,不影响与sim卡应用共进程的进程中其他业务的运行,提升用户体验。
8.一种可能的实现方式中,sim卡应用在目标进程中运行的组件可以包括服务service组件;sim卡应用在目标进程中已注册的组件可以包括接收receiver组件;sim卡应用在目标进程中已注册的回调可以包括定时服务回调alarmmanger.onalarmlistener,和/或,回调callback。这样,终端设备在卸载sim卡应用时无法删除sim卡应用在目标进程中运行的组件,或注册的组件或回调,因此需要对这些组件或者回调单独处理,这样可以确保目标进程的正常运行。
9.一种可能的实现方式中,终端设备停止sim卡应用在目标进程中运行的组件,可以包括:终端设备调用关闭服务service组件的函数。这样,终端设备在卸载sim卡应用前,通过关闭正在运行的服务service组件,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
10.一种可能的实现方式中,终端设备去注册sim卡应用在目标进程中已注册的组件,可以包括:终端设备调用去注册广播接收器receiver组件的函数。这样,终端设备在卸载sim卡应用前,通过去注册广播接收器receiver组件,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
11.一种可能的实现方式中,终端设备去注册sim卡应用在目标进程中已注册的回调,可以包括:终端设备调用去注册定时任务回调alarmmanger.onalarmlistener的函数;和/或,终端设备调用注册回调callback的函数。这样,终端设备在卸载sim卡应用前,通过去注册定时任务回调alarmmanger.onalarmlistener或者去注册回调callback,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
12.一种可能的实现方式中,终端设备接收到卸载sim卡应用的操作之前,还可以包括:终端设备为sim卡应用注册卸载广播。
13.根据终端设备接收的卸载sim卡应用的操作,第一时刻,终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或回调,可以包括:根据该操作,终端设备发送卸载广播,卸载广播可以包括sim卡应用的标识;当终端设备通过sim卡应用确定卸载广播包括sim卡应用的标识时,在第一时刻,终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或回调。
14.这样,在用户触发卸载应用的操作时,终端设备发送卸载广播可以使注册了卸载广播的应用或者模块接收到该卸载广播,从而使相关的应用或者模块可以在接收到卸载广播后,执行卸载应用的操作。
15.一种可能的实现方式中,终端设备为sim卡应用注册卸载广播,可以包括:终端设备向意图过滤器intentfilter添加卸载广播所对应的字段intent.action_package_removed,以及添加sim卡应用的标识。这样,终端设备通过为sim卡应用注册卸载广播,可以方便接收卸载sim卡应用的卸载广播,并进一步执行相关的卸载流程。
16.一种可能的实现方式中,目标进程可以包括phone进程。这样,sim卡应用与phone进程共进程,可以使sim相关的业务正常运行,可以很好的为用户提供sim相关服务。
17.第二方面,本技术实施例提供另一种卸载应用的方法,方法包括:
18.终端设备接收到卸载sim卡应用的操作;在第三时刻,终端设备卸载sim卡应用;在第四时刻,终端设备重启目标进程,目标进程为sim卡应用与其他应用共进程的进程,第四时刻晚于第三时刻。这样,可以在sim卡应用被卸载时,不影响与sim卡应用共进程的phone进程中其他业务的运行,提升用户体验。
19.一种可能的实现方式中,终端设备卸载sim卡应用之前,还可以包括:终端设备显示弹窗,弹窗中包括确定按钮、取消按钮以及用于提示卸载sim卡应用存在的风险的提示信息。
20.终端设备卸载sim卡应用可以包括:响应于对确定按钮的操作,终端设备卸载sim卡应用。这样,在卸载过程中,终端设备通过给用户弹窗提示卸载sim卡应用存在的风险,可以让用户及时了解未知的风险,提升用户体验。
21.一种可能的实现方式中,终端设备显示弹窗之前,还可以包括:终端设备通过sim卡应用的配置文件判断sim卡应用为共进程应用。这样,终端设备在确定卸载应用所对应的进程与其他进程共进程时,可以通过重启进程使该进程中不再加载卸载应用的相关数据,
从而使该进程中的其他业务可以正常运行。
22.一种可能的实现方式中,目标进程包括phone进程。这样,sim卡应用与phone进程共进程,可以使sim相关的业务正常运行,可以很好的为用户提供sim相关服务。
23.第三方面,本技术实施例提供一种卸载应用的装置,该卸载应用的装置可以是终端设备,也可以是终端设备内的芯片或者芯片系统。该卸载应用的装置可以包括显示单元、处理单元。显示单元用于实现第一方面或第一方面的任意一种可能的实现方式中,或者第二方面或第二方面的任意一种可能的实现方式中,终端设备执行的与显示相关的任意方法。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式中,或者第二方面或第二方面的任意一种可能的实现方式中,终端设备执行的与处理相关的任意方法。当该卸载应用的装置是终端设备时,该处理单元可以是处理器。该卸载应用的装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中,或者第二方面或第二方面的任意一种可能的实现方式中描述的一种方法。当该卸载应用的装置是终端设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中,或者第二方面或第二方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
24.示例性的,在实现第一方面或第一方面的任意一种可能的实现方式中,处理单元,用于接收到卸载sim卡应用的操作;还用于停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或已注册的回调;还用于卸载sim卡应用。
25.一种可能的实现方式中,sim卡应用在目标进程中运行的组件包括服务service组件;sim卡应用在目标进程中已注册的组件包括接收receiver组件;sim卡应用在目标进程中已注册的回调包括定时服务回调alarmmanger.onalarmlistener,和/或,回调callback。
26.一种可能的实现方式中,处理单元,用于调用关闭服务service组件的函数。
27.一种可能的实现方式中,处理单元,用于调用去注册广播接收器receiver组件的函数。
28.一种可能的实现方式中,处理单元,用于调用去注册定时任务回调alarmmanger.onalarmlistener的函数;和/或,调用去注册回调callback的函数。
29.一种可能的实现方式中,处理单元,用于为sim卡应用注册卸载广播;还用于发送卸载广播,卸载广播包括sim卡应用的标识;具体还用于通过sim卡应用确定卸载广播包括sim卡应用的标识时,在第一时刻,停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或回调。
30.一种可能的实现方式中,处理单元,用于向意图过滤器intentfilter添加卸载广播所对应的字段intent.action_package_removed,以及添加sim卡应用的标识。
31.一种可能的实现方式中,目标进程包括phone进程。
32.示例性的,在实现第二方面或第二方面的任意一种可能的实现方式中,处理单元,用于接收到卸载sim卡应用的操作;还用于卸载sim卡应用;还用于重启目标进程。
33.一种可能的实现方式中,显示单元,用于显示弹窗,弹窗中包括确定按钮、取消按
钮以及用于提示卸载sim卡应用存在的风险的提示信息。
34.处理单元,用于响应于对确定按钮的操作,终端设备卸载sim卡应用。
35.一种可能的实现方式中,处理单元,用于通过sim卡应用的配置文件判断sim卡应用为共进程应用。
36.一种可能的实现方式中,目标进程包括phone进程。
37.第四方面,本技术实施例提供一种电子设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的卸载应用方法,或者以执行第二方面或第二方面的任意一种可能的实现方式中描述的卸载应用方法。
38.第五方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的卸载应用方法,或者执行第二方面或第二方面的任意一种可能的实现方式中描述的卸载应用方法。
39.第六方面,本技术实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的卸载应用方法,或者执行第二方面或第二方面的任意一种可能的实现方式中描述的卸载应用方法。
40.第七方面,本技术提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的卸载应用方法,或者执行第二方面或第二方面的任意一种可能的实现方式中描述的卸载应用方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
41.在一种可能的实现中,本技术中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
42.应当理解的是,本技术的第三方面至第七方面与本技术的第一方面或者第二方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
43.图1为本技术实施例提供的一种终端设备的结构示意图;
44.图2为本技术实施例提供的一种终端设备的软件结构示意图;
45.图3为本技术实施例提供的一种清理应用的方法示意图;
46.图4为本技术实施例提供的一种终端设备卸载应用时的弹窗提示的示意图;
47.图5为本技术实施例提供的一种卸载应用方法的流程示意图;
48.图6为本技术实施例提供的一种卸载应用方法的示意图;
49.图7为本技术实施例提供的另一种卸载应用方法的示意图;
50.图8为本技术实施例提供的一种芯片的结构示意图。
具体实施方式
51.为了便于清楚描述本技术实施例的技术方案,以下,对本技术实施例中所涉及的部分术语和技术进行简单介绍:
52.1、3gpp协议:是第三代合作伙伴计划(3rd generation partnership project,3gpp)为第三代移动系统制定的全球适用技术规范和技术报告,实现由2g网络到3g网络的平滑过渡,保证未来技术的后向兼容性。
53.2、ril:无线接口适配层(radio interface layer,ril)可以负责终端设备与移动网络间的数据通信,数据通信例如包括数据的传输、命令的发送以及响应消息的解析等。ril还可以为应用程序层中的应用程序提供通用的应用编程接口(application programming interface,api),示例性的,ril可以提供电话、短信、网络状态,以及用户标识模块(subscriber identity module,sim)卡状态等相关api。
54.3、catservice模块:可以接收并解析ril发来的sim卡应用工具包(sim application tool kit,stk)相关的数据,还可以将解析后的数据发送给stk。
55.4、stk:sim卡应用工具包(sim application tool kit,stk)是3gpp协议定义的sim卡基本业务应用工具,stk应用(application,app)也可以称为sim卡应用。
56.stk app中可以包含用于进行sim卡交互的一系列协议指令,基于协议指令,stk app可以与sim卡内的程序进行交互,以实现sim卡内程序的运行,进而终端设备可以实现运营商提供的sim卡相关业务。其中,用于进行sim卡交互的一系列协议指令也可以称为sim卡指令。
57.示例性的,在终端设备接收到用户点击桌面上的stk app的操作时,终端设备响应于该操作,可以打开stk app。stk app的界面中可以显示sim卡上报的菜单。当stk app监控到用户点击相关菜单后,stk app可以将接收到的stk相关的指令传递给catservice模块。catservice模块在接收到指令后,将指令处理为ril要求的格式后传递给ril。ril可以通过调制解调器modem将指令处理后,传递给sim卡,进而sim卡可以基于运营商提供的服务处理该指令。
58.5、phone进程:是android系统中的系统进程,phone进程中可以执行电话、短信、上网等相关业务。phone进程是终端设备的开机启动进程,在终端设备开机启动后,phone进程持续运行,如果phone进程在运行中出现异常退出的情况,则终端设备可以自动重启phone进程。
59.6、术语
60.在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
61.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
62.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
63.7、终端设备
64.本技术实施例的终端设备也可以为任意形式的电子设备,例如,电子设备可以包括具有移动通信功能的手持式设备、车载设备等。例如,一些电子设备为:手机(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 initiation protocol,sip)电话、无线本地环路(wireless local loop,wll)站、个人数字助理(personal digital assistant,pda)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5g网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,plmn)中的终端设备等,本技术实施例对此并不限定。
65.作为示例而非限定,在本技术实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
66.此外,在本技术实施例中,电子设备还可以是物联网(internet of things,iot)系统中的终端设备,iot是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
67.本技术实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
68.在本技术实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(central processing unit,cpu)、内存管理单元(memory management unit,mmu)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows
操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
69.示例性的,图1示出了电子设备的结构示意图。
70.电子设备可以包括处理器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,以及sim卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
71.可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本技术另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
72.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
73.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
74.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
75.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,sim卡接口,和/或usb接口等。
76.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本技术另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
77.电子设备通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
78.电子设备可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理
器等实现拍摄功能。
79.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
80.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。例如,可以执行本技术实施例的卸载应用的方法。
81.图2是本技术实施例的终端设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
82.应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括sim卡、电话、短信、备忘录、相机等应用程序。这些应用程序包对应的应用程序可以是系统应用程序,也可以是三方应用程序。
83.应用程序框架层也称为framework层,可以为应用程序层的应用程序提供api和编程框架。应用程序框架层包括一些预先定义的函数。
84.如图2所示,应用程序框架层可以包括窗口管理器、资源管理器、通知管理器、内容提供器、视图系统等。
85.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、触摸屏幕、拖拽屏幕、截取屏幕等。
86.资源管理器为应用程序提供各种资源,例如本地化字符串、图标、图片、布局文件、视频文件等等。
87.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、终端设备振动、指示灯闪烁等。
88.内容提供器用于在不同的应用程序之间实现数据共享的功能,允许一个程序访问另一个程序中的数据,同时还能保证被访问的数据的安全性。
89.视图系统可以负责应用程序的界面绘制和事件处理。
90.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
91.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
92.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。例如本技术实施例中,虚拟机可以用于执行卸载应用等功能。
93.系统库可以包括多个功能模块。例如:媒体库(media libraries)、函数库(function libraries)、图形处理库(例如:opengl es)等。
94.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
95.函数库为开发者提供多种服务的api接口,方便开发者快速集成并实现各种功能。
96.图形处理库用于实现三维图形绘图、图像渲染、合成和图层处理等。
97.内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、中央处理器驱动、usb驱动、电池驱动等。
98.终端设备中的应用程序可以支持卸载,一些实现中,当用户卸载应用程序时,在终端系统的framework层中可以关闭该应用程序的进程并删除该应用程序的应用数据,以释放终端设备系统中的内存资源。然而,若被卸载的应用程序与其他进程共进程,则在卸载应用程序时,在framework层中不会关闭与该应用程序共进程的进程,导致该应用程序的应用数据在被删除后,该进程中仍可能使用已被删除的应用程序的应用数据,使进程出错,从而可能出现该进程所对应的业务闪退的场景。
99.示例性的,以stk app被卸载为例,由于stk app是在phone进程中执行的,或理解为stk app与phone是共进程的,并且stk app是终端设备的开机启动应用,在终端设备开机启动后,stk app可以启动并持续运行。当stk app被卸载时,stk app的应用数据可以被删除,但是phone进程不会被关闭,因此,运行在phone进程中的stk app的部分组件不会被删除,在phone进程中已注册的stk app的部分组件或回调等也不会被删除,这些组件或者回调仍可能在phone进程中运行。
100.这些组件或者回调在运行过程中,可能会调用已被删除的stk app的应用数据,从而导致phone进程的运行出错而出现闪退的场景,使phone进程所对应的电话、短信、上网等业务短暂时间内无法使用,给用户带来不好的使用体验。
101.例如,一种可能的实现中,在终端设备修改系统语言的场景中,可以涉及到phone进程中运行stk app相应业务的情况。例如,sim卡可以支持几种不同的语言,当终端设备接收到用户修改终端设备的系统语言的操作时,终端设备响应于该操作,可以发送系统广播,该系统广播用于通知系统语言被修改。在phone进程中,stk app可以接收该系统广播以及进行stk相应的业务处理流程等。
102.然而,在stk app被卸载的情况下,stk app已注册的用于接收系统语言被修改的广播的广播接收器不会被删除,该广播接收器仍会在phone进程中接收系统语言被修改的广播。该广播接收器在接收到该广播后会进行stk相应的业务处理流程。但是,由于stk app的应用数据已被删除,该广播接收器无法在phone进程中调用已被删除的stk app的应用数据,从而导致phone进程执行流程出错,phone进程出现闪退等,进而影响在phone进程中运行的其他业务。
103.另一种可能的实现中,在终端设备中插入或拔出sim卡的场景中,可以涉及到
phone进程中运行stk app相应业务的情况。例如,当终端设备接收到用户插入sim卡或拔出sim卡的操作时,终端设备响应于该操作,可以发送广播,该广播用于通知插入sim卡或拔出sim卡。在phone进程中,stk app可以接收该广播以及处理插入sim卡或拔出sim卡的相关业务流程。
104.然而,在stk app被卸载的情况下,stk app已注册的用于接收插入sim卡或拔出sim卡的广播的广播接收器不会被删除,该广播接收器仍会在phone进程中接收插入sim卡或拔出sim卡的广播。该广播接收器在接收到该广播后会进行stk相应的业务处理流程。但是由于stk app的应用数据已被删除,该广播接收器无法在phone进程中调用已被删除的stk app的应用数据,从而导致phone进程的执行流程出错,phone进程出现闪退等,进而影响在phone进程中运行的其他业务。
105.有鉴于此,本技术实施例提供的一种卸载应用方法中,终端设备在卸载stk app时,终端设备可以先停止因在phone进程中运行而无法被删除的stk app的部分组件的运行,或者去注册因在phone进程中注册而无法被删除的stk app的部分组件或回调等,然后再执行卸载流程。从而可以在stk app被卸载时,不影响与stk app共进程的phone进程中其他业务的运行,提升用户体验。
106.或者,终端设备在卸载stk app时,终端设备在执行stk app卸载流程后,可以重启phone进程。因为在phone进程重启时,stk app已完成卸载,stk app不会在phone进程中运行,因此在phone进程中不会运行stk app的组件或不会注册stk app的组件或回调等,使得stk app不会对phone进程造成影响。从而可以在stk app被卸载时,不影响与stk app共进程的phone进程中其他业务的运行,提升用户体验。
107.下面通过具体的实施例对本技术实施例的卸载应用方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
108.本技术实施例的一种卸载应用方法中,在stk app被卸载前,终端设备可以先停止因在phone进程中运行而无法被删除的stk app的部分组件的运行,或者去注册因在phone进程中注册而无法被删除的stk app的部分组件或回调等。示例性的,需要停止在phone进程中运行的组件或需要去注册在phone进程中注册的部分组件或回调等可以包括:服务service组件、接收器receiver组件、定时服务回调alarmmanger.onalarmlistener,以及回调callback等。其中,接收器receiver组件可以包括广播接收器broastcastreceiver组件。
109.可以理解的是,stk app中还可以有其他需要停止在phone进程中运行的组件或需要去注册在phone进程中注册的部分组件或回调等,本技术实施例不作限定。
110.一种可能的实现中,图3以卸载stk app为例示出了本技术实施例的卸载应用方法的示意图,具体步骤可以为:
111.s301、注册卸载广播。
112.终端设备可以为stk app注册卸载广播。可以理解的是,终端设备可以基于stk app注册卸载广播,也可以基于终端设备中的其他应用或模块为stk app注册卸载广播,本技术实施例不作限定。其中,终端设备可以在stk app启动时注册卸载广播,也可以在其他应用或模块中注册卸载广播,具体的注册卸载广播的流程,本技术实施例不作限定。
113.示例性的,以在stk app应用启动时,stk app注册卸载广播为例,注册卸载广播的
过程可以包括:
114.stk app可以向意图过滤器intentfilter添加卸载广播所对应的字段intent.action_package_removed,以及添加stk app的包名。
115.进一步的,stk app可以调用注册广播接收器receiver的函数完成卸载广播注册。其中,注册广播接收器receiver的函数例如包括registerreceiver()等。
116.s302、判断是否卸载stk app。
117.当终端设备接收到用户触发卸载stk app的操作时,终端设备响应于该操作,可以发送的卸载广播,其中,该卸载广播中可以包括stk app的包名。
118.当stk app在收到终端设备发送的卸载广播后,可以判断该卸载广播中所携带的包名是否为stk app所对应的包名。
119.若stk app判断卸载广播中没有stk app所对应的包名,则确定不卸载stk app。
120.若stk app判断卸载广播中有stk app所对应的包名,则确定卸载stk app,stk app可以停止在phone进程中运行的组件,或者去注册在phone进程中注册的部分组件或回调等。也可以理解为stk app对在phone进程中运行的组件或在phone进程中注册的部分组件或回调等的清理。
121.具体的清理方式可以参照下述s303的描述。
122.s303、组件或回调的清理。
123.示例性的,对于服务service组件,当stk app判断应用自身被卸载时,stk app可以判断服务service是否正在运行,若服务service正在运行,则stk app可以调用关闭服务service组件的函数,例如stopservice()函数,来停止service组件的运行,完成service组件的内存释放。
124.对于广播接收器receiver组件,当stk app判断应用自身被卸载时,stk app可以判断是否有已注册的广播接收器receiver,若有已注册的广播接收器receiver,则stk app可以调用去注册广播接收器receiver组件的函数,例如unregisterreceiver()函数,来停止receiver组件的运行,完成receiver组件的内存释放。
125.对于定时服务回调alarmmanger.onalarmlistener,当stk app判断应用自身被卸载时,stk app可以判断是否有已注册的定时任务回调alarmmanger.onalarmlistener,若stk app中有已注册的定时任务回调alarmmanger.onalarmlistener,则stk app可以执行去注册定时任务回调alarmmanger.onalarmlistener的函数,例如cancel()函数,完成定时任务回调alarmmanger.onalarmlistener的内存释放。
126.对于回调callback,当stk app判断应用自身被卸载时,stk app可以判断在phone进程中是否存在已注册的回调callback,若在phone进程中存在已注册的回调callback,stk app可以调用去注册回调callback的函数,来停止回调callback的运行,完成回调callback的内存释放。
127.示例性的,表1汇总示出了对上述几种组件或回调的清理方案。
128.表1
[0129][0130]
本技术实施例中,stk app在被卸载前,终端设备可以先停止因在phone进程中运行而无法被删除的stk app的部分组件的运行,或者去注册因在phone进程中注册而无法被删除的stk app的部分组件或回调等,然后再执行卸载流程。这样可以在用户不感知的情况下,完成stk app内存的清理以及应用的卸载,提升用户体验。
[0131]
可以理解的是,在stk app被卸载时,由于运行在phone进程中的stk app的部分组件不会被删除,或者在phone进程中已注册的stk app的部分组件或回调等也不会被删除,这些组件或者回调在phone进程中运行的过程中,可能会调用已被删除的stk app的应用数据,从而导致phone进程的运行出错而出现闪退的场景,可以通过重启phone进程来恢复。因为在phone进程重启时,stk app已完成卸载,stk app不会在phone进程中运行,因此在phone进程中不会运行stk app的组件或不会注册stk app的组件或回调等,从而不会导致phone进程的运行出错而出现闪退的场景。
[0132]
因此,stk app可以在被卸载时指示终端设备重启phone进程,从而使phone进程不会出现因为stk app的部分组件或者部分回调调用已被删除的stk app的应用数据而闪退的场景,还可以使phone进程中的其他相关业务(如电话、短信、上网等业务)正常运行。
[0133]
此外,由于重启phone进程可能导致phone进程中运行的其他相关业务(如电话、短信、上网等业务)出现短暂时间内无法使用的场景,是用户可以感知的。因此,在stk app指示终端设备重启phone进程时,终端设备可以给用户显示弹窗,提示卸载stk app时可能出现的影响,由用户决定是否继续卸载stk app。
[0134]
示例性的,图4提供了一种stk app被卸载时,终端设备显示卸载应用弹窗的界面示意图。如图4所示,终端设备的界面上可以显示弹窗401,弹窗401中可以显示stk app的图标402、卸载提示标题403、卸载提示信息404、确定按钮405以及取消按钮406。
[0135]
其中,卸载提示标题403可以包括“是否卸载sim卡应用?”,卸载提示信息404可以包括“此应用属于系统应用,卸载后可能会导致通话、短信、上网等业务暂时无法使用。”具体的卸载提示标题403和卸载提示信息404的内容信息,本技术实施例不作限定。当终端设备接收到用户触发确定按钮405的操作时,终端设备可以基于stk app执行卸载应用的流程。当终端设备接收到用户触发取消按钮406的操作时,终端设备可以取消弹窗401的显示,且不执行卸载应用的流程。
[0136]
对应于图4所示的卸载应用后重启进程的场景,示例性的,图5示出本技术实施例所提供的一种卸载应用的流程示意图。具体步骤可以为:
[0137]
s501、接收到用于触发卸载应用的操作。
[0138]
示例性的,用于触发卸载应用的操作可以包括:用户在终端设备的桌面上长按应用的应用图标,触发卸载按钮的操作,也可以包括:用户在终端设备的设置界面的应用管理中,找到应用并触发卸载按钮的操作,具体的卸载应用的操作,本技术实施例不作限定。
[0139]
s504、终端设备在界面中显示弹窗,弹窗中可以包括:取消按钮、确定按钮、以及用于提示用户卸载应用后可能的影响的信息。具体的,卸载应用的弹窗以及提示信息可以参照图4所对应的界面显示,不再赘述。
[0140]
s505、当终端设备接收到用户触发取消按钮的操作时,终端设备可以取消弹窗的显示。同时,终端设备可以不需要执行卸载应用的流程。
[0141]
s506、当终端设备接收到用户触发确定按钮的操作时,终端设备可以执行卸载流程。
[0142]
示例性的,卸载流程可以包括通过调用应用程序管理服务(package manager service,pms)中删除应用程序的函数来删除应用对应的安装文件和应用数据,以及清理终端设备的系统内存信息。
[0143]
s507、在终端设备执行卸载流程后,终端设备可以重启共进程的进程。
[0144]
一种可能的重启进程的实现中,终端设备可以基于活动管理器activitymanager中关闭进程的函数来关闭进程,以及启动进程的函数来启动进程。
[0145]
s508、完成应用的卸载。
[0146]
本技术实施例提供的卸载应用的方法,应用在被卸载前,应用可以在终端设备界面中给用户显示弹窗,提示卸载应用的影响,同时重启与应用共进程的进程,从而可以在应用被卸载时,不影响与应用共进程的进程中其他业务的运行,提升用户体验。
[0147]
可选的,在s501和s504之间还可以包括s502。
[0148]
s502、判断应用是否共进程。
[0149]
在应用被卸载前,终端设备可以判断该应用是否是共进程应用。一种可能的实现中,若在应用的配置文件中查询到application字段所对应的内容中的“android:process”属性配置了其他进程的标识,则说明应用与其他进程是共进程的。示例性的,以应用为stk app为例,若在stk app的配置文件中查询到application字段所对应的内容中的“android:process”属性配置为“android:process="com.android.phone"”,则说明stk app与phone进程共进程。
[0150]
如果在应用的配置文件中可以查询到其他进程的标识,说明该应用是共进程应用,则可以执行s504的步骤,如果在应用的配置文件中未查询到其他进程的标识,说明该应用不是共进程应用,则可以执行s503的步骤。
[0151]
s503、若应用不是共进程应用,终端设备可以执行应用的卸载流程。卸载流程可以参考上述s506的描述,不再赘述。
[0152]
这样,在终端设备卸载应用时,终端设备可以基于本技术实施例的卸载流程实现应用的卸载,例如,该应用可以是共进程应用,也可以是不共进程的应用。
[0153]
具体的,图6为本技术实施例所提供的一种sim卡业务处理的示意图。方法包括:
[0154]
s601、终端设备接收到卸载sim卡应用的操作。
[0155]
本技术实施例中,卸载sim卡应用的操作可以包括:用户在终端设备的桌面上长按sim卡应用的应用图标,触发卸载按钮的操作;也可以包括:用户在终端设备的设置界面的应用管理中,找到sim卡应用并触发卸载按钮的操作。具体的卸载sim卡应用的操作,本技术实施例不作限定。
[0156]
s602、根据终端设备接收的卸载sim卡应用的操作,在第一时刻,终端设备停止sim
卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或已注册的回调,目标进程为sim卡应用与其他应用共进程的进程。
[0157]
本技术实施例中,第一时刻可以为终端设备清理sim卡应用的组件或回调的时刻。
[0158]
终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或已注册的回调的具体执行过程,可以参照上述图3对应的实施例中s303中组件或回调的清理的相关描述,在此不再赘述。
[0159]
目标进程可以为sim卡应用运行时所对应的进程,例如,sim卡应用可以与phone进程共进程,则目标进程可以为phone进程。
[0160]
s603、在第二时刻,终端设备卸载sim卡应用,第二时刻晚于第一时刻。
[0161]
本技术实施例中,第二时刻可以为终端设备卸载sim卡应用的时刻,可以理解的是,终端设备可以在执行完s602中清理sim卡应用的组件或回调的流程后,才执行卸载sim卡应用的流程。
[0162]
本技术实施例中,sim卡应用在被卸载前,终端设备可以先清理sim卡应用的组件或回调,然后再执行卸载流程。这样可以在用户不感知的情况下,完成sim卡应用内存的清理以及应用的卸载,提升用户体验。
[0163]
可选的,在图6对应的实施例的基础上,sim卡应用在目标进程中运行的组件可以包括服务service组件;sim卡应用在目标进程中已注册的组件可以包括接收receiver组件;sim卡应用在目标进程中已注册的回调可以包括定时服务回调alarmmanger.onalarmlistener,和/或,回调callback。
[0164]
本技术实施例中,终端设备在卸载sim卡应用时无法删除sim卡应用在目标进程中运行的组件,或注册的组件或回调,因此需要对这些组件或者回调单独处理,这样可以确保目标进程的正常运行。
[0165]
可选的,在图6对应的实施例的基础上,终端设备停止sim卡应用在目标进程中运行的组件,可以包括:终端设备调用关闭服务service组件的函数。
[0166]
本技术实施例中,终端设备可以判断服务service是否正在运行,若服务service正在运行,则终端设备可以调用关闭服务service组件的函数。该函数可以参照图3对应的实施例中s303的相关描述,具体关闭服务service组件的方法,本技术实施例不作限定。
[0167]
终端设备在卸载sim卡应用前,通过关闭正在运行的服务service组件,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
[0168]
可选的,在图6对应的实施例的基础上,终端设备去注册sim卡应用在目标进程中已注册的组件,可以包括:终端设备调用去注册广播接收器receiver组件的函数。
[0169]
本技术实施例中,终端设备可以判断是否有已注册的广播接收器receiver,若有已注册的广播接收器receiver,则终端设备可以调用去注册广播接收器receiver组件的函数。该函数可以参照图3对应的实施例中s303的相关描述,具体去注册广播接收器receiver组件的方法,本技术实施例不作限定。
[0170]
终端设备在卸载sim卡应用前,通过去注册广播接收器receiver组件,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
[0171]
可选的,在图6对应的实施例的基础上,终端设备去注册sim卡应用在目标进程中已注册的回调,可以包括:终端设备调用去注册定时任务回调
alarmmanger.onalarmlistener的函数;和/或,终端设备调用注册回调callback的函数。
[0172]
本技术实施例中,终端设备可以判断是否有已注册的定时任务回调alarmmanger.onalarmlistener,若终端设备中有已注册的定时任务回调alarmmanger.onalarmlistener,则终端设备可以执行去注册定时任务回调alarmmanger.onalarmlistener的函数。或者,终端设备可以判断是否有已注册的回调callback,若终端设备中有已注册的回调callback,则终端设备可以执行去注册回调callback的函数。
[0173]
其中,去注册定时任务回调alarmmanger.onalarmlistener的函数或者去注册回调callback的函数可以参照图3对应的实施例中s303的相关描述,具体去注册定时任务回调alarmmanger.onalarmlistener的方法或者去注册回调callback的函数的方法,本技术实施例不作限定。
[0174]
终端设备在卸载sim卡应用前,通过去注册定时任务回调alarmmanger.onalarmlistener或者去注册回调callback,可以使目标进程正常运行,从而不影响目标进程中的其他业务。
[0175]
可选的,在图6对应的实施例的基础上,终端设备接收到卸载sim卡应用的操作之前,还可以包括:终端设备为sim卡应用注册卸载广播。
[0176]
根据终端设备接收的卸载sim卡应用的操作,第一时刻,终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或回调,可以包括:根据该操作,终端设备发送卸载广播,卸载广播可以包括sim卡应用的标识;当终端设备通过sim卡应用确定卸载广播包括sim卡应用的标识时,在第一时刻,终端设备停止sim卡应用在目标进程中运行的组件,以及去注册sim卡应用在目标进程中已注册的组件或回调。
[0177]
本技术实施例中,当用户触发卸载应用的操作时,终端设备可以发送卸载广播。可以理解的是,用户触发卸载的应用可以是sim卡应用,也可以是其他三方应用或者系统应用,本技术实施例不作限定。当用户触发卸载sim卡应用的操作时,终端设备发送的卸载广播中可以包括sim卡应用的标识,例如,卸载广播中可以包括sim卡应用的包名。
[0178]
确定卸载广播包括sim卡应用的标识的流程可以参照图3对应的实施例中s302的相关描述,不再赘述。在用户触发卸载应用的操作时,终端设备发送卸载广播可以使注册了卸载广播的应用或者模块接收到该卸载广播,从而使相关的应用或者模块可以在接收到卸载广播后,执行卸载应用的操作。
[0179]
可选的,在图6对应的实施例的基础上,终端设备为sim卡应用注册卸载广播,可以包括:终端设备向意图过滤器intentfilter添加卸载广播所对应的字段intent.action_package_removed,以及添加sim卡应用的标识。
[0180]
本技术实施例中,注册卸载广播的流程可以参照图3对应的实施例中s301的相关描述,不再赘述。终端设备通过为sim卡应用注册卸载广播,可以方便接收卸载sim卡应用的卸载广播,并进一步执行相关的卸载流程。
[0181]
可选的,在图6对应的实施例的基础上,目标进程可以包括phone进程。
[0182]
本技术实施例中,phone进程是终端设备中的系统进程,phone进程可以在终端设备开机启动后持续运行,sim卡应用与phone进程共进程,可以使sim相关的业务正常运行,可以很好的为用户提供sim相关服务。
[0183]
具体的,图7为本技术实施例所提供的另一种sim卡业务处理的示意图。方法可以包括:
[0184]
s701、终端设备接收到卸载sim卡应用的操作。
[0185]
本技术实施例中,接收卸载sim卡应用的操作可以参照上述图6对应的实施例中s601的相关描述,不再赘述。
[0186]
s702、在第三时刻,终端设备卸载sim卡应用。
[0187]
本技术实施例中,第三时刻可以为终端设备卸载sim卡应用的时刻,可以理解的是,终端设备在接收到卸载sim卡应用的操作后,可以执行卸载sim卡应用的流程。使终端设备响应于用户卸载应用的操作后,可以及时完成终端设备内存的清理。
[0188]
s703、在第四时刻,终端设备重启目标进程,目标进程为sim卡应用与其他应用共进程的进程,第四时刻晚于第三时刻。
[0189]
本技术实施例中,第四时刻可以为终端设备重启目标进程的时刻,也就是说,第四时刻可以为终端设备执行卸载sim卡应用的流程后,重启与sim卡应用共进程的进程。重启与sim卡应用共进程的进程可以使该进程不再加载sim卡应用的相关数据,从而使该进程中的其他业务可以正常运行。
[0190]
可选的,在图7对应的实施例的基础上,终端设备卸载sim卡应用之前,还可以包括:终端设备显示弹窗,弹窗中包括确定按钮、取消按钮以及用于提示卸载sim卡应用存在的风险的提示信息。
[0191]
终端设备卸载sim卡应用可以包括:响应于对确定按钮的操作,终端设备卸载sim卡应用。
[0192]
本技术实施例中,终端设备显示弹窗可以参照图4所示的界面弹窗,不再赘述。当用户触发确定按钮后,说明用户选择卸载sim卡应用,则终端设备可以执行卸载sim卡应用的流程。在卸载过程中,终端设备通过给用户弹窗提示卸载sim卡应用存在的风险,可以让用户及时了解未知的风险,提升用户体验。
[0193]
可选的,在图7对应的实施例的基础上,终端设备显示弹窗之前,还可以包括:终端设备通过sim卡应用的配置文件判断sim卡应用为共进程应用。
[0194]
本技术实施例中,终端设备通过sim卡应用的配置文件判断sim卡应用为共进程应用可以参照上述图5对应的实施例中s502的相关描述,不再赘述。具体的,终端设备判断应用是否为共进程应用的方法,本技术实施例不作限定。
[0195]
终端设备在确定卸载应用所对应的进程与其他进程共进程时,可以通过重启进程使该进程中不再加载卸载应用的相关数据,从而使该进程中的其他业务可以正常运行。
[0196]
可选的,在图7对应的实施例的基础上,目标进程包括phone进程。
[0197]
本技术实施例中,phone进程是终端设备中的系统进程,phone进程可以在终端设备开机启动后持续运行,sim卡应用与phone进程共进程,可以使sim相关的业务正常运行,可以很好的为用户提供sim相关服务。
[0198]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执
行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0199]
本技术实施例可以根据上述方法示例对实现卸载应用的方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0200]
如图8示为本技术实施例提供的一种芯片的结构示意图。芯片800包括一个或两个以上(包括两个)处理器801、通信线路802、通信接口803和存储器804。
[0201]
在一些实施方式中,存储器804存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
[0202]
上述本技术实施例描述的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器801可以实现或者执行本技术实施例中的公开的各处理相关的方法、步骤及逻辑框图。
[0203]
结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electrically erasable programmable read only memory,eeprom)等本领域成熟的存储介质中。该存储介质位于存储器804,处理器801读取存储器804中的信息,结合其硬件完成上述方法的步骤。
[0204]
处理器801、存储器804以及通信接口803之间可以通过通信线路802进行通信。
[0205]
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
[0206]
本技术实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘
(solid state disk,ssd))等。
[0207]
本技术实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
[0208]
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compact disc read-only memory,cd-rom)、ram、rom、eeprom或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,dsl或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,dsl或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(cd),激光盘,光盘,数字通用光盘(digital versatile disc,dvd),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
[0209]
本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

技术特征:
1.一种卸载应用的方法,其特征在于,所述方法包括:终端设备接收到卸载sim卡应用的操作;根据所述操作,在第一时刻,所述终端设备停止所述sim卡应用在目标进程中运行的组件,以及去注册所述sim卡应用在所述目标进程中已注册的组件或已注册的回调,所述目标进程为所述sim卡应用与其他应用共进程的进程;在第二时刻,所述终端设备卸载所述sim卡应用,所述第二时刻晚于所述第一时刻。2.根据权利要求1所述的方法,其特征在于,所述sim卡应用在所述目标进程中运行的组件包括服务service组件;所述sim卡应用在所述目标进程中已注册的组件包括接收receiver组件;所述sim卡应用在所述目标进程中已注册的回调包括定时服务回调alarmmanger.onalarmlistener,和/或,回调callback。3.根据权利要求2所述的方法,其特征在于,所述终端设备停止所述sim卡应用在目标进程中运行的组件,包括:所述终端设备调用关闭服务service组件的函数。4.根据权利要求2或3所述的方法,其特征在于,所述终端设备去注册所述sim卡应用在所述目标进程中已注册的组件,包括:所述终端设备调用去注册广播接收器receiver组件的函数。5.根据权利要求2-4任一项所述的方法,其特征在于,所述终端设备去注册所述sim卡应用在所述目标进程中已注册的回调,包括:所述终端设备调用去注册定时任务回调alarmmanger.onalarmlistener的函数;和/或,所述终端设备调用去注册回调callback的函数。6.根据权利要求1-5任一项所述的方法,其特征在于,所述终端设备接收到卸载sim卡应用的操作之前,还包括:所述终端设备为所述sim卡应用注册卸载广播;所述根据所述操作,第一时刻,所述终端设备停止所述sim卡应用在目标进程中运行的组件,以及去注册所述sim卡应用在所述目标进程中已注册的组件或回调,包括:根据所述操作,所述终端设备发送卸载广播,所述卸载广播包括所述sim卡应用的标识;当所述终端设备通过所述sim卡应用确定所述卸载广播包括所述sim卡应用的标识时,在所述第一时刻,所述终端设备停止所述sim卡应用在所述目标进程中运行的组件,以及去注册所述sim卡应用在所述目标进程中已注册的组件或回调。7.根据权利要求6所述的方法,其特征在于,所述终端设备为所述sim卡应用注册卸载广播,包括:所述终端设备向意图过滤器intentfilter添加卸载广播所对应的字段intent.action_package_removed,以及添加所述sim卡应用的标识。8.根据权利要求1-7任一项所述的方法,其特征在于,所述目标进程包括phone进程。9.一种卸载应用的方法,其特征在于,所述方法包括:终端设备接收到卸载sim卡应用的操作;根据所述操作,在第三时刻,所述终端设备卸载所述sim卡应用;在第四时刻,所述终端设备重启目标进程,所述目标进程为所述sim卡应用与其他应用共进程的进程,所述第四时刻晚于所述第三时刻。
10.根据权利要求9所述的方法,其特征在于,所述终端设备卸载所述sim卡应用之前,还包括:所述终端设备显示弹窗,所述弹窗中包括确定按钮、取消按钮以及用于提示卸载所述sim卡应用存在的风险的提示信息;所述终端设备卸载所述sim卡应用包括:响应于对所述确定按钮的操作,所述终端设备卸载所述sim卡应用。11.根据权利要求10所述的方法,其特征在于,所述终端设备显示弹窗之前,还包括:所述终端设备通过所述sim卡应用的配置文件判断所述sim卡应用为共进程应用。12.根据权利要求9-11任一项所述的方法,其特征在于,所述目标进程包括phone进程。13.一种终端设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以执行如权利要求1-8任一项所述的卸载应用的方法,或者,执行如权利要求9-12任一项所述的卸载应用的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-8任一项所述的卸载应用的方法,或者,执行如权利要求9-12任一项所述的卸载应用的方法。15.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得电子设备执行如权利要求1-8任一项所述的卸载应用的方法,或者,执行如权利要求9-12任一项所述的卸载应用的方法。

技术总结
本申请实施例提供卸载应用的方法及相关装置,涉及终端技术领域。方法包括:终端设备接收到卸载SIM卡应用的操作;在第一时刻,终端设备停止SIM卡应用在目标进程中运行的组件,以及去注册SIM卡应用在目标进程中已注册的组件或已注册的回调,目标进程为SIM卡应用与其他应用共进程的进程;在第二时刻,终端设备卸载SIM卡应用,第二时刻晚于第一时刻。这样,可以在SIM卡应用被卸载时,不影响与SIM卡应用共进程的进程中其他业务的运行,提升用户体验。提升用户体验。提升用户体验。


技术研发人员:王欢
受保护的技术使用者:荣耀终端有限公司
技术研发日:2022.09.30
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐