image组件支持图片显示质量配置
pf-pengfeng opened this issue · comments
pengfeng commented
背景:
1.image组件大部分场景是用来显示网络jpg图片,不含有透明通道;
2.在显示jpg图片场景中,ARGB8888和RGB565显示效果差别不大;
3.Android O以下版本Bitmap内存在Java堆上,加载大量图片容易出现OOM;
vivo快应用发布灰度版本,Android O版本以下将image对应的native组件FlexImageView默认加载的Bitmap格式从ARGB8888改为RGB565,从线上数据统计来看,由加载图片导致的OOM下降41.7%,整体JE崩溃率下降34.5%,收益比较可观。
针对上述情况提出改进方案:
1.image组件增加如下属性:
||名称||类型||默认值||必填||描述||
|quality|high | low|-|否|图片显示质量配置。high表示高质量显示,low表示低质量显示。Android O版本以下默认为low,Android O版本及以上版本默认为high。|
正常情况下,CP不需要配置该属性。除非在Android O以下版本CP确实有高质量图片显示需求。
- 若该属性CP没有配置,则Android O以下版本FlexImageView组件默认加载Bitmap格式为RGB565。Android O及以上仍保持现状,Bitmap格式为ARGB8888。若该属性CP进行了配置,则以CP配置为准,low表示FlexImageView加载Bitmap格式为RGB565,high表示FlexImageView加载Bitmap格式为ARGB8888。