Skip to content

0x03j ImageCanary_zh

hui.zhao edited this page Dec 7, 2019 · 2 revisions

ImageCanary

安装

使用如下配置进行安装

GodEye.instance().install(GodEyeConfig.defaultConfigBuilder().withImageCanaryConfig(new GodEyeConfig.ImageCanaryConfig(DefaultImageCanaryConfigProvider.class.getName())).build());

或者

<imageCanary imageCanaryConfigProvider="cn.hikyson.godeye.core.internal.modules.imagecanary.DefaultImageCanaryConfigProvider"/>

imageCanaryConfigProvider为实现了ImageCanaryConfigProvider接口的类的全路径,默认使用DefaultImageCanaryConfigProvider

public interface ImageCanaryConfigProvider {
    // 规则:Bitmap和ImageView相比是否太大,用于检测过大的Bitmap设置在较小的ImageView上
    boolean isBitmapQualityTooHigh(int bitmapWidth, int bitmapHeight, int imageViewWidth, int imageViewHeight);
    // 规则:Bitmap和ImageView相比是否太小
    boolean isBitmapQualityTooLow(int bitmapWidth, int bitmapHeight, int imageViewWidth, int imageViewHeight);
}

数据生产与消费

使用如下方式监听模块输出的数据:

try {
    GodEye.instance().observeModule(GodEye.ModuleName.IMAGE_CANARY, new Consumer<ImageIssue>() {
                @Override
                public void accept(ImageIssue imageIssue) throws Exception {
                }
            });
        } catch (UninstallException e) {
            e.printStackTrace();
        }

会在每次视图更新或布局变化之后进行检测,如果有之前没有报出过的图片问题就会回调,imageIssue中记录了有问题的图片和视图信息

DebugMonitor Dashboard

android_god_eye_image_canary

Clone this wiki locally