一种设备应用程序迁移方法和装置制造方法

文档序号:6514657阅读:149来源:国知局
一种设备应用程序迁移方法和装置制造方法
【专利摘要】本发明实施例公开了一种设备应用程序迁移方法,所述方法包括:获取针对目标应用程序的迁移指令;调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡;调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。本发明实施例还公开了一种设备应用程序迁移装置。采用本发明,可以帮助用户快速修改应用程序的安装位置,为用户设备节省了系统存储卡的存储空间。
【专利说明】一种设备应用程序迁移方法和装置

【技术领域】
[0001]本发明涉及电子【技术领域】,尤其涉及一种设备应用程序迁移方法和装置。

【背景技术】
[0002]在现有的移动设备例如安卓系统设备中,设备内置存储空间一般都较为有限,然而应用程序开发者或操作系统大多都因各种原因默认或优先会将应用程序安装在设备内置存储空间中,造成设备内置存储空间不足的问题,而现有技术中若希望更改设备的安装位置则需要修改设备的ROM (Read-Only Memory,只读内存,这里指设备固件)信息,这需要设备生产商的技术支持,用户难以独立完成。


【发明内容】

[0003]有鉴于此,本发明实施例提供一种设备应用程序迁移方法和装置,可实现将设备中的应用程序迁移至外扩展存储卡。
[0004]为了解决上述技术问题,本发明实施例提供了一种设备应用程序迁移方法,所述方法包括:
[0005]获取针对目标应用程序的迁移指令;
[0006]调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡;
[0007]调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
[0008]相应地,本发明实施例还提供了一种设备应用程序迁移装置,所述设备应用程序迁移装置包括:
[0009]安装位置设置模块,用于调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡;
[0010]程序迁移模块,用于调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
[0011]本发明实施例通过调用设备的包管理服务实现将目标应用程序迁移至设备扩展存储卡中,可以帮助用户快速修改应用程序的安装位置,为用户设备节省了系统存储卡的存储空间。

【专利附图】

【附图说明】
[0012]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1是本发明实施例中的一种设备应用程序迁移方法的流程示意图;
[0014]图2是本发明另一实施例中的设备应用程序迁移方法的流程示意图;
[0015]图3是本发明实施例中的一种设备应用程序迁移装置的结构示意图。

