sparseArray其实里面维护了两个数组来存储数据private int[] mKeys;存key通过二分法查找private Object[] mValues;存val...
HashMap<K,V> extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable 1.重要属...
文字在中间的进度条件,主要思路是文字覆盖到一根线上。然后使用PorterDuffXfermode处理文字的bitmap去掉线,看到github上人家是画左右两根线和文字处理办...
//本文参考菜鸟教程设计模式主要分为三大类创建型模式,结构型模式,行为型模式,本文主要讲行为型模式行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链...
//本文参考菜鸟教程设计模式主要分为三大类创建型模式,结构型模式,行为型模式,本文主要讲结构型模式结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组...
//本文参考菜鸟教程设计模式主要分为三大类创建型模式,结构型模式,行为型模式,本文主要讲创建型模式创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模...
android的事件分发首先是由ViewRootImpl.java的setview开始。 总结 View.dispatchTouchEvent 只有事件的处理逻辑ViewGr...
上节setcontentview的时候生成Decorview,那他怎么绑定到window上去的呢。 接下来只要看ViewRootImpl.setview方法requestLa...
1.activity的setcontent流程 这里面是phonewindow调用setcontentview 2.AppCompatActivity的setcontentv...
2.简单使用 先看provideRetrofit().create(TestApi::class.java) 先看步骤一 步骤二查看loadServiceMethod(met...
workmanage使用场景 非及时性的执行任务或者定时性重复任务,要求及时性/时效性不高的比如上传日志什么的。Google说WorkManager是保证你的任务一定会执行的...
简单用法 首先看postvalue 可以看出postvalue是任何线程中调用最后会使用ArchTaskExecutor.getInstance().postToMainTh...
lifecycle几种使用方式 lifecycle源码解析 基础概念 Lifecycle: 是一个表示android生命周期及状态的对象LivecycleOwner:(可以理...
进程和线程 进程是程序运行资源分配的最小单位,其中资源包括cpu、内存空间、磁盘io。线程是cpu调度的最小单位。在intel引入超线程技术后,核心数和线程数是1:2关系但实...