简介
最近接到一个需求,客户觉得ota升级时,提示字体较小。需求增大提示字体的大小。
解决方案
上网找到直接修改build/core/Makefile文件中recovery_density的赋值。由 mdpi —> xhdpi.
原理:编译系统根据recovery_density的值来最终决定拷贝哪个字体文件。
这里说的字体文件实际上是图片,它位于bootable/recovery/fonts目录下,默认用的是12x22.png,
如果分辨率大于或等于Xhdpi的话会使用18x32.png。
修改如下
--- Makefile (revision 295)+++ Makefile (revision 296)@@ -794,7 +794,7 @@recovery_density := $(filter %dpi,$(PRODUCT_AAPT_PREF_CONFIG))else# Otherwise, use the default medium density.-recovery_densities := mdpi+recovery_density := xhdpiendif
新的问题
所有的字体都变大了,导致屏幕显示不正常。
解决方案
字体文件文件只是显示用的ota升级提示是通过截取图片资源(res-**/images/.png)来实现的思考:拷贝那个文件是通过recovery_densities来控制的,所以当前应该是res-mdpi/images/*.png中的资a源文件。
修改recovery_densities会导致所有的资源都变大,从而导致显示不全的的问题。
在不修改recovery_densities的情况下,将res-xhdpi/images/中的资源文件拷贝覆盖掉res-mdpi/images/中的资源文件。
修改
cp res-xhdpi/images/installing_text.png res-mdpi/images/installing_text.png
测试就ota升级提示字体变大了。
测试recovery UI
其实,recovery mode中提供了ui测试选项。
enter the recovery mode(adb reboot recovery)选中Run graphics test(测试ui)选中Run locale test(测试字体)