美文网首页
关于第三方库遇到的问题

关于第三方库遇到的问题

作者: gzfgeh | 来源:发表于2018-02-08 20:25 被阅读16次

Glide

  • 图片变绿
    Glide默认加载图片的格式是RGB_565 ,缺少ALPHA通道,导致加载图片变绿
  • Glide在弱网状态下加载大图片,失败几率很大
    下面是上面两个问题的解决方案
public class MyGlideModule implements GlideModule {
@Override
public void registerComponents(Context context, Glide glide) {
    // 设置长时间读取和断线重连
    OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.MINUTES).readTimeout(10, TimeUnit.MINUTES).retryOnConnectionFailure(true).build();
    glide.register(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
}

@Override
public void applyOptions(Context context, GlideBuilder builder) {
    // 防止图片变绿,在有ALPHA通道的情况下
    builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
}

}
  • Glide的OOM
    ImageView设置的ScaleType是fitxy,Glide会默认按照图片实际大小加载
    解决方法:
Glide.with(context).load().centerCrop().into()
Glide.with(context).load().fitCenter().into()

RxJava(1.x)

  • 背压问题
    在升级APP版本的时候,用的RxJava,然后上游发送的流太快导致下载失败
    解决方法:在使用之前使用sample操作符来控制采样率

Retrofit

  • gson 解析不了
    ConverterFactory使用GsonConverterFactory的时候,返回的错误gson解析不了,会报error并且log里面打印不出东西
    解决办法:添加ScalarsConverterFactory.create()用String来接收返回的信息
new Retrofit.Builder().baseUrl(url)
                //增加返回值为String的支持
                .addConverterFactory(ScalarsConverterFactory.create())
                //增加返回值为Gson的支持(以实体类返回)
                .addConverterFactory(GsonConverterFactory.create())
                //增加返回值为Oservable<T>的支持
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();

BlockCanary

利用了Android原生Looper.loop中的一个log打印逻辑,以准确定位ANR和耗时调用栈。

  • dispatchMessage执行的非常久是无法触发BlockCanary的逻辑

相关文章

网友评论

      本文标题:关于第三方库遇到的问题

      本文链接:https://www.haomeiwen.com/subject/zkqxtftx.html