本发明涉及软件技术领域,特别涉及基于android系统的emmc兼容设计方法。
背景技术:
随着这几年android智能电视市场整体平稳增长,各大智能电视制造商也在进行各种销售渠道进行了各自产品功能和配置的差异化设计。为此,对于同一个芯片方案来说,需要搭配适合该渠道的emmc越来越普遍。
在智能电视产品开发中我们面对的emmc有可能和生产时采购的emmc不一致,可能是不同品牌,也可能是不同大小的emmc。我们如何做到在软件中兼容这些不同的emmc就显得比较重要了。
技术实现要素:
本发明要解决的技术问题是:提供一种基于android系统的emmc兼容设计方法,当设备使用不同的emmc时,做到软件对各种不同emmc自适应。
为解决上述问题,本发明采用的技术方案是:基于android系统的emmc兼容设计方法,包括步骤:
a.设定data分区的默认分区大小;
b.获取emmc的实际容量,并根据实际的emmc大小、data分区的默认分区大小计算data分区的起始位置;
c.根据emmc的实际容量、data分区的起始位置、预留空间计算data分区的实际大小,计算公式为:data分区的实际大小=emmc的实际容量-data分区的起始位置-预留空间;
d.将data分区的实际大小写入系统。
进一步的,步骤a的实现方式为:通过修改boardconfig.mk文件中的分区定义。
本发明的有益效果是:本发明将android系统的data分区的空间分配改成可变的,可以根据实际使用的emmc的大小来分配空间,因此可以提高软件的兼容性,不需要因为切换不同的emmc去改动软件。该方案极大减低了编译成本和代码维护成本,提高了生产效率
附图说明
图1为实施例的流程图。
具体实施方式
emmc的物理分区分为:
1.bootareapartition1
2.bootareapartition2
3.rpmb
4.userdataarea
其中boot1,boot2和rpmb分区是不可以修改的,我们所做的是将userdataarea划分成不同的分区,例如system,cache,hwcfg等等,这些分区都是指的“逻辑上”的,即通过软件来实现的,文件系统级别的。以下的data分区指的就是userdataarea里的逻辑分区。
如图1所示,实施例提供一种基于android系统的emmc兼容设计方法,包括以下步骤:
a.设定data分区的默认分区大小。
本步骤中,通过修改boardconfig.mk这个文件中的分区定义
board_userdataimage_partition_size:=0x32000000
这里填的值是换算出的实际字节数,为了兼容不同容量的flash,这个默认值填的小些,可以只分1g的大小。
b.获取emmc的实际容量,并根据实际的emmc大小、data分区的默认分区大小计算data分区的起始位置。
c.根据emmc的实际容量、data分区的起始位置、预留空间计算data分区的实际大小,计算公式为:data分区的实际大小=emmc的实际容量-data分区的起始位置-预留空间。
由于不同厂家的emmc的实际容量有差异,比如:
toshibaemmctotalsize:3959418880bytes=3776mb
samsungemmctotalsize:3909091328bytes=3728mb
三星的emmc的实际容量普遍偏小,4g的emmc,三星比东芝小了48m,因此为了兼容这两个厂家的emmc,我们从总容量里减去了48m,考虑到同一厂家的emmc也会有轻微差异,我们再减去了4m。如果还有其他厂家的emmc就要根据实际的容量差异来调整减去的空间大小。
d.将data分区的实际大小写入系统。这样就能保证,不管是4g还是8g的emmc,pkg升级后系统能根据emmc的实际大小来改变data分区的大小。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。