CN107729022B - 卸载应用程序的方法、装置和移动终端 - Google Patents

卸载应用程序的方法、装置和移动终端 Download PDF

Info

Publication number
CN107729022B
CN107729022B CN201610659716.1A CN201610659716A CN107729022B CN 107729022 B CN107729022 B CN 107729022B CN 201610659716 A CN201610659716 A CN 201610659716A CN 107729022 B CN107729022 B CN 107729022B
Authority
CN
China
Prior art keywords
preset file
deleted
state
triggering
preset
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
CN201610659716.1A
Other languages
English (en)
Other versions
CN107729022A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610659716.1A priority Critical patent/CN107729022B/zh
Publication of CN107729022A publication Critical patent/CN107729022A/zh
Application granted granted Critical
Publication of CN107729022B publication Critical patent/CN107729022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading

Abstract

本发明公开了一种卸载应用程序的方法、装置和移动终端。其中,该方法包括:判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。本发明解决了由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。

Description

卸载应用程序的方法、装置和移动终端
技术领域
本发明涉及电子技术应用领域,具体而言,涉及一种卸载应用程序的方法、装置和移动终端。
背景技术
随着移动终端种类的增多,如何确保从移动终端中顺利卸载应用程序,避免该应用程序在卸载的过程中遗留剩余数据成为了如今亟待解决的问题。
移动终端包括:智能手机、平板电脑、智能穿戴设备或笔记本电脑等,以应用安卓系统Android的智能手机为例,在Android手机上,卸载应用程序的时候,如果应用程序正在做文件的读写,就有概率出现/data/data/<package>目录文件残留,然后系统会保留文件owner的uid。当该Android手机的系统下次再安装同一个包名的应用的时候就会出现INSTALL_FAILED_UID_CHANGED的异常,然后安装失败。在Android5.0以下会导致这台手机再也不能安装同一个包名的应用,在Android5.0以上需要多次安装才能安装。
在相关技术中,在出现INSTALL_FAILED_UID_CHANGED的异常后,将出现各个修复方案,即,需要手机已root,由用户手动清理文件;或,将手机恢复出厂设置;但是上述两种方法均为出现异常后的后续补偿办法,并且在清理或恢复出厂设置的操作过程中极有可能影响其他应用程序的使用。
针对上述相关技术中由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种卸载应用程序的方法、装置和移动终端,以至少解决由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。
根据本发明实施例的一个方面,提供了一种移动终端,包括:数据处理器,用于通过通信总线监听预设文件是否被删除,在监听到预设文件删除的情况下,触发清除应用程序中同一用户标识对应的进程数据;其中,删除预设文件用于指示删除应用程序的操作为卸载操作。
根据本发明实施例的另一方面,还提供了一种卸载应用程序的方法,包括:判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。
根据本发明实施例的又一方面,还提供了一种卸载应用程序的装置,包括:判断模块,用于判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;清除模块,用于在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。
在本发明实施例中,通过判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据,达到了避免在卸载过程中产生的异常的目的,从而实现了当检测到应用被卸载的时候,对自身数据做清理,避免了卸载残留的技术效果,进而解决了由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种移动终端的硬件结构框图;
图2是根据本发明实施例一的卸载应用程序的方法的流程图;
图3是根据本发明实施例一的一种卸载应用程序的方法的流程图;
图4是根据本发明实施例一的一种卸载应用程序的方法中卸载检测的流程图;
图5是根据本发明实施例一的一种卸载应用程序的方法中自清理的流程图;
图6是根据本发明实施例三的卸载应用程序的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例涉及的技术名词:
应用程序:安装在移动终端上的软件,用于完善原始系统的不足和个性化;
第一预设文件:用于监听是否存在删除操作,在数据清理或重建文件的过程中该第一预设文件均会被删除,但该第一预设文件的删除不代表当前删除操作为卸载应用程序的操作;
预设文件:为系统在安装的时候创建的目录,该目录link到/data/app/<package>/lib/,除卸载以外的情况,该目录是不会被删除的,而且当Android开始卸载时,第一个删除的文件就是/data/data/<package>/lib,即,在第一预设文件删除的情况下,预设文件不一定会被删除,但是当第二预设文件被删除的情况下,说明该应用程序被触发卸载流程,本申请实施例通过第一预设文件被删除检测该预设文件是否还存在,以此来触发卸载应用程序的过程中对于应用程序中同一用户标识对应的进程数据的清理;
进程:程序操作过程中关于某数据集合上的以此运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
实施例1
根据本发明实施例,还提供了一种移动终端的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的移动终端实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种移动终端的硬件结构框图。如图1所示,移动终端10可以包括:数据处理器12和通信总线14,其中,
数据处理器12,用于通过通信总线14监听预设文件是否被删除,在监听到预设文件删除的情况下,触发清除应用程序中同一用户标识对应的进程数据;
其中,删除预设文件用于指示删除应用程序的操作为卸载操作。
本申请上述实施例提供的移动终端可以为:智能手机、平板电脑、智能穿戴设备或掌上商务等能够链接网络具备独立运算能力的终端设备,在本申请实施例中终端设备10可以以智能手机为例进行说明,其中,以操作系统为Android系统的手机为优选实施例进行阐述,在本申请实施例中,由于Android手机通常在卸载应用程序的时候,如果应用程序正在做文件的读写,就有概率出现/data/data/<package>目录文件残留,然后系统会保留文件owner的uid。当该Android手机的系统下次再安装同一个包名的应用程序的时候就会出现由于uid的改变造成的安装失败(INSTALL_FAILED_UID_CHANGED)的异常,然后安装失败。在Android5.0以下会导致这台手机再也不能安装同一个包名的应用,在Android5.0以上需要多次安装才能安装。
本申请实施例中Android手机通过通信总线14监听第一预设文件是否删除,在监听到第一预设文件删除的情况下,继续检测预设文件是否删除,在预设文件删除的情况下,触发清除应用程序中同一用户标识对应的进程数据,以此在从卸载应用程序的过程中杜绝相关技术中由于卸载的过程中发生读操作造成的系统会保留文件owner的uid的可能性,避免了系统下次在安装同一个包名的应用程序的时候会出现由于uid的改变造成的安装失败(INSTALL_FAILED_UID_CHANGED)的异常,以使得安装失败的产生。
具体的,以卸载“QQ音乐”为例,第一预设文件以通过孤儿进程去注册文件删除监听器去监听/data/data/<package>下的一个自定义文件为例,预设文件以lib文件为例,由于当出现删除操作时,第一预设文件会被删除,例如,用户清除数据时就会删除第一预设文件;若要监听是否存在卸载QQ音乐的操作,则需要检测lib文件是否被删,如果lib文件被删,则说明卸载QQ音乐的流程已经启动,进而通过遍历QQ音乐所在的预设路径下的进程目录,将同一个uid的进程目录进行清除,进而清理该进程目录下的所有文件,在执行完毕后,推出进程,由上可知QQ音乐删除成功,并且因为删除了同一个uid的进程目录,杜绝了新文件的产生,进而通过清理进程目录下的所有文件,完全卸载QQ音乐。
这里本申请实施例中提到的预设路径下的进程目录可以为:/proc/下的进程目录;该进程目录可以为/data/data/<package>。
本发明实施例提供的移动终端中,通过判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据,其中,在判断预设文件是否被删除时可以通过检测第一预设文件是否被删除,当第一预设文件被删除时说明当前出现删除操作,进而检测预设文件是否被删除,若该预设文件被删除,说明当前的删除操作为卸载应用程序的操作,达到了避免在卸载过程中产生的异常的目的,从而实现了当检测到应用被卸载的时候,对自身数据做清理,避免了卸载残留的技术效果,进而解决了由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。
实施例2
在上述运行环境下,本申请提供了如图2所示的卸载应用程序的方法。图2是根据本发明实施例一的卸载应用程序的方法的流程图。
步骤S202,判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;
本申请上述步骤S202中,本申请实施例提供的卸载应用程序的方法可以适用于实施例1中的移动终端。
具体的,本申请实施例中的预设文件可以使lib目录,该lib目录是Android系统在安装的时候创建的目录,它link到/data/app/<package>/lib/,除卸载以外的情况,它是不会被删除的,而且当Android开始卸载时,第一个删除的文件就是/data/data/<package>/lib。
步骤S204,在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。
基于步骤S202对预设文件的检测,本申请上述步骤S204中,若预设文件被删除,则触发清除应用程序中同一用户标识对应的进程数据。
具体的,仍旧以卸载“QQ音乐”为例,在QQ音乐中的lib目录被删除的情况下,将lib目录下同一uid的进程数据全部删掉,进而达到通过清理进程,从而达到杜绝新文件的产生的效果。
本发明实施例提供的卸载应用程序的方法中,通过判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据,达到了避免在卸载过程中产生的异常的目的,从而实现了当检测到应用被卸载的时候,对自身数据做清理,避免了卸载残留的技术效果,进而解决了由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。
可选的,在步骤S202中判断预设文件是否被删除之前,本申请实施例提供的卸载应用程序的方法还包括:
步骤S200,创建第一触发进程和第二触发进程;
本申请上述步骤S200中,本申请实施例提供的卸载应用程序的方法在卸载应用程序的过程中线执行卸载检测,通过创建两个不同的进程检测是否存在对应用程序的卸载操作。
具体的,本申请实施例中第一触发进程可以为文件监听进程,第二触发进程可以为进程互唤。
步骤S201,依据预设顺序触发第一触发进程和/或第二触发进程。
基于步骤S200创建的第一触发进程和第二触发进程,本申请上述步骤S201中,通过触发第一触发进程或第二触发进程中任一进程。
具体的,需要说明的是,在本申请实施例中提出的当第一触发进程或第二触发进程只要存在任意一个完成卸载检测,均可以触发自清理操作,即,本申请实施例中的步骤S204。设置两类触发进程的初衷在于,由于不同终端设备上第一触发进程与第二触发进程的触发时间先后不一样,因此为了满足不同终端设备的需要,设置两类触发进程。
进一步地,可选的,步骤S202中判断预设文件是否被删除包括:
Step1,在触发第一触发进程的情况下,依据预设条件创建第一预设文件,其中,预设条件用于监听删除事件是否产生;
本申请上述步骤S202中的Step1中,在触发第一触发进程的情况下,依据预设条件创建第一预设文件。
这里创建第一预设文件是为了先判断是否存在删除操作,再进一步的触发步骤S202对预设文件是否被删的判断。
Step2,监听是否删除第一预设文件,其中,删除第一预设文件用于指示当前进程存在删除操作;
本申请上述步骤S202中的Step2中,在创建完第一预设文件后,对该第一预设文件是否被删除进行监听。
其中,通过监听第一预设文件是否删除,判断是否有删除操作产生,即,若第一预设文件删除则表明当前移动终端中已经启动删除应用程序的操作。
具体的,以删除“QQ音乐”为例,以适用于Android系统的智能手机为例,Android系统监听QQ音乐程序中的第一预设文件是否删除。
Step3,在第一预设文件被删除的情况下,判断预设文件是否存在。
具体的,在第一预设文件删除的情况下,检测预设文件是否被删除,其中,该预设文件用于指示删除操作为卸载应用程序的操作。
可选的,在步骤S202中判断预设文件是否被删除之后,本申请实施例提供的卸载应用程序的方法还包括:
步骤S203,在检测预设文件存在的情况下,依据预设条件创建第一预设文件;
本申请上述步骤S203中,在检测预设文件没有被删除之后,即,本申请实施例中检测到预设文件存在的情况下,重新创建第一预设文件。
具体的,预设文件没有被删除,说明第一预设文件的删除动作为用户清理数据时删掉的,而不是在卸载过程。因为,一旦发生卸载流程,预设文件将被删除。
步骤S205,监听创建后的第一预设文件是否被删除,直至检测到预设文件删除,触发清除应用程序中同一用户标识对应的进程数据。
基于步骤S203中重新创建的第一预设文件,本申请上述步骤S205中,Android系统重新监听该第一预设文件是否被删除,直至检测到第二预设文件被删除为止。
可选的,本申请实施例提供的卸载应用程序的方法还包括:
Step1,在触发第二触发进程的情况下,依据第一进程创建第二进程,第二进程为第一进程的子进程;
本申请上述步骤S202中的Step1中,区别于第一触发进程,第二触发进程中,通过依据父进程创建子进程,以及父进程与子进程之间的管道通信,即,父进程为本申请实施例中的第一进程,子进程为本申请实施例中的第二进程。
Step2,建立第一进程与第二进程之间的管道通信;
基于Step1创建的子进程,本申请上述步骤Step2中,父进程与子进程之间建立管道通信,用于通过监听管道的通信状态确定是否有卸载应用程序的时间发生,监听管道通信执行步骤Step3。
Step3,监听管道通信的状态是否由第一状态变为第二状态,其中,第一状态为阻塞状态,第二状态为读状态。
进一步地,可选的,步骤S202中判断预设文件是否被删除包括:
Step1,在监听到管道通信的状态由第一状态变为第二状态的情况下,删除第一进程或第二进程;
Step2,在删除第一进程的情况下,通过第二进程检测第二预设文件是否删除;
Step3,在删除第二进程的情况下,通过第一进程检测第二预设文件是否删除。
本申请上述步骤Step1至Step3中,当卸载开始后,父子进程中其中一个会先被杀,然后管道就会断开,还活着的进程的读操作就会返回,然后就开始检测。
可选的,在步骤S202判断预设文件是否被删除之后,本申请实施例提供的卸载应用程序的方法还包括:
Step4,在删除第一进程的情况下,若第二预设文件存在,则唤醒第一进程。
基于上述步骤S202中的Step1至Step3,在删除第一进程的情况下,若第二预存文件还存在,则通过第二进程唤醒第一进程。
可选的,在步骤S202判断预设文件是否被删除之后,本申请实施例提供的卸载应用程序的方法还包括:
Step4’,在删除第二进程的情况下,若第二预设文件存在,则关闭管道通信;
Step5’,依据第一进程创建第二进程,并建立第一进程与第二进程之间的管道通信;
Step6’,监听管道通信的状态是否由第一状态变为第二状态,直至检测到第二预设文件删除,触发清除同一用户标识对应的进程数据。
本申请上述步骤Step4’至Step6’中,区别于Step4,当第二进程被删除的情况下,第一进程将判断第二预设文件是否存在,若存在,则关闭管道通信,并重新创建第二进程,并建立第一进程与重新创建第二进程之间的管道通信,进而重新监听是否存在卸载事件,直至第二预设文件被删除。
这里本申请实施例中的第一进程与第二进程的管道通信机制与第一触发进程中监听第一预设文件的方式相同,均需要先判断是否存在删除操作,从而进一步的判断第二预设文件(lib目录)是否存在。
可选的,步骤S204中清除应用程序中同一用户标识对应的进程数据包括:
Step1,遍历预设路径下同一用户标识对应的进程目录;
Step2,判断进程目录是否为应用程序对应的目录;
Step3,在判断结果为是的情况下,删除进程目录;
Step4,通过删除进程目录,清除进程目录下全部数据。
本申请上述步骤S206中的Step1至Step4中,进程清理:遍历/proc/下的进程目录。判断是自身应用的目录,就杀掉它。由于是同一个uid,自己的进程可以随意杀死其他自己的进程。文件自清理:执行完进程清理,杜绝了新文件产生后,就开始清理/data/data/<package>以下的所有文件。进程自杀:上面的处理完了,就退出自己进程。
综上,图3是根据本发明实施例一的一种卸载应用程序的方法的流程图,如图3所示,本申请实施例提供的卸载应用程序的方法具体如下:
其中主要分为卸载检测和自清理两步。
一、卸载检测:系统是不会通知被卸载应用本身它是否被卸载的。所以我们通过以下两个触发点,去检测自己是否正在被卸载。
在不同的设备上,这两个触发点会有先后触发顺序,但是不管哪个被触发,执行的自清理逻辑是一样的。
触发点1:文件监听:通过孤儿进程去注册文件删除监听器去监听/data/data/<package>下一个自定义文件的删除事件,卸载开始的时候系统会去删除文件,当监听到事件后就开始检测。
触发点2:进程互唤:通过开一个子进程,子进程与父进程之间建立管道通讯,互相做读操作,然后阻塞在那里。当卸载开始后,父子进程中其中一个会先被杀,然后管道就会断开,还活着的进程的读操作就会返回,然后就开始检测。
当检测被触发后,就检测/data/data/<package>/lib这个目录是否存在。如果不存在就是正在卸载中。因为lib是系统在安装的时候创建的目录,它link到/data/app/<package>/lib/,除卸载以外的情况,它是不会被删除的,而且当Android开始卸载时,第一个删除的文件就是/data/data/<package>/lib。如图4所示,图4是根据本发明实施例一的一种卸载应用程序的方法中卸载检测的流程图。
二、自清理:当上一步判断到自己正在被卸载过程的时候,就开始执行自清理,自清理分下面3步。
进程清理:遍历/proc/下的进程目录。判断是自身应用的目录,就杀掉它。由于是同一个uid,自己的进程可以随意杀死其他自己的进程。
文件自清理:执行完进程清理,杜绝了新文件产生后,就开始清理/data/data/<package>以下的所有文件。
进程自杀:上面的处理完了,就退出自己进程。如图5所示,图5是根据本发明实施例一的一种卸载应用程序的方法中自清理的流程图。
上述两步完成后,就避免了卸载过程中的新文件产生和文件残留。从而解决了下次安装出现INSTALL_FAILED_UID_CHANGED的问题。
本申请实施例提供的卸载应用程序的方法在于通过结合文件事件监听以及进程互唤实现对自身被卸载事件的检测,同时结合自清理来解决卸载残留的问题。通过对应用被卸载操作做检测,当检测到应用被卸载的时候,对自身数据做清理,避免了卸载残留。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的卸载应用程序的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例3
根据本申请实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在移动终端上运行。
图6是根据本发明实施例三的卸载应用程序的装置的结构示意图。
如图6所示,该卸载应用程序的装置可以包括:判断模块62和清除模块64。
其中,判断模块62,用于判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;
清除模块64,用于在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。
本发明实施例提供的卸载应用程序的装置中,通过判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据,达到了避免在卸载过程中产生的异常的目的,从而实现了当检测到应用被卸载的时候,对自身数据做清理,避免了卸载残留的技术效果,进而解决了由于仅能对卸载应用程序发生异常时进行修复,而无法避免在卸载过程中产生的异常的技术问题。
此处需要说明的是,上述判断模块62和清除模块64对应于实施例二中的步骤S202和步骤S204,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请实施例提供的卸载应用程序的装置还包括:进程创建模块和触发模块。
其中,进程创建模块,用于在判断预设文件是否被删除之前,创建第一触发进程和第二触发进程;触发模块,用于依据预设顺序触发第一触发进程和/或第二触发进程。
此处需要说明的是,上述进程创建模块和触发模块对应于实施例二中的步骤S200和步骤S201,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
进一步地,可选的,判断模块62包括:文件创建单元、监听单元和判断单元。
其中,文件创建单元,用于在触发第一触发进程的情况下,依据预设条件创建第一预设文件,其中,预设条件用于监听删除事件是否产生;监听单元,用于监听是否删除第一预设文件,其中,删除第一预设文件用于指示当前进程存在删除操作;判断单元,用于在第一预设文件被删除的情况下,判断预设文件是否存在。
此处需要说明的是,上述文件创建单元、监听单元和判断单元对应于实施例二中的步骤S202中的Step1至Step3,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请实施例提供的卸载应用程序的装置还包括:文件创建模块和循环检测模块。
其中,文件创建模块,用于在判断预设文件是否被删除之后,,在检测第二预设文件存在的情况下,依据预设条件创建第一预设文件;循环检测模块,用于监听创建后的第一预设文件是否被删除,直至检测到第二预设文件删除,触发清除应用程序中同一用户标识对应的进程数据。
此处需要说明的是,上述文件创建模块和循环检测模块对应于实施例二中的步骤S203和步骤S205,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请实施例提供的卸载应用程序的装置包括:进程创建单元、通信单元和监听单元。
其中,进程创建单元,用于在触发第二触发进程的情况下,依据第一进程创建第二进程,第二进程为第一进程的子进程;通信单元,用于建立第一进程与第二进程之间的管道通信;监听单元,用于监听管道通信的状态是否由第一状态变为第二状态,其中,第一状态为阻塞状态,第二状态为读状态。
此处需要说明的是,上述进程创建单元、通信单元和监听单元对应于实施例二中的Step1至Step3,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
进一步地,可选的,判断模块62包括:进程删除单元、第一检测单元和第二检测单元。
其中,进程删除单元,用于在监听到管道通信的状态由第一状态变为第二状态的情况下,删除第一进程或第二进程;第一检测单元,用于在删除第一进程的情况下,通过第二进程检测第二预设文件是否删除;第二检测单元,用于在删除第二进程的情况下,通过第一进程检测第二预设文件是否删除。
此处需要说明的是,上述进程创建单元、通信单元和第一监听单元对应于实施例二中的步骤S202中的Step1至Step3,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请实施例提供的卸载应用程序的装置还包括:唤醒单元。
其中,唤醒单元,用于在判断预设文件是否被删除之后,在删除第一进程的情况下,若第二预设文件存在,则唤醒第一进程。
此处需要说明的是,上述唤醒单元对应于实施例二中的步骤S202中的Step4,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请实施例提供的卸载应用程序的方法还包括:通信控制单元、通信建立单元和循环检测单元。
其中,通信控制单元,用于在判断预设文件是否被删除之后,在删除第二进程的情况下,若第二预设文件存在,则关闭管道通信;通信建立单元,用于依据第一进程创建第二进程,并建立第一进程与第二进程之间的管道通信;循环检测单元,用于监听管道通信的状态是否由第一状态变为第二状态,直至检测到第二预设文件删除,触发清除同一用户标识对应的进程数据。
此处需要说明的是,上述通信控制单元、通信建立单元和循环检测单元对应于实施例二中的步骤S202中的Step4’至Step6’,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
可选的,清除模块64包括:遍历单元、判断单元、删除单元和清除单元。
其中,遍历单元,用于遍历预设路径下同一用户标识对应的进程目录;判断单元,用于判断进程目录是否为应用程序对应的目录;删除单元,用于在判断结果为是的情况下,删除进程目录;清除单元,用于通过删除进程目录,清除进程目录下全部数据。
此处需要说明的是,上述通信控制单元、通信建立单元和循环检测单元对应于实施例二中的步骤S204中的Step1至Step4,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的移动终端中,可以通过软件实现,也可以通过硬件实现。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的卸载应用程序的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断预设文件是否被删除,其中,删除预设文件用于指示删除应用程序的操作为卸载操作;在判断结果为是的情况下,清除应用程序中同一用户标识对应的进程数据。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:创建第一触发进程和第二触发进程;依据预设次序触发第一触发进程和/或第二触发进程,监听第一预设文件是否删除。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:创建第一触发进程和第二触发进程;依据预设顺序触发第一触发进程和/或第二触发进程。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在触发第一触发进程的情况下,依据预设条件创建第一预设文件,其中,预设条件用于监听删除事件是否产生;监听是否删除第一预设文件,其中,删除第一预设文件用于指示当前进程存在删除操作;在第一预设文件被删除的情况下,判断预设文件是否存在。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在预设文件存在的情况下,依据预设条件创建第一预设文件;监听创建后的第一预设文件是否被删除,直至检测到预设文件删除,触发清除应用程序中同一用户标识对应的进程数据。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在触发第二触发进程的情况下,依据第一进程创建第二进程,第二进程为第一进程的子进程;建立第一进程与第二进程之间的管道通信;监听管道通信的状态是否由第一状态变为第二状态,其中,第一状态为阻塞状态,第二状态为读状态。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在监听到管道通信的状态由第一状态变为第二状态的情况下,删除第一进程或第二进程;在删除第一进程的情况下,通过第二进程检测预设文件是否删除;在删除第二进程的情况下,通过第一进程检测预设文件是否删除。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在删除第一进程的情况下,若预设文件存在,则唤醒第一进程。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在删除第二进程的情况下,若预设文件存在,则关闭管道通信;依据依据第一进程创建第二进程,并建立第一进程与第二进程之间的管道通信;监听管道通信的状态是否由第一状态变为第二状态,直至检测到预设文件删除,触发清除同一用户标识对应的进程数据。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:遍历预设路径下同一用户标识对应的进程目录;判断进程目录是否为应用程序对应的目录;在判断结果为是的情况下,删除进程目录;通过删除进程目录,清除进程目录下全部数据。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种移动终端,其特征在于,包括:数据处理器和通信总线,其中,
所述数据处理器,用于通过所述通信总线监听预设文件是否被删除,在监听到所述预设文件删除的情况下,触发清除应用程序中同一用户标识对应的进程数据;
其中,删除所述预设文件用于指示删除所述应用程序的操作为卸载操作;
在判断预设文件是否被删除之前,创建第一触发进程和第二触发进程;依据预设顺序触发所述第一触发进程和/或所述第二触发进程;
在触发所述第二触发进程的情况下,依据第一进程创建第二进程,所述第二进程为所述第一进程的子进程;建立所述第一进程与所述第二进程之间的管道通信;监听管道通信的状态是否由第一状态变为第二状态,其中,所述第一状态为阻塞状态,第二状态为读状态。
2.一种卸载应用程序的方法,其特征在于,包括:
判断预设文件是否被删除,其中,删除所述预设文件用于指示删除应用程序的操作为卸载操作;
在判断结果为是的情况下,清除所述应用程序中同一用户标识对应的进程数据;
在所述判断预设文件是否被删除之前,所述方法还包括:创建第一触发进程和第二触发进程;依据预设顺序触发所述第一触发进程和/或所述第二触发进程;
在触发所述第二触发进程的情况下,依据第一进程创建第二进程,所述第二进程为所述第一进程的子进程;建立所述第一进程与所述第二进程之间的管道通信;监听管道通信的状态是否由第一状态变为第二状态,其中,所述第一状态为阻塞状态,第二状态为读状态。
3.根据权利要求2所述的方法,其特征在于,所述判断预设文件是否被删除包括:
在触发所述第一触发进程的情况下,依据预设条件创建第一预设文件,其中,所述预设条件用于监听删除事件是否产生;
监听是否删除所述第一预设文件,其中,删除所述第一预设文件用于指示当前进程存在删除操作;
在所述第一预设文件被删除的情况下,判断所述预设文件是否存在。
4.根据权利要求3所述的方法,其特征在于,在判断预设文件是否被删除之后,所述方法还包括:
在所述预设文件存在的情况下,依据所述预设条件创建所述第一预设文件;
监听创建后的所述第一预设文件是否被删除,直至检测到所述预设文件删除,触发清除所述应用程序中同一用户标识对应的进程数据。
5.根据权利要求2所述的方法,其特征在于,所述判断所述预设文件是否被删除包括:
在监听到管道通信的状态由第一状态变为第二状态的情况下,删除所述第一进程或所述第二进程;
在删除所述第一进程的情况下,通过所述第二进程检测所述预设文件是否删除;
在删除所述第二进程的情况下,通过所述第一进程检测所述预设文件是否删除。
6.根据权利要求5所述的方法,其特征在于,在判断所述预设文件是否被删除之后,所述方法还包括:
在删除所述第一进程的情况下,若所述预设文件存在,则唤醒所述第一进程。
7.根据权利要求5所述的方法,其特征在于,在判断所述预设文件是否被删除之后,所述方法还包括:
在删除所述第二进程的情况下,若所述预设文件存在,则关闭所述管道通信;
依据所述依据第一进程创建第二进程,并建立所述第一进程与所述第二进程之间的管道通信;
监听管道通信的状态是否由第一状态变为第二状态,直至检测到所述预设文件删除,触发清除同一用户标识对应的进程数据。
8.根据权利要求2至7中任一项所述的方法,其特征在于,所述清除所述应用程序中同一用户标识对应的进程数据包括:
遍历预设路径下同一用户标识对应的进程目录;
判断所述进程目录是否为应用程序对应的目录;
在判断结果为是的情况下,删除所述进程目录;
通过删除所述进程目录,清除所述进程目录下全部数据。
9.一种卸载应用程序的装置,其特征在于,包括:
判断模块,用于判断预设文件是否被删除,其中,删除所述预设文件用于指示删除应用程序的操作为卸载操作;
清除模块,用于在判断结果为是的情况下,清除所述应用程序中同一用户标识对应的进程数据;
在所述判断预设文件是否被删除之前,创建第一触发进程和第二触发进程;依据预设顺序触发所述第一触发进程和/或所述第二触发进程;
在触发所述第二触发进程的情况下,依据第一进程创建第二进程,所述第二进程为所述第一进程的子进程;建立所述第一进程与所述第二进程之间的管道通信;监听管道通信的状态是否由第一状态变为第二状态,其中,所述第一状态为阻塞状态,第二状态为读状态。
CN201610659716.1A 2016-08-11 2016-08-11 卸载应用程序的方法、装置和移动终端 Active CN107729022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610659716.1A CN107729022B (zh) 2016-08-11 2016-08-11 卸载应用程序的方法、装置和移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610659716.1A CN107729022B (zh) 2016-08-11 2016-08-11 卸载应用程序的方法、装置和移动终端

