android系统分区大小设置的经验值
背景:
1、android手机出厂后,厂商经常会提供新版本ROM升级包给用户升级。
2、android系统除平台特定的分区外,必须的通用分区有:lk、 boot 、 recovery、system、cache、userdata。
3、新版本ROM升级包,由于两种原因ROM的size会不断增大:厂商添加新功能、升级android大版本。
4、局限:android系统的recovery升级ROM不支持分区大小调整。
android系统分区大小设置的经验值
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升级软件时,不会遇到某个分区空间不足的烦人情况!
OTA升级新版本,bootimg分区空间不足怎么解决???
/kernel/arch/arm/boot/compressed,kernel压缩代码中可以看到,bootimage解压支持GZIP, LZMA ,XZ LZO, 四种算法,默认gzip 。gzip的压缩率不大,如果bootimg size太大,可以选择压缩率更大的LZMA或者XZ算法。当然压缩率符越大,解压时间越长。
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 |
更多相关文章
- Android成功刷到beagle board ^_^
- Android(安卓)WebView那些坑之上传文件
- Android(安卓)时区设置以及设置系统属性的分析
- Android开发之道(3)系统演进历史
- AndroidStudio学习笔记-03ART模式
- Android(安卓)Things入门防坑必读-树莓派硬件和系统下载安装篇
- Android(安卓)系统(36)---Android(安卓)O、N版本修改dex2oat编译选
- Android(安卓)开发环境搭建、配置(基于Windows操作系统、MyEclips
- Android(安卓)8.0 打开wifi热点