一种终端设备预装应用的管理方法和终端设备与流程

文档序号:11133649阅读:524来源:国知局
一种终端设备预装应用的管理方法和终端设备与制造工艺

本发明涉及应用管理领域,特别是涉及一种终端设备预装应用的管理方法和终端设备。



背景技术:

终端设备的应用分为系统应用和用户应用,这两者的显著差别是前者是不可卸载的而后者是可卸载的,原因在于系统应用安装于只读属性的系统分区,用户没有权限卸载。而用户应用是安装于具有读写权限的用户数据分区,用户可自行卸载。实际上,还存在一种介于系统应用和用户应用之间的预装应用,所谓预装应用就是预置在系统版本中的应用或者系统升级时升级到终端中的应用(比如QQ、WPS),这些应用是由第三方直接把安装包提供给手机厂商,手机厂商集成到系统版本或升级版本中。严格意义上讲预装应用属于系统应用,但是其又不同于系统应用,因为用户希望预装应用是可卸载的,而第三方希望用户将预装应用卸载后,恢复出厂设置后还能够还原回来。这样问题就出现了,如果预装应用放在系统分区下,则预装应用无法被卸载;如果放在用户数据分区下,用户恢复出厂设置之后,预装应用就彻底丢失了。

针对此类问题,行业通常的做法是在第一次开机过程中将预设在系统分区下的预装应用安装包拷贝到用户数据分区下,在用户数据分区下安装,这样在扫描到用户数据分区的预装应用时就会带有用户应用属性,因此可以被用户卸载。而且,由于安装包同时位于系统分区,恢复出厂设置后,预装应用仍可重新安装。但这种做法的问题是,预装应用安装包的拷贝过程占用开机时间,造成开机时间较长。另外,同一预装应用安装包既占用系统分区的资源又占用用户数据分区的资源,造成空间资源的浪费。针对这一问题,目前做出了以下改进:在系统分区预置预装应用安装包并且在开机扫描时设置成不被扫描,将预装应用安装包链接到用户数据分区,这样开机扫描到用户数据分区时,实际扫描的是预装应用安装包,但由于在用户数据分区进行的扫描,使得预装应用带有用户应用属性,因此可被卸载。由于安装包位于系统分区,恢复出厂设置后,预装应用仍可重新安装。这种方式建立链接过程短,链接速度快,相比于拷贝安装包大大节省开机时间。并且,同一预装应用安装包只占用系统分区资源,不会造成空间资源浪费。

然而,上述方案仍然存在很多问题,例如,终端设备在每一次开机时都要重复建立链接,还是会延长开机时间。



技术实现要素:

本发明提供了一种终端设备预装应用的管理方法和终端设备,以解决每一次开机都需重复建立链接的问题。

为了解决上述问题,本发明公开了一种终端设备预装应用的管理方法,包括以下步骤。

终端设备第一次开机时,在用户数据分区建立用于链接到预装应用安装包的链接文件,所述预装应用安装包预设于系统分区的预装应用目录,所述预装应用目录设置为开机时不被扫描。

设置标识为预设值,所述标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。

当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。

优选地,所述当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值包括:当终端设备升级时,执行升级包中的预设命令,所述预设命令是在升级版本相对原始版本存在新增预装应用安装包时设置的将所述标识恢复为默认值的命令。

优选地,所述当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件之后还包括:当终端设备升级后第一次开机时,判断所述标识是否为默认值;若所述标识为默认值,则在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件,所述新增预装应用安装包预设于所述预装应用目录。

优选地,若所述标识为预设值,则直接获取终端设备第一次开机时建立的链接文件。

优选地,所述预装应用安装包至少为两个,所述链接文件分别与所述预装应用安装包一一对应。

本发明还公开了一种终端设备,包括链接建立单元,用于终端设备第一次开机时,在用户数据分区建立用于链接到预装应用安装包的链接文件,所述预装应用安装包预设于系统分区的预装应用目录,所述预装应用目录设置为开机时不被扫描。