Publications (2)

Publication Number Publication Date
CN107729022A CN107729022A (zh) 2018-02-23
CN107729022B true CN107729022B (zh) 2021-06-08

Family

ID=61200684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610659716.1A Active CN107729022B (zh) 2016-08-11 2016-08-11 卸载应用程序的方法、装置和移动终端

Country Status (1)

Country Link
CN (1) CN107729022B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780292A (zh) * 2022-04-19 2022-07-22 北京凝思软件股份有限公司 基于Linux的用户标识唯一性实现方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591680A (zh) * 2011-12-19 2012-07-18 深圳桑菲消费通信有限公司 一种自动删除与卸载软件关联文件的方法
CN103761178A (zh) * 2014-01-17 2014-04-30 北京奇虎科技有限公司 一种实现应用卸载调查的方法
CN104102516A (zh) * 2014-07-21 2014-10-15 北京金山安全软件有限公司 一种应用程序卸载方法及装置
CN105159710A (zh) * 2012-03-31 2015-12-16 北京奇虎科技有限公司 一种软件卸载方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109111B1 (ko) * 2013-02-21 2020-05-11 삼성전자주식회사 애플리케이션을 관리하는 방법 및 그 전자 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591680A (zh) * 2011-12-19 2012-07-18 深圳桑菲消费通信有限公司 一种自动删除与卸载软件关联文件的方法
CN105159710A (zh) * 2012-03-31 2015-12-16 北京奇虎科技有限公司 一种软件卸载方法及装置
CN103761178A (zh) * 2014-01-17 2014-04-30 北京奇虎科技有限公司 一种实现应用卸载调查的方法
CN104102516A (zh) * 2014-07-21 2014-10-15 北京金山安全软件有限公司 一种应用程序卸载方法及装置

