glide

月薪30K大佬源码阅读的经验总结,干货不容错过

…衆ロ難τιáo~ 提交于 2020-04-14 10:13:46
【推荐阅读】微服务还能火多久?>>> 在长沙待的那些年,身边所看到的大概可分为两类人, 一类是不断反复的做业务逻辑,只求功能能够写出来,每天重复上下班,不想过多的去折腾;还有一类是不断的反思总结和学习,不只停留在做的层次上,是真正的喜欢做这行,且觉得非常有意思 。没有什么好与坏,只是大家的追求不同而已。但如果我们想要去大一点的公司,或者找一份工资稍微高些的工作,后面我们就会有很多坎要去迈,其中一个就是阅读源码,所以这期我们主要来探讨一下阅读源码的 一些姿势。在真正踏上这条路之前,希望我们能明确以下几点: 没有人一上来就可以看得懂源码,我们都是从 Hello World 开始的,所以没有什么捷径可以走,无非就是看我们谁花的时间多,谁更愿意折腾。 大家都是上下班,为啥别人工资拿得高福利又好,而自己大小周,偶尔还需要加班通宵。同样三四年别人拿 20k,我自己却只拿了 10k。注意我说的是 20k ,之前写过一篇文章 《从3K到30K,23岁的年纪我到底经历了什么》 这次同样怕某些哥们会喷,哪有那么高?我们心中要有美好的信念,要有不断向上的激情。 能力提升过程中我们能从中获得很多东西,内心也会变强大,关键是我们在做项目的时候,的确会要顺手很多,这就可以拿来换钱和时间,前提是我们愿意拿时间去换。 一.常用工具 首先来介绍一些看源码的工具,第一个就是我们的开发工具 Android Studio

新冠病毒药物研发分秒必争,阿里高性能计算如何出力?

早过忘川 提交于 2020-03-25 07:20:21
3 月,跳不动了?>>> 阿里妹导读: 新冠状病毒疫情发生后,为了帮助抗攻击疫情,阿里云免费向全球公共科研机构提供高性能计算、SCC超级计算集群和>CPU/GPU机器、云超算及AI等技术。 近期,不少研究机构和高校在阿里云上E-HPC云超算上进行药物研发相关的数值计算,阿里云超算团队提供了技术支持与跟进。 本文主要介绍药物筛选阶段,E-HPC云超算如何帮助研发人员实现大量小分子库的快速并发处理。同时,介绍全球健康药物研发中心GHDDI算>力和成果共享开放平台的阿里云解决方案。 病毒、药物研发和高性能计算 一款药物的诞生周期极其漫长,从最早的新药研发到上市,至少要经历10年。 在疫情这般分秒必争的背景下,时间尤为珍贵。因此在本次过程中,许多科学家会尝试从已有的药物里面,找到能治疗新冠的药,免去了后续大量审批上市等步骤。 化合物发现阶段,以往的方法是通过大量实验做筛选,发现可能适合的化合物。如今,科学家尝试通过机器模拟分子化合物与靶点的相互作用,从而筛选出可能有效的化合物做实验。 在此过程中,高性能计算(HighPerformance Computing,简称HPC),常被称为“超算”,是现代药物研发必不可少的支持。 云计算的兴起更是改变了科学家获取算力、享受超算服务的方式。比如阿里云E-HPC 云超算产品,能够让科学家自助在云上搭建高性能集群系统,满足药物研发人员对计算平台的需求。

Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity

拜拜、爱过 提交于 2020-03-23 13:18:46
解决办法 在使用Glide的那段代码加是否在主线程判断 if(Util.isOnMainThread()) { Glide.with(ClassifyItemDetailActivity.this).load(ConstantsYiBaiSong.CLASSIFY_LIST_ITEM_DETAIL_IMAGE + lists.get(i).get( "face")) .diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView); } 在onDestory加 @Override protected void onDestroy() { super.onDestroy(); Glide.with(this).pauseRequest(); } 子线程所有的this 都要写成getApplicationContext //这个主要针对于在子线程使用Glide 来源: https://www.cnblogs.com/zhujiabin/p/7439540.html

Glide实现圆角和圆形图片

