1、android手机出厂后,厂商经常会提供新版本ROM升级包给用户升级。
2、android系统除平台特定的分区外,必须的通用分区有:lk、 boot 、 recovery、system、cache、userdata。
3、新版本ROM升级包,由于两种原因ROM的size会不断增大:厂商添加新功能、升级android大版本。
4、局限:android系统的recovery升级ROM不支持分区大小调整。
1、 lk >=1M //虽然lk一般只有300k size左右,但如果需要添加一些开机logo等,空间需求还是会比较大,2M足够啦。
2、boot >= 20M or 50M // boot image 如果采用压缩方式:20M就足够了。如果采用非压缩方式,则最好配置50M 。
3 、recovery >= 20M //recovery 也是包括kernel、及ramdisk-recovery 。另外、如果需要优化recovery ui ,需要增加不少ui资源图片。
4、 system 1.2G -- 1.5G // system分区是android系统ROM升级主要的内容了,需要预留足够的空间。
//一般4G, 8G emmc项目,该分区可以设置1.2G-1.5G ,如果使用的是16G以上的emmc 可以设置成2G
5、 cache 200M ...... // 一般该分区设置200M就可以啦,google官网对该分区的要求也不高。 设大了不知道是否有什么好处?
//当然,大容量emmc项目如果想将cache分区用于OTA升级时暂存升级包,那得将它设置成和system分区大小接近。比如: 1.5或2G 。
6、 userdata ........ //android 2.2以后采用fuse文件系统将userdata与sdcard合并。那么平台一般会将剩余的emmc空间全部自动留给userdata 。
总之, 项目上市前,各系统各分区设置都要有一定的余量,使上市后OTA升级软件时,不会遇到某个分区空间不足的烦人情况!
CONFIG_KERNEL_GZIP=yes
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_XZ is not set
Kernel default使用GZIP, 建議修改為XZ演算法即可大幅縮減size.
但會有開機時間增加的sideeffect, 約略增加650ms~~
開機時間 vsKernel Image Size
|
start |
end |
Time(ms) |
Size |
GZIP |
5166 |
5958 |
792 |
4372 |
1497 |
2289 |
792 |
5178 |
|
LZMA |
1448 |
3295 |
1847 |
3261 |
1448 |
3295 |
1847 |
4068 |
|
XZ |
1433 |
2875 |
1442 |
3067 |
1431 |
2874 |
1443 |
3874 |