用于自动选择应用安装位置的方法和移动终端的制作方法
【专利摘要】本公开提供了一种在移动终端处执行的用于自动选择应用安装位置的方法和相应移动终端。该方法包括:(a)在检测到应用安装事件的情况下,接管相应的应用安装过程;(b)获取多个存储空间各自的空闲容量;以及(c)根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。该移动终端包括:应用安装接管单元,用于在检测到应用安装事件的情况下,接管相应的应用安装过程;空闲容量获取单元,用于获取多个存储空间各自的空闲容量;以及目标空间选择单元,用于根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。
【专利说明】用于自动选择应用安装位置的方法和移动终端
【技术领域】
[0001]本公开总体上涉及移动终端的应用管理领域,更具体地涉及用于自动选择应用安装位置的方法和移动终端。
【背景技术】
[0002]作为移动终端的重要组成部分,目前存在海量的第三方应用(app)可供用户选择安装。在移动终端上安装第三方应用的时候,通常通过两种方式来选择应用安装位置进行安装。第一种方式是缺省在终端的系统内存中进行安装,而第二种方式是依据用户预先设定的存储位置信息来进行应用程序的安装。这两种方式都是通过预先设定存储位置的方式来进行应用的安装。一旦开始进行安装过程,应用安装程序将根据之前的设置在指定存储位置进行应用的整个安装过程。
[0003]尽管这两种通过预先设定应用安装、使用和存储的位置的方式简洁清晰,但是很多终端用户因为缺乏专业知识或相关意识,通常很少会去操作和改变缺省存储位置或自主选择存储位置。而这种集中在某个固定存储位置上进行应用安装的做法,最终会导致存储空间由于应用程序的持续安装而发生可用存储空间不足,并进而导致后续应用程序安装失败的情况。
【发明内容】
[0004]为了解决上述问题,提供了根据本发明的用于自动选择应用安装位置的方法和相应移动终端。
[0005]根据本发明的第一方面,提供了一种在移动终端处执行的用于自动选择应用安装位置的方法。该方法包括:(a)在检测到应用安装事件的情况下,接管相应的应用安装过程;(b)获取多个存储空间各自的空闲容量;以及(C)根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。
[0006]在一些实施例中,所述多个存储空间至少包括:系统存储空间和外部存储空间。
[0007]在一些实施例中,步骤(C)包括:选择所述多个存储空间中具有最大空闲容量的存储空间作为目标存储空间。
[0008]在一些实施例中,所述方法还包括:(d)获取所述目标存储空间的二级目录统计信息;以及(e)选择具有最小二级目录统计信息的路径作为目标存储位置。
[0009]在一些实施例中,所述方法还包括:(f)验证所述目标存储位置的基本合法性,如果所述目标存储位置不合法,则选择具有次小二级目录统计信息的路径作为目标存储位置,并重复步骤(f);如果所述目标存储位置合法,则使用所述目标存储位置继续执行所述应用安装过程。
[0010]在一些实施例中,所述方法还包括)选择所述目标存储空间中的缺省路径作为目标存储位置。
[0011]在一些实施例中,所述方法还包括:(g)记录所述应用安装过程中的存储空间统计数据;以及(h)将所述存储空间统计数据存储在预定日志文件中。
[0012]在一些实施例中,步骤(a)还包括:(al)由所述终端启动时加载的应用安装监测模块来监测是否发生应用安装事件;以及(a2)在监测到发生所述应用安装事件的情况下,通知安装过程接管模块接管相应的应用安装过程。
[0013]在一些实施例中,所述通知是通过本地套接字来实现的。
[0014]根据本发明的第二方面,提供了一种用于自动选择应用安装位置的移动终端。该移动终端包括:应用安装接管单元,用于在检测到应用安装事件的情况下,接管相应的应用安装过程;空闲容量获取单元,用于获取多个存储空间各自的空闲容量;以及目标空间选择单元,用于根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。
[0015]在一些实施例中,所述多个存储空间至少包括:系统存储空间和外部存储空间。
[0016]在一些实施例中,所述目标空间选择单元还用于:选择所述多个存储空间中具有最大空闲容量的存储空间作为目标存储空间。
[0017]在一些实施例中,所述移动终端还包括:目录信息获取单元,用于获取所述目标存储空间的二级目录统计信息;以及目标位置选择单元,用于选择具有最小二级目录统计信息的路径作为目标存储位置。
[0018]在一些实施例中,所述移动终端还包括:合法性验证单元,用于验证所述目标存储位置的基本合法性,如果所述目标存储位置不合法,则选择具有次小二级目录统计信息的路径作为目标存储位置,并重复步骤(f);如果所述目标存储位置合法,则使用所述目标存储位置继续执行所述应用安装过程。
[0019]在一些实施例中,所述移动终端还包括:缺省位置选择单元,用于选择所述目标存储空间中的缺省路径作为目标存储位置。
[0020]在一些实施例中,所述移动终端还包括:统计数据记录单元,用于记录所述应用安装过程中的存储空间统计数据;以及日志文件存储单元,用于将所述存储空间统计数据存储在预定日志文件中。
[0021]在一些实施例中,所述应用安装接管单元还用于:(al)由所述终端启动时加载的应用安装监测模块来监测是否发生应用安装事件;以及(a2)在监测到发生所述应用安装事件的情况下,通知安装过程接管模块接管相应的应用安装过程。
[0022]在一些实施例中,所述通知是通过本地套接字来实现的。
[0023]通过使用本公开实施例的用于自动选择应用安装位置的方法和移动终端,至少可以解决现有技术中应用经常集中在某个存储位置,导致存储空间不足的问题。
【专利附图】
【附图说明】
[0024]通过下面结合【专利附图】
【附图说明】本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
[0025]图1是示出了根据本公开实施例的用于自动选择应用安装位置的客户端的功能模块的示例框图。
[0026]图2是示出了根据本公开实施例的用于自动选择应用安装位置的示例流程。
[0027]图3是示出了根据本公开实施例的在移动终端处执行的用于自动选择应用安装位置的示例方法的流程图。
[0028]图4是示出了根据本公开实施例的用于执行图3所示方法的示例移动终端的框图。
【具体实施方式】
[0029]下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA,CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。此外,本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)1S、Windows Phone、Symbian (塞班)、Android(安卓)等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
[0030]图1示出了根据本公开实施例的用于自动选择应用安装位置的客户端的功能模块框图,且图2示出了根据本公开实施例的用于自动选择应用安装位置的示例流程。该流程可以例如在图4所示的移动终端100上执行。在图1和图2所示实施例中,为了在移动终端100上自动选择应用安装位置,可以将根据本公开实施例的应用安装位置自动选择客户端(以下简称为客户端)安装在移动终端100上。客户端可以由用户以软件的形式自行安装在移动终端100中,或者可以由生产厂商以硬件或固件的形式安装在移动终端100中。在一些实施例中,客户端可以是例如在用户购买了移动终端100之后从网络中下载的专门用于本公开的应用软件。在另一些实施例中,客户端可以是例如由生产厂商以固件或硬件形式预先安装在移动终端100中的应用程序。在又一些实施例中,客户端可以是由生产厂商生产的硬件模块或移动终端100本身。
[0031]以下,将以客户端是安卓平台上的app为例,并结合图1和图2来详细介绍根据本公开实施例的自动选择应用安装位置的方法的示例流程,然而本公开不限于此。
[0032]此外,在以下描述中,以移动终端100具有两个存储空间(例如,系统存储空间(例如,移动终端100自带的闪存)和外部存储空间(例如,插入移动终端100中的SD卡))为例来说明本公开实施例。然而应当注意:移动终端100的存储空间不限于上述两个,还可以包括其它存储空间,例如附加的一个或多个SD卡、其他外部存储器、网络存储空间(例如,NFS等网络文件系统)等。本公开的原理同样适用于这些场景。
[0033]总体上,本申请的发明构思在于通过计算移动终端的各存储空间的大小,以这些数据为基本依据来动态选择应用程序的安装存储位置,而不需要用户感知,便可完成最优安装存储位置的选择。
[0034]图2所示的流程可以由图1所示的客户端(例如,app)中包括的应用安装操作功能(即,Applicat1n Installat1n Operat1n,以下简称为A1)和存储位置模块(即,Storage Locat1n Module,以下简称为SLM)这两部分协同实现。
[0035]在一些实施例中,A1可以采用基于Java和C++的JNI技术和Android NDK和SDK来实现,并以系统后台服务和内核模块相结合的方式运行。在一些实施例中,A1可以包括应用安装监测(即,Applicat1n Installat1n Monitor,以下简称为AIM)和安装过程接管(即,Installat1n Switch Module,以下简称为ISM)两部分组成。
[0036]此外,在一些实施例中,SLM可以采用基于C++的Android NDK以动态库(.so)方式来实现。其可以被A1调用。在一些实施例中,SLM可以包括存储空间计算(即,StorageSpace Computat1n,以下简称为 SSC)和存储位置选择(即,Storage Locat1n Decis1n,以下简称为SLD)两部分功能。
[0037]接下来,将结合图1和图2来详细描述用于自动选择应用安装位置的具体示例流程。
[0038]在一些实施例中,在移动终端100的操作系统启动加载基本服务期间,其可以调用并启用客户端的A1功能。A1首先可以加载ISM模块,然后启动AIM服务。在另一些实施例中,加载顺序可以不同,例如先启动AIM,在加载ISM,本发明不限于此。当AIM监测到应用安装行为时,其可以通过本地套接字(SOCKET)向ISM模块发送应用安装动作接管请求(即,Installat1n Switch Request,以下简称为 ISR)。
[0039]当ISM模块收到ISR时,其可以接管应用的后续安装过程。在一个实施例中,其可以通过hook方式来接管应用安装程序的工作。在一个实施例中,在应用安装过程中,可以通过使用hook技术对例如安卓系统中的scanDirL1、scanPackageL1、scanPackageL1、mlnstaller.1nstall等四个关键API进行处理逻辑的更改,在了解安装包信息结构基础上实现对应用安装包复制安装过程的全程控制。当然,本公开不限于此。
[0040]接下来,ISM可以向SLM发送存储位置请求(即,Storage Locat1n Request,以下简称为SLR)。当SLM接收到SLR时,其可以调用SSC。然后,SSC可以对移动终端100的当前系统存储空间(即,System Storage Space,以下简称为SSS)和外部存储空间(S卩,OutsideStorage,以下简称为0SP)进行统计,以分别获取空闲系统存储空间(即,Free SSS,以下简称为FSSS)和系统存储空间二级目录统计信息(即,System Storage Layer2DirectoryStatistic,以下简称为SSLDS)、空闲外部存储空间(即,Free 0SP,以下简称为F0SP)和外部存储空间二级目录结构(即,Outside Storage Layer2Directory Statistic,以下简称为0SLDS),并可以将统计结果传递给SLD。在一些实施例中,二级目录统计信息可以是对存储空间默认存储位置下的二级目录的统计信息。例如,其可以通过对某一存储空间的根目录下的所有文件/文件夹(目录)进行遍历并判断其是否为文件夹(目录),来统计根目录下的二级目录信息。
[0041]在SLD收到各数据之后,可以首先对FSSS和FOSP进行比较。在一些实施例中,SLD可以用可用空间数值大小作为比较依据,选择数值较大者,作为目标存储空间(即,TargetStorage Space,以下简称为 TSS)。
[0042]SLD可以依据TSS来选择SSLDS或OSLDS。在一些实施例中,如果TSS指示选择SSLDS,则可以选择SSLDS中数值最小的,并将其对应存储路径信息作为目标存储位置(即,Target Storage Locat1n,以下简称为TSL)。在另一些实施例中,如果TSS指示选择0SLDS,则可以选择OSLDS中数值最小的,并将其对应存储路径信息作为目标存储位置(TSL)。无论如何,之后SLD可以将TSL作为结果回传给ISM。
[0043]当ISM获取到TSL时,其可以对TSL做基本合法性验证。例如,可以检验该TSL是否可写入/读取、该TSL是否满足当前应用安装的要求以及其他可能的合法性检查。
[0044]如果验证通过,则ISM可以将TSL作为应用进行安装时的目标存储位置进行后续正常安装过程,直至安装完毕。否则,可以重新向SLM发送SLR以请求新的目标存储位置(TSL)。当SLM接到要求获取新的目标存储位置时,其重复上述过程,并得到具有次小SSLDS或OSLDS数据的路径作为TSL,向ISM返回,以重复进行合法性检查。
[0045]该过程重复直到ISM得到合法性检查成功的TSL或者直到SLM(或SLD)无法得到可用的TSL作为返回结果。前者的情况下,可以正常进行后续应用安装过程。在后者的情况下,向用户返回错误提示,以告知用户出现应用安装错误,并可能提供错误原因。
[0046]此外,在另一些实施例中,也可以不根据SSLDS和/或OSLDS来选择目标存储位置,而是采用在相应存储空间中预先指定的缺省路径作为目标存储位置。换言之,在该情况下,只要根据存储空间的大小确定目标存储空间即可进行后续的应用安装过程。
[0047]此外,在一些实施例中,应用的整个安装过程中的存储空间统计数据可以通过SLD来调用系统日志接口,以明文方式存储到指定位置的指定文件中。在一个实施例中,该指定位置的指定文件可以是“/sdcard/sld/spaceStatistic”。当然,本公开不限于此,也可以用加密方式存储到另一个文件中。
[0048]至此,已结合图1和图2详细描述了根据本公开实施例的用于自动选择应用安装位置的流程。通过使用该流程,至少可以解决现有技术中应用经常集中在某个存储位置,导致存储空间不足的问题。
[0049]图3是示出了根据本发明实施例的在移动终端100中执行的用于自动选择应用安装位置的方法200的流程图。如图3所示,方法200可以包括步骤S210、S220和S230。根据本发明,方法200的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。在一些实施例中,方法200可以由终端100和/或其上安装的客户端来执行。
[0050]图4是示出了根据本发明实施例的用于自动选择应用安装位置的示例移动终端100的框图。如图4所示,移动终端100可以包括:应用安装接管单元110、空闲容量获取单元120和目标空间选择单元130。
[0051]应用安装接管单元110可以用于在检测到应用安装事件的情况下,接管相应的应用安装过程。应用安装接管单元110可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以在检测到应用安装事件的情况下,接管相应的应用安装过程。
[0052]空闲容量获取单元120可以用于获取多个存储空间各自的空闲容量。空闲容量获取单元120可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的存储部分(例如,RAM、SD卡、闪存等)相配合,获取多个存储空间各自的空闲容量。
[0053]目标空间选择单元130可以用于根据各个存储空间的空闲容量来选择其中之一作为目标存储空间。目标空间选择单元130可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的存储部分(例如,RAM、SD卡、闪存等)相配合,根据各个存储空间的空闲容量来选择其中之一作为目标存储空间,并协助进行后续的应用安装工作。
[0054]此外,终端100还可以包括图4中未示出的其他单元,例如目录信息获取单元、目标位置选择单元、合法性验证单元、缺省位置选择单元、统计数据记录单元、日志文件存储单元等。在一些实施例中,目录信息获取单元可以用于获取目标存储空间的二级目录统计信息,以及目标位置选择单元可以用于选择具有最小二级目录统计信息的路径作为目标存储位置。在一些实施例中,合法性验证单元可以用于验证目标存储位置的基本合法性,如果目标存储位置不合法,则选择具有次小二级目录统计信息的路径作为目标存储位置,并重复该验证步骤;如果目标存储位置合法,则使用目标存储位置继续执行应用安装过程。在一些实施例中,缺省位置选择单元可以用于选择目标存储空间中的缺省路径作为目标存储位置。在一些实施例中,统计数据记录单元可以用于记录应用安装过程中的存储空间统计数据,以及日志文件存储单元可以用于将存储空间统计数据存储在预定日志文件中。
[0055]以下将结合图3和图4,对根据本公开实施例的在移动终端100上执行的用于自动选择应用安装位置的方法200和终端100进行详细的描述。
[0056]方法200开始于步骤S210,在步骤S210中,可以由移动终端100的应用安装接管单元110在检测到应用安装事件的情况下,接管相应的应用安装过程。
[0057]在步骤S220中,可以由移动终端100的空闲容量获取单元120获取多个存储空间各自的空闲容量。
[0058]在步骤S230中,可以由移动终端100的目标空间选择单元130根据空闲容量来选择多个存储空间之一作为目标存储空间。
[0059]在一些实施例中,多个存储空间至少可以包括:系统存储空间和外部存储空间。
[0060]在一些实施例中,步骤S230可以包括:选择多个存储空间中具有最大空闲容量的存储空间作为目标存储空间。
[0061]在一些实施例中,方法200还可以包括:(S240)获取目标存储空间的二级目录统计信息;以及(S250)选择具有最小二级目录统计信息的路径作为目标存储位置。
[0062]在一些实施例中,方法200还可以包括:(S260)验证目标存储位置的基本合法性,如果目标存储位置不合法,则选择具有次小二级目录统计信息的路径作为目标存储位置,并重复步骤S260 ;如果目标存储位置合法,则使用目标存储位置继续执行应用安装过程。
[0063]在一些实施例中,方法200还可以包括:(S240')选择目标存储空间中的缺省路径作为目标存储位置。
[0064]在一些实施例中,方法200还可以包括:(S270)记录应用安装过程中的存储空间统计数据;以及(S280)将存储空间统计数据存储在预定日志文件中。
[0065]在一些实施例中,步骤S210还可以包括:(S212)由终端100启动时加载的应用安装监测模块来监测是否发生应用安装事件;以及(S214)在监测到发生应用安装事件的情况下,通知安装过程接管模块接管相应的应用安装过程。
[0066]在一些实施例中,通知可以是通过本地套接字来实现的。
[0067]至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
【权利要求】
1.一种在移动终端处执行的用于自动选择应用安装位置的方法,包括: (a)在检测到应用安装事件的情况下,接管相应的应用安装过程; (b)获取多个存储空间各自的空闲容量;以及 (C)根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。
2.根据权利要求1所述的方法,其中,所述多个存储空间至少包括:系统存储空间和外部存储空间。
3.根据权利要求1所述的方法,其中,步骤(c)包括: 选择所述多个存储空间中具有最大空闲容量的存储空间作为目标存储空间。
4.根据权利要求1所述的方法,还包括: (d)获取所述目标存储空间的二级目录统计信息;以及 (e)选择具有最小二级目录统计信息的路径作为目标存储位置。
5.根据权利要求4所述的方法,还包括: (f)验证所述目标存储位置的基本合法性, 如果所述目标存储位置不合法,则选择具有次小二级目录统计信息的路径作为目标存储位置,并重复步骤(f); 如果所述目标存储位置合法,则使用所述目标存储位置继续执行所述应用安装过程。
6.根据权利要求1所述的方法,还包括: (er )选择所述目标存储空间中的缺省路径作为目标存储位置。
7.根据权利要求1所述的方法,还包括: (g)记录所述应用安装过程中的存储空间统计数据;以及 (h)将所述存储空间统计数据存储在预定日志文件中。
8.根据权利要求1所述的方法,其中,步骤(a)还包括: (al)由所述终端启动时加载的应用安装监测模块来监测是否发生应用安装事件;以及 (a2)在监测到发生所述应用安装事件的情况下,通知安装过程接管模块接管相应的应用安装过程。
9.根据权利要求8所述的方法,其中,所述通知是通过本地套接字来实现的。
10.一种用于自动选择应用安装位置的移动终端,包括: 应用安装接管单元,用于在检测到应用安装事件的情况下,接管相应的应用安装过程; 空闲容量获取单元,用于获取多个存储空间各自的空闲容量;以及目标空间选择单元,用于根据所述空闲容量来选择所述多个存储空间之一作为目标存储空间。
【文档编号】G06F3/06GK104461655SQ201410836356
【公开日】2015年3月25日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】陈继 申请人:北京网秦天下科技有限公司