1.为何要计算动态分区剩余多少空间?
因为产品还会无休止的往里内置多媒体文件,或者其他个人认为必要的文件或者APP等,这时候你需要知道你的系统分区还能放多少东西。否则加多了产品编译失败:
lpmake E 06-14 19:21:06 1876 1876 builder.cpp:620] [liblp]Partition system_ext_a is part of group qti_dynamic_partitions_a which does not have enough space free (660688896 requested, 3239821312 used
out of 3753902080)
Not enough space on device for partition system_ext_a with size 660688896
总大小3753902080(byte) < 3239821312+660688896=3900510208(byte)。
2.查看系统当前super分区的大小:
用lpdump命令:
Name: qti_dynamic_partitions_a
Maximum size: 3753902080 bytes
Flags: none
得到当前动态分区A分区总大小3753902080byte.
3.查看已经使用的系统分区容量:
console:/ # df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 1018864 876 1017988 1% /dev
tmpfs 1018864 0 1018864 0% /mnt
/dev/block/dm-0 776264 773912 2352 100% /
/dev/block/dm-4 619968 618112 1856 100% /system_ext
/dev/block/dm-1 609576 607728 1848 100% /vendor
/dev/block/dm-2 384420 383256 1164 100% /product
/dev/block/dm-3 680 676 4 100% /odm
从df命令可以看出super分区使用情况,总共使用了 773912+618112+607728+383256+676=2383684×1024=2440892416byte
怎么看df命令中的哪些分区是属于动态分区:
a.先确定你的系统是动态分区,getprop ro.boot.dynamic_partitions返回true表示使用了动态分区;
b.通过lpdump命令可以看出哪些分区是super分区的:
Partition table:
------------------------
Name: system_a
Group: qti_dynamic_partitions_a
------------------------
Name: vendor_a
Group: qti_dynamic_partitions_a
------------------------
Name: product_a
Group: qti_dynamic_partitions_a
------------------------
Name: odm_a
Group: qti_dynamic_partitions_a
------------------------
Name: system_ext_a
Group: qti_dynamic_partitions_a
当然在编译阶段还有很多方式可以看出来super list 分区集合,这里不列出。