Also Published As

Publication number Publication date
CN107729022A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN106997314B (zh) 用于分布式系统的异常处理方法、装置及系统
TWI628588B (zh) 內存清理系統、方法及終端設備
CN109086079B (zh) 一种存储设备挂载管理方法及装置
CN103927239A (zh) 一种终端设备的系统恢复方法及装置
CN102681874B (zh) 一种确保软件正常运行的方法及装置
CN102799499B (zh) 车载Android设备系统恢复的方法及车载Android设备
CN105302711A (zh) 一种应用修复方法、装置及终端
CN107943501A (zh) 嵌入式设备升级方法、装置、计算机设备和存储介质
CN109324918A (zh) 应用程序异常的处理方法及装置、终端及存储介质
CN102722669B (zh) 操作系统的完整性验证方法
CN115794472A (zh) 芯片的错误收集及错误处理方法、装置及存储介质
CN103984585A (zh) 一种Linux内核可热插拨内核模块运行时升级方法
CN107729022B (zh) 卸载应用程序的方法、装置和移动终端
CN108897646B (zh) 一种bios芯片的切换方法及基板管理控制器
CN114675998A (zh) 一种监控定时快照任务的方法、装置、设备及介质
CN107203417B (zh) 一种数据清理方法、相关装置及电子设备
CN108256311B (zh) 一种授权认证方法、装置及电子设备
CN105224416B (zh) 修复方法及相关电子装置
CN113032183A (zh) 系统管理方法、装置、计算机设备和存储介质
CN111371642B (zh) 网卡故障检测方法、装置、设备及存储介质
CN111147542A (zh) 一种免密访问的设置方法、装置、设备及介质
CN110968456A (zh) 分布式存储系统中故障磁盘的处理方法及装置
CN112925675B (zh) 用于小程序的恢复方法和装置
CN113778763B (zh) 一种三方接口服务故障智能切换方法及系统
CN106528248B (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