hapjs-platform / hapjs

快应用标准框架实现,支持快应用的加载、运行、渲染,提供必要API的支持

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

image组件支持图片显示质量配置

pf-pengfeng opened this issue · comments

背景:

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确实有高质量图片显示需求。

  1. 若该属性CP没有配置,则Android O以下版本FlexImageView组件默认加载Bitmap格式为RGB565。Android O及以上仍保持现状,Bitmap格式为ARGB8888。若该属性CP进行了配置,则以CP配置为准,low表示FlexImageView加载Bitmap格式为RGB565,high表示FlexImageView加载Bitmap格式为ARGB8888。