标识设置单元,用于设置标识为预设值,所述标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。

升级单元,用于当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。

优选地,所述升级单元还用于当终端设备升级时,执行升级包中的预设命令,所述预设命令是在升级版本相对原始版本存在新增预装应用安装包时设置的将所述标识恢复为默认值的命令。

优选地,所述终端设备还包括标识判断单元,用于当终端设备升级后第一次开机时,判断所述标识是否为默认值;所述链接建立单元还用于在所述标识为默认值时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件,所述新增预装应用安装包预设于所述预装应用目录。

优选地,所述链接建立单元还用于在所述标识为预设值时,直接获取获取终端设备第一次开机时建立的链接文件。

优选地,所述预装应用安装包至少为两个,所述链接文件分别与所述预装应用安装包一一对应。

与现有技术相比,本发明包括以下优点:

本发明中终端设备第一次开机时,在用户数据分区建立链接文件,链接文件用于链接到预装应用安装包,预装应用安装包预设于系统分区的预装应用目录,预装应用目录设置为开机时不被扫描。然后设置标识为预设值,标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。这样终端设备在非第一次开机时,不用重新建立链接文件,而是直接利用已经建立好的链接文件。当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。当升级版本存在新增预装应用时,如果不将标识恢复为默认值,终端设备就不会在用户数据分区建立对应新增预装应用的新的链接文件,新增预装应用就不能正常安装和使用,因此本发明能避免每一次开机都需重复建立链接的同时还能保证升级版本存在新增预装应用时新增预装应用能正常使用。

附图说明

图1是本发明一实施例的终端设备预装应用的管理方法流程图;

图2是本发明另一实施例的终端设备预装应用的管理方法流程图;

图3是本发明再一实施例的终端设备预装应用的管理方法流程图

图4是本发明再一实施例的终端设备结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明一实施例的终端设备预装应用的管理方法流程图,该方法具体可以包括以下步骤:

步骤101,终端设备第一次开机时,在用户数据分区建立用于链接到预装应用安装包的链接文件,所述预装应用安装包预设于系统分区的预装应用目录,所述预装应用目录设置为开机时不被扫描。。

本发明实施例中,终端设备是指安装有Windows、IOS、Android 等系统的电子设备,例如智能手机、平板电脑、笔记本电脑、超级移动个人计算机(英文:Ultra-mobile Personal Computer,简称UMPC)、上网本、个人数字助理(英文:Personal Digital Assistant,简称PDA)等终端设备。

用户数据分区也称为data分区,包含用户的数据,存放用户的联系人、短信、设置和应用程序等信息。data分区具有读写属性,恢复出厂设置相当于擦除该分区,恢复到第一次启动设备的状态。系统分区也称为system分区,包含操作系统的重要文件,具有只读属性,恢复出厂设置不会造成system分区的数据丢失。如果预装应用安装包存放在用户数据分区,恢复出厂设置后安装包就会丢失,不能满足第三方预装应用重新安装的要求。本发明实施例在第一次开机时建立链接文件,若恢复出厂设置,即使原先建立的链接文件被删除,恢复出厂设置后的第一次开机时仍会重新建立链接文件,而预装应用安装包存放于系统分区,不会随着恢复出厂设置而丢失。并且,建立链接文件与拷贝安装包相比,其速度要快得多,几乎不影响系统的开机速度。

预先在system分区新建一个目录(例如system/pre_app),这里称为预装应用目录,预装应用目录用于存放第三方提供的预装应用安装包。在实际过程中,这一步是由手机厂商预先定制在系统软件中。当然,预装应用目录也可以是system分区已存在的目录。

对于系统应用,由于其保存在system分区下的应用程序目录,扫描该目录后会自动以系统级权限安装系统应用,因此系统应用不可卸载。在本实施例中,预装应用目录设置为开机时不被扫描,使得预装应用目录有别于system分区的系统应用程序目录,目的是将预装应用与系统应用区分开。