回眸只為那壹抹淺笑 提交于 2020-03-21 18:52:05
实现圆形图片 , 传参第一个为上下文, 第二个为角度 package com.hh.beauter.util; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; /** * Created by Hh on 2017/1/5. */ public class GlideRoundTransform extends BitmapTransformation { private static float radius = 0f; public GlideRoundTransform(Context context

Glide加载图片报错You must not call setTag() on a view Glide is targeting

不想你离开。 提交于 2020-03-21 13:09:06
报错信息为:You must not call setTag() on a view Glide is targeting 原因就是View使用setTag后导致Glide之前请求的标记被清除,强制转换过程中不能将你给定的类型判断为Request类型所致。 在Glide源码中可追溯: if (tag instanceof Request) { request = (Request) tag; } else { throw new IllegalArgumentException("You must not call setTag() on a view Glide is targeting"); } 所以你可以在Glide代码执行之后在使用 setTag就不会出现异常了! ***但是这里仍然有个“坑”在Glide代码执行之后 使用 setTag会出现不定期无法加载图片 ,如果我们必须要使用setTag的话请使用setTag(id,val);即可,这里需要添加一个value/ids资源文件; 配置例如: <resources> <!--给图片标记索引位置--> <item name="indexTag" type="id" /> </resources> 来源: https://www.cnblogs.com/zzq-include/p/6135312.html

Glide源码解析一,初始化

爱⌒轻易说出口 提交于 2020-03-05 20:08:19
转载请标明出处: https:////www.cnblogs.com/tangZH/p/12409849.html Glide作为一个强大的图片加载框架,已经被android官方使用,所以,明白Glide的加载流程以及原理对加深我们对glide的理解是很重要的。 本文基于glide 4.11 Glide.with(this).load("").into(new ImageView(this)); 我们从这一句入手,先看看Glide的初始化过程,也就是Glide.with(this)这个方法。 一、单例实例化 可以看到里面有多个重载方法,最常用的是这个,这些方法最终返回的是 RequestManager 。 都一致调用了 getRetriever(...).get(view) 。 我们看一下 getRetriever(...) 里面做了什么。 getRequestManagerRetriever()返回的是一个RequestManagerRetriever,我们主要看的是Glide.get(context) 可以看到Glide.get(context)里面进行了初始化的操作,它是我们熟悉的单例模式。最终会调用 二、GlideModule配置加载 上面的get方法中,我们需要注意这一句: GeneratedAppGlideModule annotationGeneratedModule

glide 下载golang.org包问题

为君一笑 提交于 2020-03-05 09:58:09
今天编译Uber的Aresgo。依赖管理用 glide,下载golang.org 包的时候遇到问题。 方法一: 设置 glide mirror glide mirror set https://golang.org/x/mobile https://github.com/golang/mobile --vcs git glide mirror set https://golang.org/x/crypto https://github.com/golang/crypto --vcs git glide mirror set https://golang.org/x/net https://github.com/golang/net --vcs git glide mirror set https://golang.org/x/tools https://github.com/golang/tools --vcs git glide mirror set https://golang.org/x/text https://github.com/golang/text --vcs git glide mirror set https://golang.org/x/image https://github.com/golang/image --vcs git glide mirror

「Glide」中的Job

别来无恙 提交于 2020-02-28 07:22:01
「Glide」源码解析系列 「Glide」一切的开始 「Glide」目标的确定 「Glide」中的跟踪者 「Glide」请求的生成 「Glide」请求的开始 「Glide」中的Engine 「Glide」中的Job 承前启后 Engine Engine将要加载的资源在引用缓存和内存缓存中均未命中,重任就交到了Job身上。 这节就来看看有几种Job,他们的功能是什么! 此节涉及到的类有 EngineJob GlideExecutor DecodeJob Job流程 这是Engine.load方法中,Job逻辑调用相关的代码 Engine.load 梳理流程: 创建了engineJob和decodeJob对象,且engineJob为decodeJob的参数; key与engineJob的关联,并存储在jobs中 给engineJob加监听 engineJob启动decodeJob 能够看出engineJob和decodeJob并不是同一级,engineJob调用decodeJob使其工作,然后engineJob将工作状态回调到SingleRequest。(挖了这么深,终于触底反弹了) EngineJob 先来看看EngineJob对象的产生 Engine Pools.Pool的用法在 「Glide」请求的生成 一节中有介绍 这里通过pool复用EngineJob对象

Glide之LruCache

↘锁芯ラ 提交于 2020-02-26 23:32:07
Glide中的LruCache和Android中的LruCache不太一样,属于简化版本,不过思想是一样的。都是利用了LinkedHashMap accessOrder 等于true时会对内容按照访问的先后顺序排序,会把最近访问的元素放到双链表的尾部这样一个特性实现的。 Glide中LruResourceCache继承了LruCache实现了MemoryCache接口,这个内存缓存池的大小是MemorySizeCalculator计算出来的,就是和屏幕一样大的两张图,RGBA存储占用的字节数 Java集合详解5:深入理解LinkedHashMap和LRU缓存 来源: CSDN 作者: Zhongyi_Li 链接: https://blog.csdn.net/lizhongyisailang/article/details/104523820

XUI 一个简洁而优雅的Android原生UI框架,解放你的双手!

纵饮孤独 提交于 2020-02-26 08:35:43
XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击 使用说明文档 ,体验一下吧! > 涵盖绝大部分的UI组件:TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、LoadingView、StateLayout、FlowLayout、Switch、Actionbar、TabBar、Banner、GuideView、BadgeView、MarqueeView、WebView、SearchView等一系列的组件和丰富多彩的样式主题。 在提issue前,请先阅读 【提问的智慧】 ,并严格按照 issue模板 进行填写,节约大家的时间。 在使用前,请一定要仔细阅读 使用说明文档 ,重要的事情说三遍!!! 在使用前,请一定要仔细阅读 使用说明文档 ,重要的事情说三遍!!! 在使用前,请一定要仔细阅读 使用说明文档 ,重要的事情说三遍!!! 关于我 X系列库快速集成 为了方便大家快速集成X系列框架库,我提供了一个空壳模版供大家参考使用: https://github.com/xuexiangjys/TemplateAppProject 除此之外,我还特别制作了几期 视频教程 供大家学习参考. 特征 简洁优雅,尽可能少得引用资源文件的数量