CN105224419A - 一种安卓系统中的用户数据镜像加载方法、装置及终端 - Google Patents

一种安卓系统中的用户数据镜像加载方法、装置及终端 Download PDF

Info

Publication number
CN105224419A
CN105224419A CN201510617830.3A CN201510617830A CN105224419A CN 105224419 A CN105224419 A CN 105224419A CN 201510617830 A CN201510617830 A CN 201510617830A CN 105224419 A CN105224419 A CN 105224419A
Authority
CN
China
Prior art keywords
user data
mirror image
partition table
capacity
data mirror
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.)
Granted
Application number
CN201510617830.3A
Other languages
English (en)
Other versions
CN105224419B (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.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology Co 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 Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN201510617830.3A priority Critical patent/CN105224419B/zh
Publication of CN105224419A publication Critical patent/CN105224419A/zh
Application granted granted Critical
Publication of CN105224419B publication Critical patent/CN105224419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种安卓系统中的用户数据镜像加载方法、装置及终端,涉及通信领域,用以提供一种根据终端的存储空间容量进行自适应调整的用户数据镜像的加载方法,降低用户数据镜像编译的复杂性,降低用户数据镜像的开发和维护资源。在本发明实施例中,获取预先生成的分区表、用户数据镜像和非用户数据镜像;根据分区表将非用户数据镜像分别加载到指定目录下;计算终端的剩余容量;根据剩余容量将分区表中预设的用户数据分区容量修改为与剩余容量相同的大小;将预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据修改后的分区表将扩容后的用户数据镜像加载到终端的指定目录下;从而解决了上述问题。

Description

一种安卓系统中的用户数据镜像加载方法、装置及终端
技术领域
本发明涉及通信领域,尤其涉及一种安卓系统中的用户数据镜像加载方法、装置及终端。
背景技术
在安卓(Android)系统中,Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img(根文件镜像)、system.img(系统镜像)、userdata.img(用户数据镜像),以及它们对应的目录树root、system、data。其中,ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据。Android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。
由于system.img和userdata.img采用Ext4(第四代扩展文件系统)格式构建,根据标准规定,采用Ext4格式构建的镜像,需要预先规定镜像大小,以便在镜像加载过程中,根据预先规定的镜像大小,将该镜像中包含的全部数据加载到指定目录。
在实际中,同型号的终端却可能具有不同容量的存储空间,例如:两个智能手机除存储空间不同(一为16G,另一为64G)之外,其余配置均相同。但由于Ext4格式的制约,必须为上述两个智能手机分别编译不同的userdata.img镜像,即为存储空间是16G的智能手机编译一个userdata_1.img镜像,还要为存储空间是64G的智能手机编译另一个userdata_2.img镜像。并根据两个智能手机的存储空间的不同,将userdata_2.img的镜像大小设置的更大,而将userdata_1.img的镜像大小设置的较小,但实际上,userdata_1.img和userdata_2.img中所包含的用户数据是相同的。
可见,现有技术需要为不同存储容量的终端,编译不同版本的userdata.img镜像。
发明内容
本发明实施例提供一种安卓系统中的用户数据镜像的加载方法、装置及终端,用以提供一种能够根据终端的存储空间容量的大小进行自适应调整的用户数据镜像的加载方法,降低了用户数据镜像编译的复杂性,同时降低了用户数据镜像的开发和维护资源。
本发明实施例提供一种安卓系统中的用户数据镜像的加载方法,该方法包括:
获取预先生成的分区表、用户数据镜像和非用户数据镜像;所述非用户数据镜像至少包括系统镜像和根文件镜像;
根据所述分区表将所述非用户数据镜像分别加载到所述终端的指定目录下;
根据所述终端可用存储空间的总容量和加载非用户数据镜像所占用的存储空间容量,计算所述终端的剩余容量;
根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小;
将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下;
其中,扩容后的用户数据镜像与所述预先生成的用户数据镜像中包含有相同的用户数据。
本发明实施例还提供一种安卓系统中的用户数据镜像的加载装置,该装置包括:
获取单元,用于获取预先生成的分区表、用户数据镜像和非用户数据镜像;所述非用户数据镜像至少包括系统镜像和根文件镜像;
非用户数据镜像加载单元,用于根据所述分区表将所述非用户数据镜像分别加载到所述终端的指定目录下;
计算单元,用于根据所述终端可用存储空间的总容量和加载所述非用户数据镜像所占用的存储空间容量,计算所述终端的剩余容量;
修改单元,用于根据所述剩余容量则将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小;
扩容及加载单元,用于将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下;
其中,扩容后的用户数据镜像与所述预先生成的用户数据镜像中包含有相同的用户数据。
本发明实施例还提供一种终端,该终端包括一种安卓系统中的用户数据镜像的加载装置。
从上述技术方案可以看出,本发明实施例可以预先生成一个较小且适用于各种终端的用户数据镜像(userdata.img),并在终端初始化时,先将系统镜像(system.img)根文件镜像和系统镜像(ramdisk.img)等非用户数据镜像加载到终端的指定目录下后,根据终端的当前剩余存储空间,自动的将预先生成的、容量较小的用户数据镜像进行无损扩容,以保证扩容后的用户数据镜像包含有预先生成的用户数据镜像中所包含的全部数据,因此扩容后的用户数据镜像虽然在容量上能够与终端的剩余容量匹配、但却不会损失任何用户数据。在各类终端中预置本发明实施例提供的用户数据镜像后,可以实现根据终端的本地存储空间容量,自动的进行用户数据镜像无损扩容的方案,从而不需要为不同容量的终端分别编译各种版本的用户数据镜像,进而简化了开发复杂度、节省了开发及维护资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种安卓系统中的用户数据镜像的加载方法的流程示意图;
图2为本发明实施例提供的分区表中userdata分区的调整方案的流程示意图;
图3(a)为本发明实施例中一种预先生成的分区表的示意图;
图3(b)为本发明实施例中修改后的分区表的示意图;
图4为本发明实施例提供的文件系统中userdata.img的无损扩容方案的流程示意图;
图5为本发明实施例提供的一种安卓系统中的用户数据镜像的加载装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例可以应用于各类终端(如智能手机、平板电脑等设备),尤其适用于采用安卓(Android)操作系统的终端。当然,也可适用于采用双系统的终端,双系统中至少包括安卓操作系统。
为了便于在终端出厂时,能够在终端内预置部分的预装应用程序或数据(如图片数据、视频数据等),一般需要在终端初始化过程中,将预置的用户数据镜像(为了描述方便,以下可简称为userdata.img)加载到ramdisk文件系统中的data(数据)目录下。
针对安卓系统中的用户数据镜像加载过程,本发明实施例提供的方法可以按照本发明提供的分区表中所设置的加载顺序,在系统将ramdisk.img、system.img等其他非用户数据镜像加载到相应目录之后,将预先生成的较小的userdata.img加载到相应的目录下。
在本发明实施例中,由于终端运行需要许多分区,这些分区可以包括modem(存储modem镜像)/config(厂商的配置信息),modemst1(NV信息)等,也可以包括用户自定义分区,其对应的非用户数据镜像至少包括ramdisk.img、system.img、modem镜像、config厂商配置镜像等。
需要说明的是,在本发明实施例中,在加载ramdisk.img到根目录之后,还可以按照现有技术加载其他镜像,但需要将userdata.img作为最后一个镜像加载到相应目录下。
本发明实施例提供的userdata.img的大小可以小于现有技术中的userdata.img,这样可以保证能够将该userdata.img下载到任一终端中。本发明实施例提供的userdata.img加载方案,尤其适用于同一型号(即配置相同)但容量不同的终端。
图1示出了本发明实施例提供的一种安卓系统中的用户数据镜像的加载方法的流程示意图,如图1所示,该流程可以包括:
步骤11:获取预先生成的分区表、用户数据镜像和非用户数据镜像;非用户数据镜像至少包括系统镜像和根文件镜像。
步骤12:根据分区表将非用户数据镜像分别加载到终端的指定目录下。
步骤13:根据终端可用存储空间的总容量和加载非用户数据镜像所占用的存储空间容量,计算终端的剩余容量。
步骤14:根据剩余容量将分区表中预设的用户数据分区容量修改为与剩余容量相同的大小。
步骤15:将预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据修改后的分区表将扩容后的用户数据镜像加载到终端的指定目录下。其中,扩容后的用户数据镜像与预先生成的用户数据镜像中包含有相同的用户数据。
可选的,在步骤13之后、步骤14之前,判断剩余容量是否大于分区表中所设置的用户数据分区容量;在步骤14中,在剩余容量大于分区表中所设置的用户数据分区容量时,根据剩余容量将分区表中预设的用户数据分区容量修改为与剩余容量相同的大小。
可选的,在上述步骤中,如果剩余容量等于用户数据分区容量,则直接将预先生成的用户数据镜像加载到终端的指定目录下;如果剩余容量小于用户数据分区容量,则输出操作失败信息。
可选的,在上述步骤中,进一步判断修改后的分区表中的用户数据分区容量的大小是否大于预先生成的用户数据镜像的大小;在修改后的分区表中的用户数据分区容量的大小大于预先生成的用户数据镜像的大小时,将预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并将扩容后的用户数据镜像加载到终端的指定目录下。
可选的,在上述步骤中,如果修改后的分区表中的用户数据分区容量的大小等于预先生成的用户数据镜像的大小,则直接将预先生成的用户数据镜像加载到终端的指定目录下;如果修改后的分区表中的用户数据分区容量的大小小于预先生成的用户数据镜像的大小,则输出操作失败信息。
可选的,在上述步骤中,通过如下步骤生成分区表:按照由先到后的顺序,依次将非用户数据镜像对应的各分区、以及用户数据镜像对应的用户数据分区进行排列,将各分区的排列顺序作为各分区对应的镜像的加载顺序;并分别设置各分区的起始扇区地址和结束扇区地址。
可选的,在上述步骤中,通过如下方式获取分区表中预设的用户数据分区容量:获取分区表中所设置的用户数据分区的起始扇区地址和结束扇区地址;将由起始扇区地址到结束扇区地址中所包含的全部存储空间,作为分区表中预设的用户数据分区容量。
可选的,在上述步骤13中,获取终端的可用存储空间的起始扇区地址和结束扇区地址;将由起始扇区地址到结束扇区地址中所包含的全部存储空间,作为剩余容量。
可选的,在上述步骤14中,将分区表中所设置的用户数据分区的结束扇区地址修改为终端的可用存储空间的结束扇区地址。
可选的,在上述步骤15中,根据修改后的分区表中的用户数据分区容量的大小与用户数据镜像的大小之间的差值、以及终端中的存储块的大小,计算需要被填充到用户数据镜像中的可用存储块的个数m;其中,终端的存储空间由未被数据占用的可用存储块和已被数据占用的已用存储块组成,且各存储块的大小相同;按照预设顺序,将m个可用存储块确定为已被用户数据占用的已用存储块,并将所有的已被用户数据占用的已用存储块的总大小,作为扩容后的用户数据镜像的大小。
下面以采用安卓系统的智能手机为例对本发明实施例进行详细描述。
在本发明实施例中,可以本发明实施例提供的方法预先生成用户数据镜像(userdata.img)和分区表,还可以按照现有技术提供的方法预先生成根文件镜像(ramdisk.img)、系统镜像(system.img)及其他非用户数据镜像。并利用本发明实施例提供的分区表中所设置的加载顺序,依次加载ramdisk.img、system.img以及userdata.img,或者还可以依次加载ramdisk.img、其它非用户数据镜像、system.img以及userdata.img。
本发明实施例可以提供一种预先生成userdata.img的方法,可以将userdata.img所占的容量设置为一个较小的值,然后在手机开机的时候,自动侦测手机的存储空间的容量,由于存储空间的容量会被记录在存储器的固件中,因此本发明实施例可以通过软件的方法获取到手机存储空间的实际容量,针对不同容量的手机,实现userdata.img的自动无损扩容。这样,就可以实现对同一型号但不同存储容量的终端,使用同一版本的userdata.img,而且经过自动扩容后,userdata.img中预置的文件内容,不会丢失;从而简化了开发复杂度、节省了开发及维护资源。
本发明实施例可以提供一种预先生成分区表的方法,按照由先到后的顺序,依次将非用户数据镜像对应的各分区、以及用户数据镜像对应的用户数据分区进行排列,并将各分区的排列顺序作为各分区对应的镜像的加载顺序;并分别设置各分区的起始扇区地址和结束扇区地址。这样,本发明实施例中的分区表中包含有系统需要的各个分区信息,用于记录各个分区的名称或标识、加载顺序,起始扇区地址和结束扇区地址等,比如系统(system)分区的起始扇区地址和结束扇区地址。
基于本发明实施例提供的上述分区表和userdata.img的生成方法,本发明实施例提供的userdata.img加载流程可以主要包含两个方案,一为分区表中userdata分区的调整方案,另一为文件系统中userdata.img的无损扩容方案。下面就两个方案进行详细描述:
为了描述方便,在本发明实施例中可将用户数据分区简称为userdata分区,将用户数据镜像简称为userdata.img。需要说明的是,在本发明实施例中,仅以非用户数据镜像为system.img和ramdisk.img为例进行举例描述,当然在实际中,非用户数据镜像还可以包括其它镜像,这里不再一一赘述。
图2示出了本发明实施例提供的分区表中userdata分区的调整方案的流程示意图,如图2上述,该流程可以包括:
步骤21:在开机过程中,获取终端的剩余容量和分区表中所预设的用户数据分区容量。
其中,上述剩余容量是指在已加载非用户数据镜像(即根文件镜像和系统镜像)之后,终端当前的可用存储空间容量。
具体实现时,首先,本发明可以通过如下方式获取分区表中所预设的用户数据分区容量:获取上述分区表中所设置的用户数据分区的起始扇区地址和结束扇区地址;将由上述起始扇区地址到上述结束扇区地址中所包含的全部存储空间,作为上述分区表中所设置的用户数据分区容量。然后,本发明可以通过如下方式获取终端的剩余容量:获取终端的可用存储空间的起始扇区地址和结束扇区地址;将由上述起始扇区地址到上述结束扇区地址中所包含的全部存储空间,作为上述剩余容量。
步骤22:检测是否需要修改分区表中userdata分区的大小,如果需要,则继续执行步骤23;如果不需要,则执行步骤24。
具体实现时,分区表中设置有每个分区的起始位置(即通过起始扇区地址进行标记)和结束位置(即通过结束扇区地址进行标记),并判断分区表中的userdata分区的结束位置与手机的剩余存储空间的结束位置是否相同,如果相同,则认为不需要修改分区表中userdata分区的大小,并执行步骤24;如果分区表中的userdata分区的结束位置小于手机的剩余存储空间的结束位置,则认为需要修改分区表中userdata分区的大小,并执行步骤23。
需要说明的是,在本发明实施例中,由于在预先生成userdata.img时,将userdata.img所占的容量设置为一个较小的值(也就是说,将userdata.img的大小设置的比较小),以使userdata.img能够被下载到任一终端中。因此,在实际中,如果userdata.img已经被下载到终端本地,就不会出现分区表中的userdata分区的结束位置大于手机的剩余存储空间的结束位置的现象,如果一旦发生这种现象,可以输出操作失败信息。
步骤23:如果需要修改分区表中userdata分区的大小,则依据终端的剩余容量的大小调整改分区表中userdata分区的大小。
具体实现时,如果分区表中的userdata分区的结束位置小于存储器的实际剩余容量,则认为需要调整分区表中的userdata分区的结束位置。
由于在加载userdata.img之前,已经加载了ramdisk.img和system.img,因为分区表中最后一个分区是userdata,所以userdata的结束扇区小于存储器的结束扇区,我们就认为需要进行调整,因此只要判断分区表中的userdata分区的结束位置是否小于手机的实际剩余容量的结束位置即可。
具体的,本发明实施例可以将上述分区表中所设置的用户数据分区的结束扇区地址修改为上述终端的可用存储空间的结束扇区地址。
步骤24:如果不需要修改分区表中userdata分区的大小,则将userdata.img加载到终端的指定目录下。
具体实现时,如果分区表中的userdata分区的结束位置与手机的剩余存储空间的结束位置相同,则按照现有技术提供的方法将userdata.img加载到终端的指定目录下。
举例来说,本发明实施例中的分区表中设置有各分区的加载顺序,本发明实施例可以按照先加载ramdisk.img,再加载system.img,最后加载userdata.img的顺序进行操作,当然,在加载ramdisk.img之后且加载system.img之间,还可以加载其他分区(otherpartition),这里不再一一说明。
图3(a)示出了本发明实施例中一种预先生成的分区表的示意图,如图3(a)所示,在分区表中第一个分区是ramdisk分区、然后可能包括其他分区、之后是system分组、最后一个分区是userdata分区。此时,判断预先生成的分区表中的userdata分区的结束扇区地址与手机的剩余容量的结束扇区地址是否相同,如果相同,则不需要修改分区表中的userdata分区的大小,如果预先生成的分区表中的userdata分区的结束扇区地址小于手机的剩余容量的结束扇区地址,则需要修改分区表中的userdata分区的大小。图3(b)示出了本发明实施例中修改后的分区表的示意图,如图3(b)所示,本发明实施例可以将分区表中的userdata分区的结束扇区地址修改为与手机的剩余容量的结束扇区地址相同,这样,修改后的分区表中的各分区大小的总和可以与手机的剩余容量相匹配。
这样,本发明实施例通过上述步骤,根据手机的实际存储空间调整了分区表中userdata的大小。下面继续介绍文件系统中userdata.img的无损扩容方案。
图4示出了本发明实施例提供的文件系统中userdata.img的无损扩容方案的流程示意图,如图4所示,该流程可以包括:
步骤41:系统开机过程中,检测是否需要对userdata.img进行扩容,如果需要扩容,则继续执行步骤42;否则,执行步骤44。
具体实现时,获取userdata.img的大小和分区表中userdata的大小(结束位置-起始位置),判断userdata.img的大小和分区表中userdata的大小是否一致,如果不一致,就需要对userdata.img进行扩容,即执行步骤42;如果一致,就不需要对userdata.img进行扩容,则执行步骤44。
步骤42:使用无损扩容的方法,将userdata文件系统的大小扩容到与手机的实际存储空间相同的大小。
具体实现时,根据修改后的分区表中的用户数据分区容量的大小与上述用户数据镜像的大小之间的差值、以及上述终端中的存储块的大小,计算需要被填充到上述用户数据镜像中的可用存储块的个数m;其中,终端的存储空间由未被数据占用的可用存储块和已被数据占用的已用存储块组成,且各存储块的大小相同;按照预设顺序,将m个可用存储块确定为已被用户数据占用的已用存储块,并将所有的已被用户数据占用的已用存储块的总大小,作为扩容后的用户数据镜像的大小。
具体的,针对Ext4的文件系统设计,系统中预置有保留块(在本发明实施例中,将未使用的可用存储块作为保留块),本发明实施例将需要增大的容量利用保留块填充到userdata.img中,这样就可以实现无损扩容。首先,可以计算修改后的分区表中的用户数据分区容量的大小与上述用户数据镜像的大小之间的差值;然后,将该差值的大小除以保留块的大小,计算得到需要填充的保留块的个数m;之后,按照预设规则,如由前至后的顺序,选取m个保留块,并将这m个保留块加入到用户数据分区的索引中,用以将这m个保留块标记为已被用户数据占用的存储块,并将所有的已被用户数据占用的已用存储块的总大小,作为扩容后的用户数据镜像的大小。
需要说明的是,在本发明实施例中,手机的存储空间由未被数据占用的可用存储块(即保留块)和已被数据占用的已用存储块组成。
步骤43:将扩容后的userdata.img加载到手机的指定目录下。
具体实现时,本发明实施例可以将扩容后的userdata.img按照现有技术提供的方法加载到手机的指定目录下,这里不再赘述。
在执行步骤43后,流程结束。
步骤44:直接将预先生成的userdata.img加载到手机的指定目录下。
具体实现时,本发明实施例可以将预先生成的userdata.img按照现有技术提供的方法加载到手机的指定目录下,这里不再赘述。
在执行步骤44后,流程结束。
这样,本发明实施例通过上述步骤,系统可以成功针对不同容量的存储器进行无损扩容,本发明实施例中的无损扩容,可以是指保留userdata.img中所预置的内容不会丢失,而且userdata分区大小也自动适配到手机的存储空间容量。
从上述技术方案可以看出,本发明实施例可以预先生成一个较小且适用于各种终端的用户数据镜像(userdata.img),并在终端初始化时,先将系统镜像(system.img)根文件镜像和系统镜像(ramdisk.img)等非用户数据镜像加载到终端的指定目录下后,根据终端的当前剩余存储空间,自动的将预先生成的、较小的用户数据镜像进行无损扩容,以保证扩容后的用户数据镜像包含有预先生成的用户数据镜像中所包含的全部数据,因此扩容后的用户数据镜像虽然在容量上能够与终端的剩余容量匹配、但却不会损失任何用户数据,可以为各类终端预置本发明实施例提供的用户数据镜像,并根据终端的本地存储空间容量,自动的进行用户数据镜像无损扩容,从而不需要为不同容量的终端分别编译各种版本的用户数据镜像,进而简化了开发复杂度、节省了开发及维护资源。
基于相同的技术构思,本发明实施例还提供了一种安卓系统中的用户数据镜像的加载装置,图5示出了本发明实施例提供的一种安卓系统中的用户数据镜像的加载装置的结构示意图,如图5所示,该装置包括:
获取单元51,用于获取预先生成的分区表、用户数据镜像和非用户数据镜像;所述非用户数据镜像至少包括系统镜像和根文件镜像;
非用户数据镜像加载单元52,用于根据所述分区表将所述非用户数据镜像分别加载到所述终端的指定目录下;
计算单元53,用于根据所述终端可用存储空间的总容量和加载所述非用户数据镜像所占用的存储空间容量,计算所述终端的剩余容量;
修改单元54,用于根据所述剩余容量则将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小;
扩容及加载单元55,用于将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下;
其中,扩容后的用户数据镜像与所述预先生成的用户数据镜像中包含有相同的用户数据。
基于相同的技术构思,本发明实施例还提供了一种终端,该装置包括一种安卓系统中的用户数据镜像的加载装置,该装置还可以包括处理器、显示器、存储器。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种安卓系统中的用户数据镜像的加载方法,其特征在于,该方法包括:
获取预先生成的分区表、用户数据镜像和非用户数据镜像;所述非用户数据镜像至少包括系统镜像和根文件镜像;
根据所述分区表将所述非用户数据镜像分别加载到所述终端的指定目录下;
根据所述终端可用存储空间的总容量和加载所述非用户数据镜像所占用的存储空间容量,计算所述终端的剩余容量;
根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小;
将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下;
其中,扩容后的用户数据镜像与所述预先生成的用户数据镜像中包含有相同的用户数据。
2.如权利要求1所述的方法,其特征在于,在所述计算所述终端的剩余容量之后,根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小之前,还包括:
判断所述剩余容量是否大于所述分区表中所设置的用户数据分区容量;
所述根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小,具体为:
在所述剩余容量大于所述分区表中所设置的用户数据分区容量时,根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小。
3.如权利要求2所述的方法,其特征在于,该方法进一步包括:
如果所述剩余容量等于所述用户数据分区容量,则直接将所述预先生成的用户数据镜像加载到所述终端的指定目录下;
如果所述剩余容量小于所述用户数据分区容量,则输出操作失败信息。
4.如权利要求2所述的方法,其特征在于,根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小之后,根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下之前,还包括:
进一步判断修改后的分区表中的用户数据分区容量的大小是否大于所述预先生成的用户数据镜像的大小;
所述根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下,具体包括:
在修改后的分区表中的用户数据分区容量的大小大于所述预先生成的用户数据镜像的大小时,将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并将扩容后的用户数据镜像加载到所述终端的指定目录下。
5.如权利要求4所述的方法,其特征在于,该方法进一步包括:
如果修改后的分区表中的用户数据分区容量的大小等于所述预先生成的用户数据镜像的大小,则直接将所述预先生成的用户数据镜像加载到所述终端的指定目录下;
如果修改后的分区表中的用户数据分区容量的大小小于所述预先生成的用户数据镜像的大小,则输出操作失败信息。
6.如权利要求1-5中任一项所述的方法,其特征在于,通过如下步骤生成分区表:
按照由先到后的顺序,依次将非用户数据镜像对应的各分区、以及用户数据镜像对应的用户数据分区进行排列,将各分区的排列顺序作为各分区对应的镜像的加载顺序;并分别设置各分区的起始扇区地址和结束扇区地址。
7.如权利要求6所述的方法,其特征在于,通过如下方式获取所述分区表中预设的用户数据分区容量:
获取所述分区表中所设置的用户数据分区的起始扇区地址和结束扇区地址;
将由所述起始扇区地址到所述结束扇区地址中所包含的全部存储空间,作为所述分区表中预设的用户数据分区容量。
8.如权利要求1所述的方法,其特征在于,所述计算所述终端的剩余容量,具体为:
获取所述终端的可用存储空间的起始扇区地址和结束扇区地址;
将由所述起始扇区地址到所述结束扇区地址中所包含的全部存储空间,作为所述剩余容量。
9.如权利要求8所述的方法,其特征在于,所述根据所述剩余容量将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小,具体为:
将所述分区表中所设置的用户数据分区的结束扇区地址修改为所述终端的可用存储空间的结束扇区地址。
10.如权利要求1所述的方法,其特征在于,所述将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,具体为:
根据修改后的分区表中的用户数据分区容量的大小与所述用户数据镜像的大小之间的差值、以及所述终端中的存储块的大小,计算需要被填充到所述用户数据镜像中的可用存储块的个数m;其中,所述终端的存储空间由未被数据占用的可用存储块和已被数据占用的已用存储块组成,且各存储块的大小相同;
按照预设顺序,将m个可用存储块确定为已被用户数据占用的已用存储块,并将所有的已被用户数据占用的已用存储块的总大小,作为扩容后的用户数据镜像的大小。
11.一种安卓系统中的用户数据镜像的加载装置,其特征在于,该装置包括:
获取单元,用于获取预先生成的分区表、用户数据镜像和非用户数据镜像;所述非用户数据镜像至少包括系统镜像和根文件镜像;
非用户数据镜像加载单元,用于根据所述分区表将所述非用户数据镜像分别加载到所述终端的指定目录下;
计算单元,用于根据所述终端可用存储空间的总容量和加载所述非用户数据镜像所占用的存储空间容量,计算所述终端的剩余容量;
修改单元,用于根据所述剩余容量则将所述分区表中预设的用户数据分区容量修改为与所述剩余容量相同的大小;
扩容及加载单元,用于将所述预先生成的用户数据镜像的大小扩容到与修改后的分区表中的用户数据分区容量相同的大小,并根据所述修改后的分区表将扩容后的用户数据镜像加载到所述终端的指定目录下;
其中,扩容后的用户数据镜像与所述预先生成的用户数据镜像中包含有相同的用户数据。
12.一种终端,其特征在于,该终端包括如权利要求9所述的安卓系统中的用户数据镜像的加载装置。
CN201510617830.3A 2015-09-24 2015-09-24 一种安卓系统中的用户数据镜像加载方法、装置及终端 Active CN105224419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510617830.3A CN105224419B (zh) 2015-09-24 2015-09-24 一种安卓系统中的用户数据镜像加载方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510617830.3A CN105224419B (zh) 2015-09-24 2015-09-24 一种安卓系统中的用户数据镜像加载方法、装置及终端

Publications (2)

Publication Number Publication Date
CN105224419A true CN105224419A (zh) 2016-01-06
CN105224419B CN105224419B (zh) 2018-11-09

Family

ID=54993407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510617830.3A Active CN105224419B (zh) 2015-09-24 2015-09-24 一种安卓系统中的用户数据镜像加载方法、装置及终端

Country Status (1)

Country Link
CN (1) CN105224419B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406768A (zh) * 2016-09-28 2017-02-15 努比亚技术有限公司 安卓系统用户数据分区调整方法及装置
CN106815024A (zh) * 2017-01-12 2017-06-09 惠州Tcl移动通信有限公司 一种优化移动终端开机时间的方法及系统
CN106843949A (zh) * 2017-01-11 2017-06-13 微鲸科技有限公司 系统镜像的制作方法、电子设备的系统安装方法
CN107229501A (zh) * 2017-06-30 2017-10-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN108829541A (zh) * 2018-06-14 2018-11-16 Oppo(重庆)智能科技有限公司 扩容检测方法、电子装置及计算机可读存储介质
CN109656629A (zh) * 2018-12-26 2019-04-19 深圳创维-Rgb电子有限公司 一种emmc自适应调节方法、存储介质及终端设备
CN117573042A (zh) * 2024-01-16 2024-02-20 深圳前海深蕾半导体有限公司 存储空间的分配方法、装置、系统、终端设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155218A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Optimized Data Migration with a Support Processor
CN103559054A (zh) * 2013-10-30 2014-02-05 华为终端有限公司 智能终端多操作系统的实现、删除方法和装置
CN104572492A (zh) * 2015-01-22 2015-04-29 福州瑞芯微电子有限公司 一种烧录数据到fat32分区的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155218A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Optimized Data Migration with a Support Processor
CN103559054A (zh) * 2013-10-30 2014-02-05 华为终端有限公司 智能终端多操作系统的实现、删除方法和装置
CN104572492A (zh) * 2015-01-22 2015-04-29 福州瑞芯微电子有限公司 一种烧录数据到fat32分区的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "img镜像的创建与扩容", 《HTTP://ZEBINJ.BLOG.163.COM/BLOG/STATIC/206290199201412114912137/》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406768A (zh) * 2016-09-28 2017-02-15 努比亚技术有限公司 安卓系统用户数据分区调整方法及装置
CN106843949A (zh) * 2017-01-11 2017-06-13 微鲸科技有限公司 系统镜像的制作方法、电子设备的系统安装方法
CN106815024A (zh) * 2017-01-12 2017-06-09 惠州Tcl移动通信有限公司 一种优化移动终端开机时间的方法及系统
CN106815024B (zh) * 2017-01-12 2021-03-23 惠州Tcl移动通信有限公司 一种优化移动终端开机时间的方法及系统
CN107229501A (zh) * 2017-06-30 2017-10-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN107229501B (zh) * 2017-06-30 2020-04-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN108829541A (zh) * 2018-06-14 2018-11-16 Oppo(重庆)智能科技有限公司 扩容检测方法、电子装置及计算机可读存储介质
CN109656629A (zh) * 2018-12-26 2019-04-19 深圳创维-Rgb电子有限公司 一种emmc自适应调节方法、存储介质及终端设备
CN117573042A (zh) * 2024-01-16 2024-02-20 深圳前海深蕾半导体有限公司 存储空间的分配方法、装置、系统、终端设备及存储介质

Also Published As

Publication number Publication date
CN105224419B (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
CN105224419A (zh) 一种安卓系统中的用户数据镜像加载方法、装置及终端
JP6912583B2 (ja) サービス処理方法および装置
EP2966566B1 (en) Driver program loading method and embedded device
US20150220326A1 (en) Mobile Terminal and Software Upgrade Method Thereof
CN106873960B (zh) 一种应用软件的更新方法和设备
CN106610839B (zh) 发布升级包的方法、轻量升级方法、装置及系统
CN106648724B (zh) 应用程序的热修复方法及终端
CN104077131A (zh) 一种组件部署系统及方法
CN104750528A (zh) 一种Android程序中的组件管理方法和装置
CN102799437B (zh) 一种编译脚本自动生成方法和自动生成装置
CN104267981A (zh) 一种加载桌面上的应用布局的方法及装置
CN108121543A (zh) 一种软件代码编译处理方法及装置
CN105094878A (zh) 一种集成系统库文件的方法和装置
CN109101244B (zh) 一种ios系统一体化自动打包方法
CN109344619A (zh) 应用程序的热修复方法和装置
CN112506584B (zh) 资源文件加载方法、装置、设备、存储介质以及产品
CN106201636A (zh) 一种dsp片外代码动态加载方法及装置
CN104461621A (zh) 一种更新属性信息的方法及装置
CN110825409B (zh) 参数管理方法、电子设备及计算机存储介质
CN105760176A (zh) 一种web应用程序打包方法、启动方法及相应装置
CN110532016A (zh) 版本管理方法、版本更新方法和版本管理系统
CN104598237A (zh) 一种在升级模式下生成用户界面的方法和装置
CN104808953B (zh) 控制数据存储的方法、装置及移动终端
JP7257554B2 (ja) モデルファイルのディストリビューション方法、プラットホーム、システム、端末及び可読記憶媒体
CN105373384B (zh) 一种软件开发方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant