
Android源码分析
孤独浪人1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LiveData源码分析
LiveData源码分析LiveData是Android提供的监听数据更新的框架,它能够感应Activity/Fragment的生命周期,接下来的内容我们来通过简单的用法去探索LiveData源码的核心知识点。LiveData感应生命周期的核心Android涉及到生命周期的时候,基本都是和Lifecycle类有关,我们先来看一下**LiveData.observe(LifecycleOwn...原创 2020-03-17 14:49:18 · 499 阅读 · 0 评论 -
ViewModel源码分析
ViewModel源码分析学习过ViewModel的都知道,ViewModel主要对数据进行存储维护,当在异常情况下(横竖屏)Activity被销毁的时候恢复数据。Android异常情况下维护数据的方法Activity.onSaveInstanceState和Activity.onRestoreInstanceStateFragmentActivity.onRetainNonConfig...原创 2020-03-14 17:04:05 · 297 阅读 · 0 评论 -
Mutidex源码分析和优化
Mutidex源码分析和优化因为单个DEX文件被限制在65535之内,在Android5.0以上的时候,Android系统开始支持多Dex,所以我们可以直接在build.gradle配置multiDexEnabled true就可以了,然后Android5.0以下仅仅支持单Dex,所以Google提供了相关的兼容库对Android5.0以下的系统进行兼容,这个兼容库就是Mutidex,接下我们将...原创 2019-10-19 10:15:47 · 469 阅读 · 0 评论 -
GreenDao3.0 源码分析-Dao层
Dao 是GreenDao进行数据查询的一层,起到非常重要的作用,今晚我们就来聊聊GreenDao是如何做增删改查的吧。 Order实体 我们从稍微复杂的Order进行分析,去除自动生成的代码,源实体是: @Entity(active = true, nameInDb = "ORDERS")public class Order { @Id ...原创 2018-05-13 11:08:59 · 1063 阅读 · 0 评论 -
Dagger2进阶-Scope的源码探究
前言 Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究项目源码传送门学习了Scope,我们一定很疑惑为什么Scope注解只能做到对Component...原创 2018-04-07 11:26:19 · 640 阅读 · 0 评论 -
Dagger2进阶-编译生成源码解读
前言Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 项目源码传送门 根据前面两...原创 2018-04-06 14:36:30 · 751 阅读 · 1 评论 -
解密RecyclerView自定义分割线
解密RecyclerView自定义分割线RecyclerView的分割线ItemDecoration是可以自定制的,但是很多情况下我们并不懂怎么去定制它,这需要我们去了解其原理,安卓内部是怎样去实现它的,然后才能定制出各种花样各异的不同分割线,那么接下来我们先看看RecyclerView中的静态抽象内部类ItemDecoration,所有的自定制分割线都应该继承这个抽象类,并实现里面的方法:...原创 2016-09-22 10:49:02 · 3174 阅读 · 1 评论 -
揭露RecyclerView的下拉刷新上拉加载的原理
揭露RecyclerView的下拉刷新上拉加载的原理本文通过修改和理解 https://github.com/HomHomLin/Android-PullToRefreshRecyclerView 中的源码来探索下拉刷新上拉加载的原理,大家可以自行下载其源码来看,我这里就不贴了。其下拉刷新使用的是原生安卓系统的,后面我会教大家使用原声下拉刷新来进行自定制我们需要的动画效果。上拉加载的原...原创 2016-09-28 10:11:11 · 3462 阅读 · 1 评论 -
ImageLoader使用的DiskLruCache硬盘缓存算法
转载自:简书的排版 最近在研究ImageLoader的源码,发现一个硬盘缓存比较通用的类,这个类不属于谷歌官方却受官方亲睐,基本硬盘缓存都可以利用这个类来实现。 我们先来说一下缓存记录文件journal文件:journal文件作用:记录缓存的文件的行为:删除、读取、正在编辑等状态。 “` libcore.io.DiskLruCache 1 1 1DIRTY c3...原创 2017-09-20 14:14:17 · 651 阅读 · 2 评论 -
ImageLoader源码解析-----ImageLoader的结构
最近在研究ImageLoader的源码,希望能分享出自己的思路。具体源码移步Github下载:https://github.com/nostra13/Android-Universal-Image-Loader 我们先不急着对源码进行讲解,如果有什么失误请大家留言探讨,我们先来了解一下ImageLoader的相关类依赖简略结构图:从图中我们可以分为三层: 1:UI层。 2:加载展示逻...原创 2017-06-23 09:12:33 · 381 阅读 · 0 评论 -
GreenDao3.0源码分析-Helper
图片原图可以从github 源码地址 ->GreenDao 文件中 亿图 打开。GreenDao3.0源码架构图 上面是我画的GreenDao分层,我们将根据分层逐步分析原理。GreenDao3.0原理 从图中我们可以看到,其实GreenDao3.0是以Android Sqlite为底层,然后做一些缓存使得大数据的时候能更有效的增删改查。GreenDao最吸引我的:一是对缓存的处...原创 2018-04-22 22:16:50 · 1432 阅读 · 0 评论 -
GreenDao3.0 源码分析-DaoMaster和DaoSeesion
AbstractDaoMaster从图中我们知道,DaoMaster和AbstractDaoMaster是父子类的关系,我们先看AbstractDaoMaster:从上面类图中,我们知道daoMaster维护一个daoConfigMap以Dao.class为key维护一个映射关系,而且通过调用我们可以知道 AbstractDaoMaster的功能主要职责之一是创建注册DaoConfig,并且维护他...原创 2018-05-01 23:43:38 · 2078 阅读 · 1 评论