【具体实施方式】
[0016]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017]图1是本发明实施例中的一种设备应用程序迁移方法的流程示意图,如图所示本实施例中的设备应用程序迁移方法流程可以包括:
[0018]S1I,获取针对目标应用程序的迁移指令。
[0019]具体的,用户可以通过设备的输入设备指定设备中的一个或多个可迁移应用程序作为目标应用程序,并向设备发出针对目标应用程序的迁移指令。
[0020]S102,调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡。
[0021]具体的,以Android系统设备为例,包管理服务PackageManagerService是一个系统的本地服务,主要负责维护系统应用的修改应用程序安装位置、安装、删除以及信息的提取等功能。在获取到系统超级权限(例如root权限)后,可以通过“pm”命令(Package Manager,包管理命令)实现与PackageManagerService进行通讯,从而调取PackageManagerService的相关功能。本步骤中为通过执行设置应用程序默认安装位置的pm命令,例如“pm setInstalILocat1n2,>, 2表示扩展卡(例如设备的SDCard, SecureDigital Memory Card安全数码内存卡)中指定位置的路径信息,从而可以调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡中的指定位置,例如SD卡中的app/目录下。
[0022]S103,调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
[0023]具体的,本实施例中的设备可以通过执行覆盖安装应用程序的pm命令,例如pminstall-r PackageName,就可以调用设备的包管理服务的包安装接口将目标应用程序迁移至扩展存储卡中的指定位置(例如SD卡中的app/目录下),其中PackageName为目标应用程序的包名称。进一步的,设备可以判断系统中是否已安装所述目标应用程序,若当前未安装所述目标应用程序,则执行将所述目标应用程序安装至扩展存储卡中的指定位置,若当前所述目标应用程序已安装,则判断当前目标应用程序的安装位置是否与S102设置的默认安装位置相同,若相同则丢弃,若不相同则将目标应用程序从当前安装位置迁移至扩展存储卡中的指定位置,包括应用程序的执行程序文件以及用户数据等。进而,若SlOl中获取到的迁移指令针对多个目标应用程序,S103可以同时针对多个目标应用程序执行,或重复执行S103步骤即可实现将多个目标应用程序迁移至扩展存储卡中。
[0024]图2是本发明另一实施例中的设备应用程序迁移方法的流程示意图,如图所示本实施例中的设备应用程序迁移方法流程包括:
[0025]S201,获取设备操作系统的超级权限。
[0026]具体的,例如在破解的Android手机中,可以通过执行su命令获取系统超级权限(或称为root权限)。进一步的,本实施例中在获取到系统的超级权限后,可以启动一个指令转译模块负责将依据JAVA开发语言定义的pm命令转化为系统可识别的shell脚本。
[0027]S202,调用设备的包管理服务的包信息提取接口,获取所述设备中的所有可迁移应用程序。
[0028]具体的,设备可以调用设备的包管理服务PackageManagerService查找系统中所有应用程序的安装信息,例如获取系统根目录data文件夹下app文件夹中的所有应用程序,并剔除预先设定的不可移动的应用程序或根据ROM信息确定不可移动的应用程序,从而得到设备中的所有可迁移应用程序,进而可以在设备Π界面中显示所述可迁移应用程序的列表。需要指出的是,在其他可选实施例中,执行步骤S202也可以不需超级权限,SPS202?S203与S201之间的顺序可以调换,不影响本发明的实现。
[0029]S203,获取用户在所述可迁移应用程序中选择的至少一个目标应用程序。
[0030]具体的,设备可以通过用户输入设备获取用户在所述可迁移应用程序中选择的至少一个目标应用程序,例如在Π界面中显示所述可迁移应用程序的列表中选择的至少一个目标应用程序。
[0031 ] S204,获取针对目标应用程序的迁移指令。
[0032]S205,调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡。
[0033]具体的,本步骤需要在S201获取到系统超级权限(例如root权限)后,设备可以通过 “pm” 命令实现与 PackageManagerService 进行通讯,从而调取 PackageManagerService的相关功能。本步骤中为通过执行设置应用程序默认安装位置的Pm命令,例如“pmsetInstallLocat1n2”,2表不扩展卡(例如设备的SDCard)中指定位置的路径信息,从而可以调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡中的指定位置,例如SD卡中的app/目录下。进一步可选的,设备可以通过S201中启动的指令转译模块负责将Pm命令转化为系统可识别的shell脚本。
[0034]S206,调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
[0035]具体的,本实施例中的设备可以通过执行覆盖安装应用程序的pm命令,例如pminstall-r PackageName,就可以调用设备的包管理服务的包安装接口将目标应用程序迁移至扩展存储卡中的指定位置(例如SD卡中的app/目录下),其中PackageName为目标应用程序的包名称。进一步的,设备可以判断系统中是否已安装所述目标应用程序,若当前未安装所述目标应用程序,则执行将所述目标应用程序安装至扩展存储卡中的指定位置,若当前所述目标应用程序已安装,则判断当前目标应用程序的安装位置是否与S205设置的默认安装位置相同,若相同则丢弃,若不相同则将目标应用程序从当前安装位置迁移至扩展存储卡中的指定位置,包括应用程序的执行程序文件以及用户数据等。
[0036]S207,调用设备的包管理服务恢复设置前的应用程序默认安装位置。
[0037]具体的,在完成所有目标应用程序的迁移后,可以恢复S205之前的系统应用程序默认安装位置。
[0038]图3是本发明实施例中的一种设备应用程序迁移装置的结构示意图。本发明实施例中的设备应用程序迁移装置可以实现在手机、平板电脑、电子阅读器、车载终端等移动电子设备中,如图所示本发明实施例中的设备应用程序迁移装置至少可以包括:
[0039]迁移指令获取模块310,用于获取针对目标应用程序的迁移指令。
[0040]具体实现中,迁移指令获取模块310可以键盘、触屏等输入设备获取用户指定的设备中的一个或多个可迁移应用程序作为目标应用程序,并获取用户输入的针对目标应用程序的迁移指令。
[0041]安装位置设置模块320,用于调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡.
[0042]具体实现中,以Android系统设备为例,包管理服务PackageManagerService是一个系统的本地服务,主要负责维护系统应用的修改应用程序安装位置、安装、删除以及信息的提取等功能。在获取到系统超级权限(例如root权限)后,安装位置设置模块320可以通过“pm”命令(Package Manager,包管理命令)实现与PackageManagerService进行通讯,从而调取PackageManagerService的相关功能。本步骤中为通过执行设置应用程序默认安装位置的pm命令,例如“pm setInstalILocat1n2,>, 2表示扩展卡(例如设备的SDCard,Secure Digital Memory Card安全数码内存卡)中指定位置的路径信息,从而可以调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡中的指定位置,例如SD卡中的app/目录下。进而在可选实施例中,当后续程序迁移模块330完成对所有目标应用程序的迁移后,安装位置设置模块320可以调用设备的包管理服务恢复设置前的应用程序默认安装位置。
[0043]程序迁移模块330,用于调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
[0044]具体的,程序迁移模块330可以通过执行覆盖安装应用程序的pm命令,例如pminstall-r PackageName,就可以调用设备的包管理服务的包安装接口将目标应用程序迁移至扩展存储卡中的指定位置(例如SD卡中的app/目录下),其中PackageName为目标应用程序的包名称。进一步的,程序迁移模块330可以判断系统中是否已安装所述目标应用程序,若当前未安装所述目标应用程序,则执行将所述目标应用程序安装至扩展存储卡中的指定位置,若当前所述目标应用程序已安装,则判断当前目标应用程序的安装位置是否与安装位置设置模块320设置的默认安装位置相同,若相同则丢弃,若不相同则将目标应用程序从当前安装位置迁移至扩展存储卡中的指定位置,包括应用程序的执行程序文件以及用户数据等。进而,若迁移指令获取模块310获取到的迁移指令针对多个目标应用程序,程序迁移模块330可以同时针对多个目标应用程序执行,或重复依次针对每个目标应用程序进行迁移即可实现将多个目标应用程序迁移至扩展存储卡中。进而在可选实施例中,程序迁移模块330在完成所有目标应用程序的迁移后,可以触发安装位置设置模块310恢复系统应用程序默认安装位置。
[0045]可选的,本发明实施例中的设备应用程序迁移装置进一步还可以包括:
[0046]应用程序筛选模块340,用于调用设备的包管理服务的包信息提取接口,获取所述设备中的所有可迁移应用程序。
[0047]具体实现中,应用程序筛选模块340可以调用设备的包管理服务PackageManagerService查找系统中所有应用程序的安装信息,例如获取系统根目录data文件夹下app文件夹中的所有应用程序,并剔除预先设定的不可移动的应用程序或根据ROM信息确定不可移动的应用程序,从而得到设备中的所有可迁移应用程序,进而可以在设备Π界面中显示所述可迁移应用程序的列表。
[0048]目标程序选择模块350,用于获取用户在所述可迁移应用程序中选择的至少一个目标应用程序。
[0049]具体实现中,目标程序选择模块350可以通过用户输入设备获取用户在所述可迁移应用程序中选择的至少一个目标应用程序,例如在Π界面中显示所述可迁移应用程序的列表中选择的至少一个目标应用程序。
[0050]可选的,本发明实施例中的设备应用程序迁移装置进一步还可以包括:
[0051]超级权限获取模块360,用于获取设备操作系统的超级权限。
[0052]具体的,本发明实施例中设备应用程序迁移装置的安装位置设置模块320、和程序迁移模块330在某些场景下只有在获取到了设备操作系统的超级权限的前提下方能调用到PackageManagerService的相应功能接口。具体实现中,例如在破解的Android手机中,可以通过执行su命令获取系统超级权限(或称为root权限)。进一步的,本实施例中在获取到系统的超级权限后,可以启动一个指令转译模块负责将依据JAVA开发语言定义的pm命令转化为系统可识别的shell脚本。
[0053]本发明实施例通过调用设备的包管理服务实现将目标应用程序迁移至设备扩展存储卡中,可以帮助用户快速修改应用程序的安装位置,为用户设备节省了系统存储卡的存储空间。
[0054]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0055]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种设备应用程序迁移方法,其特征在于,所述方法包括: 获取针对目标应用程序的迁移指令; 调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡; 调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
2.如权利要求1所述的设备应用程序迁移方法,其特征在于,所述调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中之后还包括: 调用设备的包管理服务恢复设置前的应用程序默认安装位置。
3.如权利要求1所述的设备应用程序迁移方法,其特征在于,所述方法还包括: 调用设备的包管理服务的包信息提取接口,获取所述设备中的所有可迁移应用程序; 获取用户在所述可迁移应用程序中选择的至少一个目标应用程序。
4.如权利要求1所述的设备应用程序迁移方法,其特征在于,所述调用设备的包管理服务包括: 通过执行包管理命令调用设备的包管理服务。
5.如权利要求1?4中任一项所述的设备应用程序迁移方法,其特征在于,所述调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡中的指定位置之前还包括: 获取设备操作系统的超级权限。
6.一种设备应用程序迁移装置,其特征在于,所述设备应用程序迁移装置包括: 迁移指令获取模块,用于获取针对目标应用程序的迁移指令; 安装位置设置模块,用于调用设备的包管理服务将当前应用程序默认安装位置设置为扩展存储卡; 程序迁移模块,用于调用设备的包管理服务的包安装接口将目标应用程序迁移至所述扩展存储卡中。
7.如权利要求6所述的设备应用程序迁移装置,其特征在于,所述安装位置设置模块还用于: 在所述程序迁移模块完成在所述扩展存储卡中安装目标应用程序后,调用设备的包管理服务恢复设置前的应用程序默认安装位置。
8.如权利要求6所述的设备应用程序迁移装置,其特征在于,所述设备应用程序迁移装置还包括: 应用程序筛选模块,用于调用设备的包管理服务的包信息提取接口,获取所述设备中的所有可迁移应用程序; 目标程序选择模块,用于获取用户在所述可迁移应用程序中选择的至少一个目标应用程序。
9.如权利要求6所述的设备应用程序迁移装置,其特征在于,所述调用设备的包管理服务包括: 通过执行包管理命令调用设备的包管理服务。
10.如权利要求6?9中任一项所述的设备应用程序迁移装置,其特征在于,所述设备应用程序迁移装置还包括: 超级权限获取模块,用于获取设备操作系统的超级权限。
【文档编号】G06F9/445GK104516753SQ201310465174
【公开日】2015年4月15日 申请日期:2013年9月30日 优先权日:2013年9月30日
【发明者】梁家辉 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1