本发明实施例的链接文件类似于计算机中的快捷方式,指的是链接到实际文件的标识,因此其大小非常小,几乎不占用data分区的空间资源。在开机引导程序bootloader启动的init.rc中建立生成链接文件的服务,其中init.rc是一个可配置的初始化文件,通常终端设备厂商可以自行配置init.rc,开机时按照init.rc中配置语句执行相应功能。本实施例中执行Linux链接命令link,link命令会首先判断用于存放链接文件的目录(如data/app)是否存在,如不存在会自动创建。然后把预装应用安装包链接到data/app下,该链接过程即是在data/app中建立链接文件,链接文件指向预装应用安装包的地址,扫描链接文件时实际扫描的是预装应用安装包。

实际中,预装应用安装包至少为两个,优选链接文件分别与预装应用安装包一一对应,即一个链接文件对应一个预装应用安装包。Link命令遍历所有预装应用安装包,对每一个预装应用安装包建立一个链接文件。

需要说明的是,链接文件可以具有与预装应用安装包相同的名称,也可以是预设的名称,如数字1、2等,本发明实施例对此不作限制。

以android系统的终端设备为例,终端设备在第一次开机后,会启动Package Manager Service(包管理服务),Package Manager Service用于扫描应用程序目录的安装包并根据应用程序目录所在的分区自动以用户级权限安装或系统级权限安装应用程序,所谓用户级权限是指用户可进行包括卸载的可操作权限,所谓系统级权限是指用户不具有卸载应用程序的权限。具体地,扫描时会根据安装包所在分区为应用程序设置相应的属性,如只读属性或可读写属性。

对于system分区下的安装包,扫描后会带有只读属性,本发明实施例将预装应用目录设置为开机不被扫描,就是为了避免预装应用目录中的预装应用设为只读属性。扫描链接文件时,由于是在data分区扫描的,因此会为链接文件对应的预装应用设置可读写属性。这样,预装应用就可被用户自行卸载。

步骤102、设置标识为预设值,所述标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。

为了只在终端设备第一次开机时建立链接文件,避免每次开机都建立链接文件,本发明实施例在data分区设置标识,用于区分data分区是否已存在与预装应用安装包对应的链接文件,需要说明的是,这里的第一次开机指的是终端设备使用前的第一次开机或恢复出厂设置后的第一次开机。在第一次开机时需要建立链接文件,然后将标识设置为预设值。标识设为预设值意味着data分区已存在与预装应用安装包对应的链接文件,终端设备在下一次开机时就不需要建立新的链接文件,而是直接获取终端设备第一次开机时建立的链接文件,避免重复建立链接文件。

需要说明的是,本发明实施例还可以在终端设备第一次开机前不设置标识,可以理解为,标识的默认值为:不存在标识,意味着此时data分区未建立链接文件;而在建立完链接文件后添加标识,可以理解为,标识的预设值为:存在标识,意味着data分区已建立完链接文件。其中标识存放在data分区,这样恢复出厂设置后,标识被删除。或者在终端设备第一次开机前设置标识,可以理解为,标识的默认值为:存在标识,意味着此时data分区未建立链接文件;而在建立完链接文件后删除标识,可以理解为,标识的预设值为:不存在标识,意味着data分区已建立完链接文件。其中标识存放在data分区,这样恢复出厂设置后,标识被重新添加。以上方案都在本发明的保护范围内。

步骤103,当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。

现有技术中在系统第一次开机已经建立了预装应用的链接后,若后续每一次开机都再重复地建立链接,则势必会延长开机时间。假使只是简单地使终端设备在非第一次开机时直接获取已经建立的链接,虽然也可以解决重复建立链接的问题,但是终端设备在升级时,若升级版本中恰好存在新增预装应用,而如果此时仍然是直接获取第一次开机建立的链接,则新增预装应用就不会被扫描到,从而也就无法被用户使用。

本实施例巧妙地在终端设备第一次开机建立链接文件后将标识设为预设值,使得后续开机时通过判断标识的值为预设值而直接获取链接文件,不必再重复建立链接文件。同时又在升级版本中包括新增预装应用时,将标识恢复为默认值,从而升级后的终端设备又可以重新建立用于链接到新增预装应用安装包的新的链接文件。

