Yorek's Blog
Matrix-SQLiteLint解析
正在初始化搜索引擎
Home
Android
Books
LeetCode
Flutter
Yorek's Blog
Home
Android
Android
三方库系列
三方库系列
Android三方库源码分析
微信APM Matrix解析
Matrix-TraceCanary解析
Matrix-ASM插桩插件解析
Matrix-IOCanary解析
Matrix-ResourceCanary解析
Matrix-ApkChecker:安装包分析检测工具
Matrix-SQLiteLint解析
最常用的PLT Hook框架:xHook
AndResGuard资源混淆原理浅析
剖析hprof文件的两种主要裁剪流派
OkHttp3源码解析
Retrofit2源码解析
RxJava源码解析及使用实例
RxJava操作符大全
Glide v4 源码解析(一)
Glide v4 源码解析(二)
Glide v4 源码解析(三)
Glide v4 源码解析(四)
Glide v4 源码解析(五)
Glide v4 源码解析(六)
Glide v4 源码解析(七)
杂记:从Picasso迁移至Glide
EventBus源码解析
LeakCanary2源码解析
PermissionDispatcher源码解析
ConstraintLayout使用大全
初学者的Dagger2教程
Hotfix方案初探
自研
自研
APM示例
framework系列
framework系列
Activity
Service
Broadcasts
Content Providers与Fragment
IPC机制
View的事件体系
View的绘制原理以及自定义View
RemoteViews
Android中的Drawable资源
Android动画
Window与WindowManager
四大组件启动过程
Android消息机制
Android线程与线程池
Bitmap的缓存与加载
JNI与NDK编程简介
Android性能优化
Binder深入理解——以MediaService为例
Binder深入理解——罗老师系列
杂记
杂记
Android开发常见命令
Android TV 专项
注解的定义及解析
这可能是MVVM中最优雅的按键防抖方案
Jenkins for android
普通Android程序使用SystemProrities
ListView、RecyclerView缓存策略解析
RecyclerView高级特性——ItemDecoration
RecyclerView的一些使用细节
RecyclerView高级特性——拖拽排序以及滑动删除
FloatingActionButton上滑隐藏下滑显示
NestedScrolling机制
使用Porter-Duff合成数字图像
Android Runtime
Android马甲包的那些事儿
Android神兵利器
FileProvider
Android判断虚拟按键(导航栏)显示与否、高度以及获取屏幕实际高度
Android图片选择器
Android原生底部导航栏
Android搜索栏的实现
Android暂停酷狗、网易云音乐等音乐播放器的播放
Android滑动返回实践
MacOS下Android程序反编译
Android通讯录快速读取
App内自定义软键盘
腾讯TBS X5浏览器内核入坑指南
琐碎知识点
琐碎知识点2
基础知识
基础知识
理解Java中synchronized关键词
理解Service
理解Activity的启动模式
关于startActivityForResult
关于View的知识
关于Gradle的知识
关于序列化的知识
Android中的ClassLoader
Binder简介
OkHttp和Retrofit的作用以及两者之间的联系
JVM中垃圾回收策略
进程保活
四大组件的作用以及多进程
网络协议
MVC、MVP和MVVM
Android Studio build过程
大尺寸图片加载问题
Java&Kotlin在泛型方面的区别
Java集合总结
Java常见概念
Android开发高手课
Android开发高手课
Android开发高手课
01 | 崩溃优化(上):关于“崩溃”那些事儿
02 | 崩溃优化(下):应用崩溃了,你应该如何去分析?
03 | 内存优化(上):4GB内存时代,再谈内存优化
04 | 内存优化(下):内存优化这件事,应该从哪里着手?
05 | 卡顿优化(上):你要掌握的卡顿分析方法
06 | 卡顿优化(下):如何监控应用卡顿?
06补充篇 | 卡顿优化:卡顿现场与卡顿分析
07 | 启动优化(上):从启动过程看启动速度优化
08 | 启动优化(下):优化启动速度的进阶方法
09 | I/O优化(上):开发工程师必备的I/O优化知识
10 | I/O优化(中):不同I/O方式的使用场景是什么?
11 | I/O优化(下):如何监控线上I/O操作?
12 | 存储优化(上):常见的数据存储方法有哪些?
13 | 存储优化(中):如何优化数据存储?
14 | 存储优化(下):数据库SQLite的使用和优化
15 | 网络优化(上):移动开发工程师必备的网络优化知识
16 | 网络优化(中):复杂多变的移动网络该如何优化?
17 | 网络优化(下):大数据下网络该如何监控?
18 | 耗电优化(上):从电量优化的演进看耗电分析
19 | 耗电优化(下):耗电的优化方法与线上监控
20 | UI 优化(上):UI 渲染的几个关键概念
21 | UI 优化(下):如何优化 UI 渲染?
22 | 包体积优化(上):如何减少安装包大小?
23 | 包体积优化(下):资源优化的进阶实践
26 | 关于编译,你需要了解什么?
27 | 编译插桩的三种方法:AspectJ、ASM、ReDex
35 | Native Hook 技术,天使还是魔鬼?
Books
Books
Design Pattern
Design Pattern
设计模式概述
面向对象的六大原则
单例模式(Singleton)
建造者模式(Builder)
原型模式(Prototype)
工厂方法模式(Factory method)
抽象工厂模式(Abstract factory)
代理模式(Proxy)
组合模式(Composite)
适配器模式(Adapter)
装饰模式(Decorator)
享元模式(Flyweight)
外观模式(Facade)
桥接模式(Bridge)
策略模式(Strategy)
状态模式(State)
责任链模式(Chain of responsibility)
解释器模式(Interpreter)
命令模式(Command)
观察者模式(Observer)
备忘录模式(Memento)
迭代器模式(Iterator)
模版方法模式(Template method)
访问者模式(Visitor)
中介者模式(Mediator)
易混淆的设计模式
Effective Java
Effective Java
Effective Java概述
创建和销毁对象
对于所有对象都通用的方法
类和接口
JVM
JVM
深入理解Java虚拟机
Java内存区域与内存溢出异常
垃圾收集器与内存分配策略
类文件结构
虚拟机类加载机制
Refactoring
Refactoring
重构:改善既有代码的设计
LeetCode
LeetCode
算法目录
数据结构、算法和数据操作
高质量的代码
解决问题的思路
优化时间和空间效率
面试中的各项能力
Array
LeetCode(1-10)
LeetCode(11-20)
LeetCode(21-30)
LeetCode(31-40)
LeetCode(41-50)
LeetCode(51-60)
LeetCode(61-70)
LeetCode(71-80)
LeetCode(81-90)
LeetCode(91-100)
LeetCode(101-110)
LeetCode(111-120)
Flutter
Flutter
年轻人的第一个Flutter程序(1)
年轻人的第一个Flutter程序(2)
年轻人的第一个Flutter程序(3)
年轻人的第一个Flutter程序(4)
Flutter状态管理——Provider
Flutter 文本编辑器——记自研 Markdown 编辑器 MooD
matrix
apm
Matrix-SQLiteLint解析
TODO
评论
回到页面顶部