C1☆ Blog

Thinking will not overcome fear but action will.

OkHttp源码解析(一)请求与响应流程

Android框架学习

OkHttp源码解析(一)请求与响应流程 前言 前段时间再回顾计算机网络相关的知识点,但是毕竟太理论化,然后我们项目里是基于OkHttp封装的一个网络库,所以最近一段时间想基于OkHttp走一下流程,做一波计网理论知识的实践 Request /** * An HTTP request. Instances of this class are immutable if their {...

Picasso源码解析

Android框架学习

Picasso源码解析 Picasso-> get public static Picasso get() { if (singleton == null) { synchronized (Picasso.class) { if (singleton == null) { if (PicassoProvider.context...

LeakCanary源码解析

Android框架学习

LeakCanary源码解析 前言 因为前段时间做项目维护的时候在使用了一下LeakCanary,也听不少前辈讲过它的原理,不过现在项目转接给了师弟师妹们之后很想自己也走一遍框架流程,站在源码的角度体会一下作者当时的想法和设计 LeakCanary-> install public static @NonNull RefWatcher install(@NonNull Appl...

EventBus源码解析

Android框架学习

EventBus源码解析 注册 EventBus-> register public void register(Object subscriber) { Class<?> subscriberClass = subscriber.getClass(); List<SubscriberMethod> subscriberMe...

ARouter源码解析

Android框架学习

ARouter源码解析 前言 最近读了很多系统的源码还有前沿技术框架的源码,大脑消耗有点大,趁着周日调整放松一下自己,走一下项目里用的框架的源码,虽然之前就读过,但是总感觉现在再读一次源码会有不一样的收获,最后就是mark下来 初始化 ARouter-> init public static void init(Application application) { ...

Android资源学习(六)apk包体积优化

Android资源学习系列

Android资源学习(六)apk包体积优化 资源混淆 aapt 通过修改aapt在生成resources.arsc和*ap_时把资源文件的名称进行替换 tatic status_t makeFileResources(Bundle* bundle, const sp<AaptAssets>& assets, ...

Android资源学习(五)资源热修复

Android资源学习系列

Android资源学习(五)资源热修复 前言 本文主要结合Android9.0资源编译,资源查找的流程,分析资源热修复的处理和实现,一开始找源码找得有点小累,因为在Android Code Search中怎么搜都搜不到,后来就只能去google git看了,源码的目录就在 android / platform / tools / base / refs/tags/gradle_3.4....

Android资源学习(四)资源技术使用

Android资源学习系列

Android资源学习(四)资源技术使用 前言 读Android9.0的源码,从资源编译到资源管理器初始化到资源查找,学习了Android对读取的优化,对代码结构的设计,对缓存方式的设计等等,但是其实不管黑猫还是白猫,能用在项目里的才是好猫,所以,笔者才想写一篇Android资源相关技术的使用以及框架,然后持续更新对应框架的源码阅读笔记 # 换肤 动态换肤方案的几个关注点: ...

Android资源学习(三)资源查找

Android资源学习系列

Android资源学习(三)资源查找 本文源码基于Android9.0 # Resources-> getLayout public XmlResourceParser getLayout(@LayoutRes int id) throws NotFoundException { return loadXmlResourceParser(id, "lay...

Android资源学习(二)资源管理系统初始化

Android资源学习系列

Android资源学习(二)资源管理系统初始化 本文源码基于Android9.0 前言 这篇文章的目的,主要是专注于Android中在Java层中资源管理系统的初始化,在日常开发中,经常会用到getResources.getXXX,所以说明Resource肯定在某个时机进行的初始化,然后把aapt编译的资源加载进来, 而getResources的起源就是ContextImpl...