需要说明的是,升级版本中也存在与原始版本相同的预装应用目录,其中预设有新增预装应用安装包。升级后的终端设备在第一次开机时,由于标识为默认值,需要重新建立链接文件,此时包括建立链接到原有预装应用安装包的链接文件A和链接到新增预装应用安装包的链接文件B。实际过程中,当对原有预装应用安装包执行link命令时,会发现data/app中已存在相应的链接文件,此时link命令不再执行下去,以节省时间。当对新增预装应用安装包执行link命令时,会发现data/app中不存在相应的链接文件, link命令会继续执行下去,创建与新增预装应用安装包对应的新的链接文件。

本发明实施例终端设备第一次开机时,在用户数据分区建立链接文件,链接文件用于链接到预装应用安装包,预装应用安装包预设于系统分区的预装应用目录,预装应用目录设置为开机时不被扫描。然后设置标识为预设值,标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。这样终端设备在非第一次开机时,不用重复建立链接文件,而是直接利用已经建立好的链接文件。当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将标识恢复为默认值,标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。当升级版本存在新增预装应用时,如果不将标识恢复为默认值,终端设备就不会在用户数据分区建立对应新增预装应用的新的链接文件,新增预装应用就不能正常安装和使用,因此本发明能避免每一次开机都需重复建立链接的同时还能保证升级版本存在新增预装应用时新增预装应用能正常使用。

实施例一:

参考图2,为本发明另一实施例的终端设备预装应用的管理方法流程图。

步骤201、终端设备第一次开机时,在用户数据分区建立用于链接到预装应用安装包的链接文件,所述预装应用安装包预设于系统分区的预装应用目录,所述预装应用目录设置为开机时不被扫描。

其中,在终端设备第一次开机前不在data分区设置标识,可以理解为设置标识为默认值。

具体地,本实施例中执行init.rc的语句如下:

Service preload-sh/system/bin/sh/system/etc/init.preload.sh

Class main

User root

Oneshot

以上用于定义在inti.rc中的服务,其作用是执行init.preload.sh脚本,脚本内容如下:

#ln preload apks

if [!-f 〞data/app/exist〞];then

echo 〞preloading application…〞

for FILE in ˋls /system/preloadˋ;do #ln–s/system/preload/$FILE/$FILE.apk/data/app/preload_$FILE.apk

ln –s/system/preload/$FILE/data/app/ preload_$FILE

done

sync

echo〞completed! 〞>/data/app/exist

chmod 777/data/app/exist

sync

fi

首先会判断标识(即/data/app/exist这个节点)是否存在,如果存在则不执行链接命令,如果不存在,则执行Linux命令link,把预装应用安装包链接到data/app下。

步骤202、在data分区添加标识。

本实施例中添加标识,可以理解为设置标识为预设值。

步骤203、扫描data分区的链接文件,根据链接文件实际扫描到预装应用安装包。

开机过程中,Package Manager Service会分别扫描system分区和data分区的应用程序目录,根据应用程序所在分区为其设置相应属性。

步骤204、以用户级权限安装预装应用。

扫描完后,根据应用程序的相应属性将其安装到终端设备。

步骤205、终端设备非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。

开机时,仍会执行步骤201中的init.preload.sh脚本,由于在步骤202中已添加标识,因此当判断出存在标识时,则不执行链接命令。

步骤206、终端设备恢复出厂设置。

其中,恢复出厂设置会删除data分区的数据,也就是链接文件和标识都将被删除。

步骤207、终端设备恢复出厂设置后第一次开机时,返回步骤201。

这样,即使恢复出厂设置,预装应用安装包仍能重新安装到终端设备。

实施例二:

参考图3,为本发明再一实施例的终端设备预装应用的管理方法流程图。

步骤301,分别制作原始版本的差分资源包和升级版本的差分资源包。

其中,原始版本的差分资源包是根据需求编写源代码,对源代码进行编译,生成原始版本的数据文件和升级所需所有文件,将数据文件转换为img格式生成数据映像文件,并将升级所需的所有文件打包、压缩生成原始版本的差分资源包,其中数据文件包括制作T卡升级包的所有文件,差分资源包中包括与数据文件用相同源代编译得到的文件。升级版本的差分资源包是在源代码的基础上,根据升级的要求,对源代码进行修改并编译,得到升级版本的差分资源包。

步骤302,利用升级版本的差分资源包和原始版本的差分资源包生成差分包。

步骤303,判断差分包中升级版本相对原始版本是否存在新增预装应用安装包,若存在新增预装应用安装包,则执行步骤304;否则不作任何处理。

具体地,本步骤包括如下子步骤:

303a、解析差分包中包含的升级版本b和原始版本a。

303b、遍历两个版本中system分区预装应用目录中的预装应用安装包,采用对比算法查找升级版本b相对原始版本a是否存在新增预装应用安装包。

步骤304、在差分包的脚本中设置预设命令,预设命令用于将标识恢复为默认值。

以上步骤是制作升级包的过程。

步骤305、当终端设备升级时,执行升级包中的预设命令。

基于实施例一,执行完预设命令后,标识被删除。

步骤306、终端设备升级完成后第一次开机时,判断标识是否为默认值,若是默认值则执行步骤307,否则执行步骤308。

步骤307、根据标识为默认值在data分区建立用于链接到新增预装应用安装包的新的链接文件。

本实施例中,如果升级版本中包括新增预装应用,则终端设备在升级完成后便会删除标识,开机时由于检测不到标识,则会执行link命令。

后续过程可参考实施例一的步骤202-207。

步骤308、根据标识为预设值直接获取第一次开机建立的链接文件。

后续过程可参考实施例一的步骤203-207。

本发明实施例在终端设备升级时,当升级版本相对原始版本存在新增预装应用的情况下,在升级包中设置用于将标识恢复为默认值的预设命令,这样终端设备在升级完成后第一次开机时,就会根据标识为默认值在data分区建立用于链接到新增预装应用安装包的新的链接文件。当升级版本存在新增预装应用时,如果不将标识恢复为默认值,终端设备就不会在用户数据分区建立对应新增预装应用的新的链接文件,新增预装应用就不能正常安装和使用,因此本发明能避免每一次开机都需重复建立链接的同时还能保证升级版本存在新增预装应用时新增预装应用能正常使用。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

实施例三:

参阅图4,本实施例提供一种终端设备结构框图,包括。

链接建立单元401,用于终端设备第一次开机时,在用户数据分区建立用于链接到预装应用安装包的链接文件,所述预装应用安装包预设于系统分区的预装应用目录,所述预装应用目录设置为开机时不被扫描。

标识设置单元402,用于设置标识为预设值,所述标识为预设值用于使终端设备在非第一次开机时,直接获取终端设备第一次开机时建立的链接文件。

升级单元403,用于当终端设备升级时,若升级版本相对原始版本存在新增预装应用安装包,则将所述标识恢复为默认值,所述标识为默认值用于使终端设备在升级后第一次开机时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件。。

在本实施例中,升级单元403还用于当终端设备升级时,执行升级包中的预设命令,所述预设命令是在升级版本相对原始版本存在新增预装应用安装包时设置的将所述标识恢复为默认值的命令。

终端设备还包括标识判断单元404,用于当终端设备升级后第一次开机时,判断所述标识是否为默认值。

所述链接建立单元401还用于在所述标识为默认值时,在用户数据分区建立用于链接到新增预装应用安装包的新的链接文件,所述新增预装应用安装包预设于所述预装应用目录。

所述链接建立单元401还用于在所述标识为预设值时,直接获取获取终端设备第一次开机时建立的链接文件。。

需要说明的是,所述预装应用安装包可以至少为两个,所述链接文件分别与所述预装应用安装包一一对应。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种。,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1