本发明涉及网络技术领域,更具体的,涉及一种android系统的升级方法及装置。
背景技术
android系统的开放性和易用性,以及强大的应用开发平台,使android系统在智能设备上拥有很大的前景。
android系统由于版本更新较快,存在着更新系统的需求。目前设备在进行系统升级时一般将升级包下载到闪存中。但是,当设备闪存容量较小时,没有足够的闪存空间存储升级包,影响了系统升级功能。
技术实现要素:
有鉴于此,本发明提供了一种android系统的升级方法及装置,解决了由于设备闪存容量不足导致android系统无法升级的问题。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种android系统的升级方法,应用于安装有android系统的设备,所述方法包括:
判断android系统是否需要升级;
若是,获取升级包下载地址;
将升级包下载地址和升级标志写入misc分区,并重启所述设备;
当所述设备重启后,读取所述misc分区中的所述升级标志,进入recovery系统;
在所述recovery系统中读取所述misc分区中的所述升级包下载地址,并根据所述升级包下载地址将升级包下载到内存中;
读取内存中的升级包执行android系统的升级。
可选的,所述方法还包括:
启动机顶盒;
读取所述misc分区,当所述misc分区中不存在升级标志时,进入android系统,并执行所述判断android系统是否需要升级。
可选的,所述判断android系统是否需要升级,包括:
接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号和本次升级设备型号范围;
判断所述设备的型号是否在本次升级设备型号范围内,并判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号;
若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,判定android系统需要升级;
若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,判定android系统不需要升级。
可选的,所述判断android系统是否需要升级,包括:
接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号、本次升级设备型号范围和本次升级设备序列号范围;
判断所述设备的型号是否在本次升级设备型号范围内,判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号,并判断所述设备的序列号是否在本次升级设备序列号范围内;
若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,且所述设备的序列号在本次升级设备序列号范围内,判定android系统需要升级;
若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,或所述设备的序列号不在本次升级设备序列号范围内判定android系统不需要升级。
一种android系统的升级装置,包括:
判断单元,用于判断android系统是否需要升级;
若是,触发获取单元,用于获取升级包下载地址;
写入单元,用于将升级包下载地址和升级标志写入misc分区,并重启所述设备;
读取单元,用于当所述设备重启后,读取所述misc分区中的所述升级标志,进入recovery系统;
下载单元,用于在所述recovery系统中读取所述misc分区中的所述升级包下载地址,并根据所述升级包下载地址将升级包下载到内存中;
升级单元,用于读取内存中的升级包执行android系统的升级。
可选的,所述装置还包括:
启动单元,用于启动机顶盒;
第二读取单元,用于读取所述misc分区,当所述misc分区中不存在升级标志时,进入android系统,并执行所述判断android系统是否需要升级。
可选的,所述判断单元具体用于:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号和本次升级设备型号范围;判断所述设备的型号是否在本次升级设备型号范围内,并判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号;若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,判定android系统需要升级;若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,判定android系统不需要升级。
可选的,所述判断单元具体用于:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号、本次升级设备型号范围和本次升级设备序列号范围;判断所述设备的型号是否在本次升级设备型号范围内,判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号,并判断所述设备的序列号是否在本次升级设备序列号范围内;若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,且所述设备的序列号在本次升级设备序列号范围内,判定android系统需要升级;若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,或所述设备的序列号不在本次升级设备序列号范围内判定android系统不需要升级。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种android系统的升级方法及装置,当android系统需要升级时,不是直接将升级包下载到闪存,而是将升级包下载地址和升级标志写入misc分区,重启设备后,通过读取misc分区的升级标志进入recovery系统,在recovery系统实现将升级包下载到内存中,解决了由于设备闪存存储空间不足导致android系统无法升级的问题,节省了闪存资源,降低了设备成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种android系统的升级方法流程图;
图2为本发明实施例公开的一种判断android系统是否需要升级的方法流程图;
图3为本发明实施例公开的另一种判断android系统是否需要升级的方法流程图;
图4为本发明实施例公开的另一种android系统的升级方法流程图;
图5为本发明实施例公开的一种android系统的升级装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本实施例公开了一种android系统的升级方法,应用于安装有android系统的设备,如智能手机、平板电脑、pda、机顶盒等,所述方法包括如下步骤:
s101:判断android系统是否需要升级;
针对不同的升级控制需求,有不同的升级判断方法。
若是,执行s102:获取升级包下载地址;
若否,则不进行android系统的相关操作。
具体的,根据服务器下发的android系统升级信息获取升级包下载地址。
s103:将升级包下载地址和升级标志写入misc分区,并重启所述设备;
所述升级标志用于引导设备启动后进入android系统还是recovery系统。
misc(英文全称:miscellaneous)为杂项或者存放标志的分区。
recovery系统是用于执行系统升级动作的一个独立系统。recovery系统可以通过擦除用户数据回到出厂的初始状态,也可以通过执行升级,升级系统版本。
s104:当所述设备重启后,读取所述misc分区中的所述升级标志,进入recovery系统;
可以理解的是,当在misc分区中读取升级标志时进入recovery系统准备下载升级包,当系统升级后删除misc分区中的升级标志。
s105:在所述recovery系统中读取所述misc分区中的所述升级包下载地址,并根据所述升级包下载地址将升级包下载到内存中;
需要说明的是,将升级包下载到内存文件系统的挂载目录中,直接写入内存,相对于现有技术中将升级包写入闪存提高了写入速度。
具体的,下载升级包还需要升级包的文件大小等参数,并通过curl实现http下载,通过判断下载文件的大小去更新ui显示。
s106:读取内存中的升级包执行android系统的升级。
还需要说明的是,本实施例想要实现上述功能需要对recovery系统进行改进,如配置recovery系统的内核使其支持网络,移植dhcp-4.1.1,修改启动脚本,运行dhcp_client自动获取网络,移植libcurl,实现http下载支持,修改recovery系统的ui显示,增加下载进度条以及信息显示处理,添加纠错逻辑,如果连续3次进入recovery系统下载失败后,则擦除升级标志。
本实施例公开的一种android系统的升级方法,当android系统需要升级时,不是直接将升级包下载到闪存,而是将升级包下载地址和升级标志写入misc分区,重启设备后,通过读取misc分区的升级标志进入recovery系统,在recovery系统实现将升级包下载到内存中,解决了由于设备闪存存储空间不足导致android系统无法升级的问题,节省了闪存资源,降低了设备成本。用户可以在闪存中存储其他数据,用户不需要频繁去清理存储空间,提高了用户体验。
针对不同的升级控制需求,有不同的升级判断方法,如只要设备型号满足升级要求且设备当前安装的android系统版本低于最新版本时,采用如图2所示的判断方法,具体包括如下步骤:
s201:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号和本次升级设备型号范围;
android系统每次升级都有一个设备型号范围,即哪些型号的设备需要系统升级。
s202:判断所述设备的型号是否在本次升级设备型号范围内;
若否,执行s205:判定android系统不需要升级;
若是,执行s203:判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号;
需要说明的是,设备当前安装的android系统的版本号小于本次升级android系统版本号,说明设备当前安装的android系统的版本低于本次升级android系统的版本。
若是,执行s204:判定android系统需要升级;
若否,执行s205:判定android系统不需要升级。
当设备如机顶盒,运营商或厂家需要对每次升级的机顶盒进行控制,在此类设备在需要进行判断是否需要系统升级时,需要同时考虑设备型号、设备当前安装的android系统的版本号、以及设备序列号。请参阅图3,判断android系统是否需要升级的方法包括如下步骤:
s301:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号、本次升级设备型号范围和本次升级设备序列号范围;
不同设备可能具有相同的型号,但是不同设备的序列号不同,序列号是设备的唯一标识。
s302:判断所述设备的型号是否在本次升级设备型号范围内;
若否,执行s306:判定android系统不需要升级;
若是,执行s303:判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号;
需要说明的是,设备当前安装的android系统的版本号小于本次升级android系统版本号,说明设备当前安装的android系统的版本低于本次升级android系统的版本。
若否,执行s306:判定android系统不需要升级;
若是,执行s304:判断所述设备的序列号是否在本次升级设备序列号范围内;
若是,执行s305:判定android系统需要升级;
若否,执行s306:判定android系统不需要升级。
以上只是本实施例提供的两种系统升级判断方法,事实上,根据不同的设备控制需求或系统升级需求,还可以有其他的系统升级判断方法,本发明并不以此为限。
请参阅图4,本实施例公开了另一种android系统的升级方法,具体包括以下步骤:
s401:启动设备;
s402:判断misc分区是否存在升级标志;
若否,执行s403:进入android系统;
s404:判断android系统是否需要升级;
若是,执行s405:获取升级包下载地址;
若否,则不进行android系统的相关操作。
s406:将升级包下载地址和升级标志写入misc分区,并重启所述设备;
当misc分区存在升级标志时,执行s407:进入recovery系统;
s408:在所述recovery系统中读取所述misc分区中的所述升级包下载地址,并根据所述升级包下载地址将升级包下载到内存中;
s409:读取内存中的升级包执行android系统的升级。
本实施例公开了设备启动后根据misc分区是否存在升级标志选择进入android系统还是recovery系统,在android系统中可以执行设备的日常操作也可以在需要升级时将升级包下载地址和升级标志进入misc分区,以便于重启设备后进入recovery系统,将升级包下载到内存中。避免android系统将升级包下载到闪存,解决了由于设备闪存存储空间不足导致android系统无法升级的问题。
基于上述实施例公开的一种android系统的升级方法,请参阅图5,本实施例对应公开了一种android系统的升级装置,包括:
判断单元501,用于判断android系统是否需要升级;
若是,触发获取单元502,用于获取升级包下载地址;
写入单元503,用于将升级包下载地址和升级标志写入misc分区,并重启所述设备;
读取单元504,用于当所述设备重启后,读取所述misc分区中的所述升级标志,进入recovery系统;
下载单元505,用于在所述recovery系统中读取所述misc分区中的所述升级包下载地址,并根据所述升级包下载地址将升级包下载到内存中;
升级单元506,用于读取内存中的升级包执行android系统的升级。
可选的,所述装置还包括:
启动单元,用于启动机顶盒;
第二读取单元,用于读取所述misc分区,当所述misc分区中不存在升级标志时,进入android系统,并执行所述判断android系统是否需要升级。
可选的,所述判断单元501具体用于:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号和本次升级设备型号范围;判断所述设备的型号是否在本次升级设备型号范围内,并判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号;若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,判定android系统需要升级;若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,判定android系统不需要升级。
可选的,所述判断单元501具体用于:接收服务器下发的android系统的升级信息,所述升级信息包括本次升级android系统版本号、本次升级设备型号范围和本次升级设备序列号范围;判断所述设备的型号是否在本次升级设备型号范围内,判断所述设备当前安装的android系统的版本号是否小于本次升级android系统版本号,并判断所述设备的序列号是否在本次升级设备序列号范围内;若所述设备的型号在本次升级设备型号范围内,且所述设备当前安装的android系统的版本号小于本次升级android系统版本号,且所述设备的序列号在本次升级设备序列号范围内,判定android系统需要升级;若所述设备的型号不在本次升级设备型号范围内,或所述设备当前安装的android系统的版本号不小于本次升级android系统版本号,或所述设备的序列号不在本次升级设备序列号范围内判定android系统不需要升级。
本实施例公开的一种android系统的升级装置,当android系统需要升级时,不是直接将升级包下载到闪存,而是将升级包下载地址和升级标志写入misc分区,重启设备后,通过读取misc分区的升级标志进入recovery系统,在recovery系统实现将升级包下载到内存中,解决了由于设备闪存存储空间不足导致android系统无法升级的问题,节省了闪存资源,降低了设备成本。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。