├── README.md
└── contents
├── android.md
├── flutter.md
├── gradle.md
├── image.md
├── java.md
├── kotlin.md
├── network.md
├── performance.md
└── plugin.md
/README.md:
--------------------------------------------------------------------------------
1 | # android-interview-record
2 |
3 | > Android 高级面试经常会有很多原理分析,以及性能优化监控相关,列出一些高频知识点仅供参考。
4 |
5 | [Android 相关](#1)
6 | [性能优化](#2)
7 | [Java 相关](#3)
8 | [Kotlin 相关](#4)
9 | [网络相关](#5)
10 | [插件化](#6)
11 | [图片相关](#7)
12 | [Gradle 相关](#8)
13 | [Flutter 相关](#9)
14 |
15 |
Android 相关
16 |
17 | [Android之SharedPreferences内部原理浅析](https://blog.csdn.net/u010687392/article/details/50174271)
18 |
19 | [剖析 SharedPreference apply 引起的 ANR 问题](https://www.jianshu.com/p/9ae0f6842689)
20 |
21 | [Android源码分析-消息队列和Looper](https://blog.csdn.net/singwhatiwanna/article/details/17361775)
22 |
23 | [Android中Thread、Handler、Looper、MessageQueue的原理分析](http://blog.csdn.net/bboyfeiyu/article/details/38555547)
24 |
25 | [Android IntentService完全解析 当Service遇到Handler](http://blog.csdn.net/lmj623565791/article/details/47143563)
26 |
27 | [Android源码分析—带你认识不一样的AsyncTask](https://blog.csdn.net/singwhatiwanna/article/details/17596225)
28 |
29 | [Android AsyncTask 源码解析](http://blog.csdn.net/lmj623565791/article/details/38614699)
30 |
31 | [Android性能优化之使用线程池处理异步任务](http://blog.csdn.net/u010687392/article/details/49850803)
32 |
33 | [Android 线程和线程池一篇就够了](https://juejin.im/entry/593109e72f301e005830cd76)
34 |
35 | [剖析Android中进程与线程调度之nice](https://droidyue.com/blog/2015/09/05/android-process-and-thread-schedule-nice/)
36 |
37 | [【线程死锁】Android多线程死锁的产生以及如何避免](https://blog.csdn.net/Tomasyb/article/details/72884562)
38 |
39 | [WatchDog工作原理](http://gityuan.com/2016/06/21/watchdog/)
40 |
41 | [《手Q Android线程死锁监控与自动化分析实践》](https://mp.weixin.qq.com/s/lRHLP76V0fr2UwkeImdqzQ?utm_source=joyk.com&utm_medium=referral&hmsr=joyk.com)
42 |
43 | [Android Context完全解析,你所不知道的Context的各种细节](http://blog.csdn.net/guolin_blog/article/details/47028975)
44 |
45 | [LocalBroadcastManager 的实现原理,与 BroadcastReceiver 异同](http://www.trinea.cn/android/localbroadcastmanager-impl/)
46 |
47 | [Activity的启动方式和flag详解](http://blog.csdn.net/singwhatiwanna/article/details/9294285)
48 |
49 | [浅析Activity横竖屏切换时的生命周期](浅析Activity横竖屏切换时的生命周期)
50 |
51 | [Android源码分析-资源加载机制](http://blog.csdn.net/singwhatiwanna/article/details/24532419)
52 |
53 | [Android 源码解析 之 setContentView](http://blog.csdn.net/lmj623565791/article/details/41894125)
54 |
55 | [深入剖析 Android中的 ArrayMap](http://droidyue.com/blog/2017/02/12/dive-into-arraymap-in-android/)
56 |
57 | [深度解读ArrayMap优势与缺陷](http://gityuan.com/2019/01/13/arraymap/)
58 |
59 | [startActivity启动过程分析](http://gityuan.com/2016/03/12/start-activity/)
60 |
61 | [startService启动过程分析](http://gityuan.com/2016/03/06/start-service/)
62 |
63 | [【凯子哥带你学Framework】Activity启动过程全解析](http://blog.csdn.net/zhaokaiqiang1992/article/details/49428287)
64 |
65 | [【凯子哥带你学Framework】Activity界面显示全解析](http://blog.csdn.net/zhaokaiqiang1992/article/details/49681321)
66 |
67 | [Android LayoutInflater原理分析,带你一步步深入了解View(一)](https://blog.csdn.net/guolin_blog/article/details/12921889)
68 |
69 | [由App的启动说起 | jaminzzhang](https://yq.aliyun.com/articles/26960)
70 |
71 | [Android内核开发:图解Android系统的启动过程](http://blog.51cto.com/ticktick/1659473)
72 |
73 | [为什么 Android 要采用 Binder 作为 IPC 机制?](https://www.zhihu.com/question/39440766)
74 |
75 | [Android进程间通信(IPC)机制Binder简要介绍和学习计划](http://blog.csdn.net/luoshengyang/article/details/6618363)
76 |
77 | [Binder VS socket](https://blog.csdn.net/graitude/article/details/55522626)
78 |
79 | [Android跨进程通信:图文详解 Binder机制 原理](https://blog.csdn.net/carson_ho/article/details/73560642)
80 |
81 | [彻底理解Android Binder通信架构](http://gityuan.com/2016/09/04/binder-start-service/)
82 |
83 | [Binder异常解析](http://gityuan.com/2017/05/01/binder_exception/)
84 |
85 | [ELF文件格式解析](https://blog.csdn.net/feglass/article/details/51469511)
86 |
87 | [loadLibrary动态库加载过程分析](http://gityuan.com/2017/03/26/load_library/)
88 |
89 | [Android 的 so 文件加载机制](https://juejin.im/post/5bc832f1e51d450e6973c0be)
90 |
91 | [通过ApkTool分析resources.arsc文件以及resources.arsc文件的格式](https://litets.com/article/2019/4/10/307.html)
92 |
93 | [Toast 原理剖析](http://thinkdevos.net/2017/10/13/2017-10-13-toast/)
94 |
95 | [Android I/O 那些事儿](https://isuperqiang.cn/post/android-io-na-xie-shi-er/)
96 |
97 | [10分钟了解Android项目构建流程](https://juejin.im/post/5a69c0ccf265da3e2a0dc9aa)
98 |
99 | [RecyclerView性能优化及高级使用](https://blog.csdn.net/smileiam/article/details/88396546)
100 |
101 | [android mvvm architecture-samples](https://github.com/android/architecture-samples)
102 |
103 | [Lifecycle 使用及原理解析 一文搞懂](https://juejin.im/post/5c90d955f265da60e926783d)
104 |
105 | [ViewPager2重大更新,支持offscreenPageLimit](https://juejin.im/post/5cda3964f265da035d0c9d8f)
106 |
107 | [Android View的绘制流程知识点总结](https://zhuanlan.zhihu.com/p/44976896)
108 |
109 | [深入理解Android之View的绘制流程](https://www.jianshu.com/p/060b5f68da79)
110 |
111 | [Android JNI 中的线程操作](https://juejin.im/post/5b4c0a09f265da0f955cc1c7)
112 |
113 | [Android JNI 之 Bitmap 操作](https://juejin.im/post/5b5810a56fb9a04f8c5ee296)
114 |
115 | [Android组件化方案及组件消息总线modular-event实战](https://tech.meituan.com/2018/12/20/modular-event.html)
116 |
117 | [Android 组件化最佳实践](https://juejin.im/post/5b5f17976fb9a04fa775658d)
118 |
119 | [Android中JSBridge的原理和实现](https://skyacer.github.io/2018/03/23/Android%E4%B8%ADJSBridge%E7%9A%84%E5%8E%9F%E7%90%86%E5%92%8C%E5%AE%9E%E7%8E%B0/)
120 |
121 | [Android Webview H5 秒开方案实现](https://juejin.im/post/5b94ca52e51d450e7d097f38)
122 |
123 | [WebView性能、体验分析与优化](https://tech.meituan.com/2017/06/09/webviewperf.html)
124 |
125 | [彻底解析Android缓存机制——LruCache](https://www.jianshu.com/p/b49a111147ee)
126 |
127 | [视频缓存AndroidVideoCache攻略](https://www.jianshu.com/p/53c4a6c9bd07)
128 |
129 | [Google Exoplayer之全面认识](https://blog.csdn.net/hejjunlin/article/details/54693696)
130 |
131 | [设计模式在外卖营销业务中的实践](https://tech.meituan.com/2020/03/19/design-pattern-practice-in-marketing.html)
132 |
133 | 性能优化
134 |
135 | [Android性能优化来龙去脉总结](https://juejin.im/post/5b194563e51d4506d25e20f5)
136 |
137 | [Android 性能优化最佳实践](https://juejin.im/post/5b50b017f265da0f7b2f649c)
138 |
139 | [Android GC 原理探究](https://zhuanlan.zhihu.com/p/24835977)
140 |
141 | [JVM 的工作原理,层次结构以及 GC 工作原理](https://segmentfault.com/a/1190000002579346)
142 |
143 | [Java内存问题及 LeakCanary 原理分析](https://juejin.im/post/5ab8d3d46fb9a028ca52f813)
144 |
145 | [Android性能优化(十一)之正确的异步姿势](https://www.jianshu.com/p/5f99f0e51118)
146 |
147 | [Android 性能优化之布局优化](https://henleylee.github.io/posts/2019/d59595e2.html)
148 |
149 | [Android性能优化:那些不可忽略的绘制优化](https://www.jianshu.com/p/cbdaeb1bede5)
150 |
151 | [Android中Bitmap内存优化](https://www.jianshu.com/p/3f6f6e4f1c88)
152 |
153 | [美团点评移动网络优化实践](https://tech.meituan.com/2017/03/17/shark-sdk.html)
154 |
155 | [大众点评App的短视频耗电量优化实战](https://tech.meituan.com/2018/03/11/dianping-shortvideo-battery-testcase.html)
156 |
157 | [Android 存储优化 —— MMKV 集成与原理](https://juejin.im/post/5d55284d6fb9a06aee362b07)
158 |
159 | [Matrix IOCanary -- I/O 质量监控](https://github.com/Tencent/matrix/wiki/Matrix-Android-IOCanary)
160 |
161 | [Matrix TraceCanary -- 初恋·卡顿](https://github.com/Tencent/matrix/wiki/Matrix-Android-TraceCanary)
162 |
163 | [Matrix ResourceCanary -- Activity 泄漏及Bitmap冗余检测](https://github.com/Tencent/matrix/wiki/Matrix-Android-ResourceCanary)
164 |
165 | [Android图片加载尺寸监控](https://www.jianshu.com/p/fa1c4fbf4f57)
166 |
167 | [美团外卖Android Crash治理之路](https://tech.meituan.com/2018/06/14/waimai-android-crash.html)
168 |
169 | [理解Android Crash处理流程](http://gityuan.com/2016/06/24/app-crash/#handleApplicationCrashInner)
170 |
171 | [理解Native Crash处理流程](http://gityuan.com/2016/06/25/android-native-crash/)
172 |
173 | [彻底理解安卓应用无响应机制](http://gityuan.com/2019/04/06/android-anr/)
174 |
175 | [ANR问题分析的一般套路](https://www.jianshu.com/p/18f16aba79dd)
176 |
177 | [ANR的监测与信息采集](https://www.jianshu.com/p/ac545e10e39e)
178 |
179 | [Android ANR 监测方案解析](https://testerhome.com/articles/17101)
180 |
181 | [Probe:Android线上OOM问题定位组件](https://tech.meituan.com/2019/11/14/crash-oom-probe-practice.html)
182 |
183 | [《Android 创建线程源码与OOM分析》](https://mp.weixin.qq.com/s/Z7cCCF8jzS6NpVEd0b0Emg)
184 |
185 | [安装包立减1M--微信Android资源混淆打包工具](https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd)
186 |
187 | [AabResGuard: AAB 资源混淆工具](https://juejin.im/post/5e115ca7e51d4540e53b7dcc)
188 |
189 | [zstd 高质量压缩算法](https://facebook.github.io/zstd/)
190 |
191 | [AndroidJniBitmapOperations](https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations)
192 |
193 | [Android开发高手课](https://time.geekbang.org/column/intro/100021101)
194 |
195 | Java 相关
196 |
197 | [Java 四种线程池的用法分析](https://blog.csdn.net/u011974987/article/details/51027795)
198 |
199 | [Java有几种文件拷贝方式?哪一种最高效?](https://blog.csdn.net/qweqwruio/article/details/81359618)
200 |
201 | [使用FileChannel(文件通道)来实现文件快速复制](http://blog.csdn.net/wangxy799/article/details/50897061)
202 |
203 | [JVM类加载机制详解(一)JVM类加载过程](https://blog.csdn.net/zhangliangzi/article/details/51319033)
204 |
205 | [JVM类加载机制详解(二)类加载器与双亲委派模型](https://blog.csdn.net/zhangliangzi/article/details/51338291)
206 |
207 | [Java实现线程同步的几种方式](https://www.jianshu.com/p/6542c8a96392)
208 |
209 | [java笔记七:IO流之字节流与字节缓冲流](http://www.cnblogs.com/liuling/archive/2013/05/07/InputStreamAndOutputStream.html)
210 |
211 | [Java NIO浅析](https://tech.meituan.com/2016/11/04/nio.html)
212 |
213 | [Java内存管理:深入Java内存区域](http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html)
214 |
215 | [看完这篇垃圾回收,和面试官扯皮没问题了](https://mp.weixin.qq.com/s/8vXENzg580R7F2iNjSdHFw)
216 |
217 | [理解Java中的ThreadLocal](http://droidyue.com/blog/2016/03/13/learning-threadlocal-in-java/index.html)
218 |
219 | [理解Java中的弱引用](https://droidyue.com/blog/2014/10/12/understanding-weakreference-in-java/)
220 |
221 | [理解Java的强引用、软引用、弱引用和虚引用](https://juejin.im/post/5b82c02df265da436152f5ad)
222 |
223 | [Java中的堆和栈的区别](http://droidyue.com/blog/2014/12/07/differences-between-stack-and-heap-in-java/)
224 |
225 | [HashMap 用可变对象作为 key 踩坑](https://icharle.com/hashmapkebianobj.html)
226 |
227 | [聊聊并发(七)——Java中的阻塞队列](http://ifeve.com/java-blocking-queue/)
228 |
229 | [深入研究java.lang.Object类](http://lavasoft.blog.51cto.com/62575/15456/)
230 |
231 | [Java ArrayList、LinkedList、Vector的区别](https://blog.csdn.net/zhangqiluGrubby/article/details/72870493)
232 |
233 | [HashMap和Hashtable的区别](https://blog.csdn.net/u010983881/article/details/49762595)
234 |
235 | [HashMap、TreeMap、HashTable区别](https://blog.csdn.net/Jason847/article/details/78050358)
236 |
237 | [你想知道的HashMap](https://skyacer.github.io/2018/05/06/%E4%BD%A0%E6%83%B3%E7%9F%A5%E9%81%93%E7%9A%84HashMap/)
238 |
239 | [ConcurrentHashMap总结](https://my.oschina.net/hosee/blog/675884?spm=a2c4e.10696291.0.0.374719a4XfiYcR)
240 |
241 | [Java 8系列之重新认识HashMap](https://tech.meituan.com/2016/06/24/java-hashmap.html)
242 |
243 | [HashMap多线程死循环问题](http://blog.csdn.net/xuefeng0707/article/details/40797085)
244 |
245 | [深入分析Volatile的实现原理](https://www.infoq.cn/article/ftf-java-volatile)
246 |
247 | [Java并发编程:Synchronized及其实现原理](https://www.cnblogs.com/paddix/p/5367116.html)
248 |
249 | [Java反射在JVM的实现](https://blog.csdn.net/jim__charles/article/details/52815318)
250 |
251 | [Unsafe 与 CAS](https://www.cnblogs.com/xrq730/p/4976007.html)
252 |
253 | [Java魔法类:Unsafe应用解析](https://tech.meituan.com/2019/02/14/talk-about-java-magic-class-unsafe.html)
254 |
255 | [Java AtomicInteger原理分析](https://fangjian0423.github.io/2016/03/16/java-AtomicInteger-analysis/)
256 |
257 | [Java并发编程:CountDownLatch、CyclicBarrier和Semaphore](https://www.cnblogs.com/dolphin0520/p/3920397.html)
258 |
259 | [理解ReentrantLock的公平锁和非公平锁](https://www.jianshu.com/p/2ada27eee90b)
260 |
261 | [Java面试必问-死锁终极篇](https://juejin.im/post/5aaf6ee76fb9a028d3753534)
262 |
263 | [深入理解读写锁ReentrantReadWriteLock](https://www.jianshu.com/p/4a624281235e)
264 |
265 | [CountDownLatch详解](https://www.jianshu.com/p/128476015902)
266 |
267 | [深入理解final关键字的作用](http://medesqure.top/2018/08/30/final/)
268 |
269 | [Java CAS 和ABA问题](https://www.cnblogs.com/549294286/p/3766717.html)
270 |
271 | [关于JAVA中的Class.cast方法](https://blog.csdn.net/axzsd/article/details/79206172)
272 |
273 | [如何正确地写出单例模式](http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/)
274 |
275 | [【Java】try-catch-finally语句中return的执行顺序思考](https://itimetraveler.github.io/2017/09/20/%E3%80%90Java%E3%80%91try-catch-finally%E8%AF%AD%E5%8F%A5%E4%B8%ADreturn%E7%9A%84%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F%E6%80%9D%E8%80%83/)
276 |
277 | [二分查找法的实现和应用汇总](https://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html)
278 |
279 | [二叉树遍历(先序、中序、后序)](https://www.jianshu.com/p/456af5480cee)
280 |
281 | [Java最小堆解决TopK问题](http://blog.csdn.net/xiao__gui/article/details/8687982)
282 |
283 | Kotlin 相关
284 |
285 | [from-java-to-kotlin](https://github.com/MindorksOpenSource/from-java-to-kotlin/blob/master/README-ZH.md)
286 |
287 | [kotlin_tips](https://github.com/heimashi/kotlin_tips)
288 |
289 | [从原理分析Kotlin的延迟初始化: lateinit var和by lazy](https://juejin.im/post/5affc369f265da0b9b079629)
290 |
291 | [使用Kotlin Reified 让泛型更简单安全](https://droidyue.com/blog/2019/07/28/kotlin-reified-generics/)
292 |
293 | [Kotlin里的Extension Functions实现原理分析](http://hengyunabc.github.io/kotlin-extension-functions/)
294 |
295 | [Kotlin系列之顶层函数和属性](https://blog.csdn.net/bingjianIT/article/details/79134670)
296 |
297 | [Kotlin 兼容 Java 遇到的最大的 “坑”](https://juejin.im/entry/58e19fd12f301e006214b88c)
298 |
299 | [Kotlin 的协程用力瞥一眼](https://kaixue.io/kotlin-coroutines-1/)
300 |
301 | [Kotlin 协程「挂起」的本质](https://kaixue.io/kotlin-coroutines-2/)
302 |
303 | [到底什么是「非阻塞式」挂起?协程真的更轻量级吗?](https://kaixue.io/kotlin-coroutines-3/)
304 |
305 | [资源混淆是如何影响到Kotlin协程的](https://juejin.im/post/5cf0dc58f265da1b9612ea89)
306 |
307 | [Kotlin Coroutines(协程) 完全解析](https://johnnyshieh.me/posts/kotlin-coroutine-introduction/)
308 |
309 | [破解 Kotlin 协程](https://www.bennyhuo.com/2019/04/01/basic-coroutines/)
310 |
311 | 网络相关
312 |
313 | [深度解析HTTPS原理](https://blog.csdn.net/zhongzh86/article/details/69389967)
314 |
315 | [HTTPS 原理浅析及其在 Android 中的使用](https://cloud.tencent.com/developer/article/1005073)
316 |
317 | [HTTP 断点续传(分块传输)](https://blog.csdn.net/liang19890820/article/details/53215087)
318 |
319 | [HttpDns 原理是什么](http://www.linkedkeeper.com/171.html)
320 |
321 | [《客厅TV-APP HttpDNS技术接入与实战》](https://mp.weixin.qq.com/s/BVF24W6pyfhtoZo9cTbtpA)
322 |
323 | [HttpDns接入以及全局替换的实现](https://juejin.im/post/5b8a1c31f265da436d7e5874)
324 |
325 | [happy-dns-android](https://github.com/qiniu/happy-dns-android)
326 |
327 | [TCP、UDP、HTTP、SOCKET之间的区别](https://blog.csdn.net/magister_feng/article/details/8634518)
328 |
329 | [一文搞懂TCP与UDP的区别](https://blog.fundebug.com/2019/03/22/differences-of-tcp-and-udp/)
330 |
331 | [Android直播开发之旅(7):Android视频直播核心技术(架构)详解](https://blog.csdn.net/AndrExpert/article/details/76919535)
332 |
333 | [Android最佳实践——深入浅出WebSocket协议](https://blog.csdn.net/sbsujjbcy/article/details/52839540)
334 |
335 | [拆轮子系列:拆 Okio](https://blog.piasy.com/2016/08/04/Understand-Okio/index.html)
336 |
337 | [拆轮子系列:拆 OkHttp](https://blog.piasy.com/2016/07/11/Understand-OkHttp/index.html)
338 |
339 | [Android Volley完全解析(四),带你从源码的角度理解Volley](http://blog.csdn.net/guolin_blog/article/details/17656437)
340 |
341 | 插件化
342 |
343 | [Android插件化库比较](https://blog.csdn.net/u013435893/article/details/78972782)
344 |
345 | [深入理解Android插件化技术](https://zhuanlan.zhihu.com/p/33017826)
346 |
347 | [Android 插件化 -- ClassLoader 源码分析](https://www.heqiangfly.com/2017/05/18/android-plugins-dynamic-load-source-code-analysis/)
348 |
349 | [Android热补丁之Tinker原理解析](http://w4lle.com/2016/12/16/tinker/index.html)
350 |
351 | [Android插件化原理解析——Hook机制之动态代理](http://weishu.me/2016/01/28/understand-plugin-framework-proxy-hook/)
352 |
353 | [Android 动态代理与Hook机制详解](https://blog.csdn.net/csdn_aiyang/article/details/79085039)
354 |
355 | [MultiDex工作原理分析和优化方案](https://zhuanlan.zhihu.com/p/24305296)
356 |
357 | [Android 一种在Dalvik虚拟机上多Dex加载优化的方案](https://blog.csdn.net/sbsujjbcy/article/details/53381663)
358 |
359 | [Android 8.0 中的 ART 功能改进](https://source.android.google.cn/devices/tech/dalvik/improvements?hl=zh-cn)
360 |
361 | [DEX、ODEX、OAT文件&Dalvik和ART虚拟机](https://www.cnblogs.com/genggeng/p/9810311.html)
362 |
363 | [art dex2oat 加载加速浅析](https://fucknmb.com/2018/12/30/art-dex2oat%E5%8A%A0%E8%BD%BD%E5%8A%A0%E9%80%9F%E6%B5%85%E6%9E%90/)
364 |
365 | [剖析 Android ART Runtime (1) - 背景知识](https://mssun.me/blog/android-art-runtime-1-background.html)
366 |
367 | [剖析 Android ART Runtime (2) – dex2oat](https://mssun.me/blog/android-art-runtime-2-dex2oat.html)
368 |
369 | [剖析 Android ART Runtime (3) – Compilerb](https://mssun.me/blog/android-art-runtime-3-compiler.html)
370 |
371 | [Android ART运行时无缝替换Dalvik虚拟机的过程分析](https://blog.csdn.net/luoshengyang/article/details/18006645)
372 |
373 | [入门ART虚拟机(1)——加载DEX文件](https://www.jianshu.com/p/20dcfcf27004)
374 |
375 | [入门ART虚拟机(5)——OAT文件](https://www.jianshu.com/p/e0929379cdc3)
376 |
377 | [Android运行时ART加载OAT文件的过程分析](https://blog.csdn.net/Luoshengyang/article/details/39307813)
378 |
379 | [Android App Bundle 构建流程浅析](https://fucknmb.com/2018/05/25/Android-App-Bundle%E6%9E%84%E5%BB%BA%E6%B5%81%E7%A8%8B%E6%B5%85%E6%9E%90/)
380 |
381 | [系统级插件化?Google全新的动态化框架Android App Bundles分析](https://zhuanlan.zhihu.com/p/36902641)
382 |
383 | [深入解读Android新特性——App Bundles](https://yq.aliyun.com/articles/600909)
384 |
385 | [基于Android App Bundle的动态化方案探索](https://myslide.cn/slides/21232)
386 |
387 | [Qigsaw - dynamic modularization library](https://github.com/iqiyi/Qigsaw)
388 |
389 | 图片相关
390 |
391 | [Fresco图片框架内部实现原理探索](http://blog.csdn.net/u010687392/article/details/50266633)
392 |
393 | [彻底弄懂 GLIDE V4 之宏观原理分析](http://yinshudi.com/2019/01/03/%E5%BD%BB%E5%BA%95%E5%BC%84%E6%87%82%20Glide%20v4%20%E4%B9%8B%E5%AE%8F%E8%A7%82%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/)
394 |
395 | [WebP原理和Android支持现状介绍](https://zhuanlan.zhihu.com/p/23648251)
396 |
397 | [浓缩的才是精华:浅析 GIF 格式图片的存储和压缩](https://cloud.tencent.com/developer/article/1004763)
398 |
399 | [高效加载大型位图](https://developer.android.com/topic/performance/graphics/load-bitmap)
400 |
401 | [Android 高清加载巨图方案 拒绝压缩图片](https://blog.csdn.net/lmj623565791/article/details/49300989)
402 |
403 | [Lottie 动画原理剖析](http://ivanfan.site/2018/07/01/Lottie%E5%8A%A8%E7%94%BB/)
404 |
405 | [SVGA 背后的故事](https://www.jianshu.com/p/dfa16d9d67cd)
406 |
407 | Gradle 相关
408 |
409 | [Android Gradle Plugin 源码分析](https://www.jianshu.com/p/cb0e085c466f)
410 |
411 | [Android Gradle Plugin 源码阅读与编译](https://fucknmb.com/2017/06/01/Android-Gradle-Plugin%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB%E4%B8%8E%E7%BC%96%E8%AF%91/)
412 |
413 | [Improving Android Build Performance](https://www.droidcon.com/media-detail?video=352688995)
414 |
415 | [Using Gradle's Worker API to reduce build time](https://guides.gradle.org/using-the-worker-api/)
416 |
417 | [Gradle 学习之 Android 插件的 Transform API](https://juejin.im/post/5ccd41066fb9a03204595a91)
418 |
419 | [Android AOP三剑客之AspectJ](https://www.jianshu.com/p/d43807ac33bd)
420 |
421 | [Android AOP三剑客之APT](https://www.jianshu.com/p/e66e8926c01d)
422 |
423 | [Android AOP三剑客之Javassist](https://www.jianshu.com/p/dfc4681f8090)
424 |
425 | [Chapter-ASM - Android 开发高手课](https://github.com/AndroidAdvanceWithGeektime/Chapter-ASM)
426 |
427 | [matrix-gradle-plugin - matrix](https://github.com/Tencent/matrix/tree/master/matrix/matrix-android/matrix-gradle-plugin)
428 |
429 | [Android Lint增量扫描实战纪要](https://www.jianshu.com/p/4833a79e9396)
430 |
431 | [便于性能分析的日志框架hugo](https://github.com/JakeWharton/hugo)
432 |
433 | [WMRouter:美团外卖Android开源路由框架](https://tech.meituan.com/2018/08/23/meituan-waimai-android-open-source-routing-framework.html)
434 |
435 | [ARouter - Android App 进行组件化改造的路由框架](https://github.com/alibaba/ARouter)
436 |
437 | [滴滴开源 Booster:移动APP质量优化框架](https://blog.csdn.net/singwhatiwanna/article/details/90630200)
438 |
439 | Flutter 相关
440 |
441 | [Flutter原理与实践](https://tech.meituan.com/2018/08/09/waimai-flutter-practice.html)
442 |
443 | [揭秘Flutter Hot Reload(原理篇)](https://juejin.im/post/5bc80ef7f265da0a857aa924)
444 |
445 | [Flutter 动态化探索](https://fucknmb.com/2019/03/22/Flutter-%E5%8A%A8%E6%80%81%E5%8C%96%E6%8E%A2%E7%B4%A2/)
446 |
447 | [Flutter如何和Native通信-Android视角](https://juejin.im/post/5b4c3c9a5188251ac446d915)
448 |
449 | [深入理解Flutter Platform Channel](https://juejin.im/post/5b84ff6a6fb9a019f47d1cc9)
450 |
451 | [Flutter Engine 编译指北](https://fucknmb.com/2019/02/26/Flutter-Engine-%E7%BC%96%E8%AF%91%E6%8C%87%E5%8C%97/)
452 |
453 | [Flutter Engine 线程模型](https://zhuanlan.zhihu.com/p/64034467)
454 |
455 | [深入理解Flutter多线程](https://www.jianshu.com/p/54da18ed1a9e)
456 |
457 | [Flutter状态管理 - 初探与总结](https://juejin.im/post/5cd91bb0f265da034e7eaca3)
458 |
459 | [Flutter | 状态管理指南篇——Provider](https://juejin.im/post/5d00a84fe51d455a2f22023f)
460 |
461 | [深入理解Flutter应用启动](http://gityuan.com/2019/06/29/flutter_run_app/)
462 |
463 | [Flutter渲染机制—UI线程](http://gityuan.com/2019/06/15/flutter_ui_draw/)
464 |
465 | [Flutter渲染机制—GPU线程](http://gityuan.com/2019/06/16/flutter_gpu_draw/)
466 |
467 | [深入理解Flutter应用启动](http://gityuan.com/2019/06/29/flutter_run_app/)
468 |
469 | [深入理解setState更新机制](http://gityuan.com/2019/07/06/flutter_set_state/)
470 |
471 | [深入理解Flutter消息机制](http://gityuan.com/2019/07/20/flutter_message_loop/)
472 |
473 | [深入理解Flutter动画原理](http://gityuan.com/2019/07/13/flutter_animator/)
474 |
475 | [Dart虚拟机运行原理](http://gityuan.com/2019/10/05/dart_vm/)
476 |
477 | [源码解读Flutter tools机制](http://gityuan.com/2019/09/01/flutter_tool/)
478 |
479 | [源码解读Flutter run机制](http://gityuan.com/2019/09/07/flutter_run/)
480 |
481 | [Fultter App 国际化/多语言](https://github.com/Sky24n/fluintl)
482 |
483 | [Flutter豆瓣客户端](https://github.com/kaina404/FlutterDouBan)
484 |
485 |
--------------------------------------------------------------------------------
/contents/android.md:
--------------------------------------------------------------------------------
1 | [Android之SharedPreferences内部原理浅析](https://blog.csdn.net/u010687392/article/details/50174271)
2 |
3 | [剖析 SharedPreference apply 引起的 ANR 问题](https://www.jianshu.com/p/9ae0f6842689)
4 |
5 | [Android源码分析-消息队列和Looper](https://blog.csdn.net/singwhatiwanna/article/details/17361775)
6 |
7 | [Android源码分析—带你认识不一样的AsyncTask](https://blog.csdn.net/singwhatiwanna/article/details/17596225)
8 |
9 | [Android AsyncTask 源码解析](http://blog.csdn.net/lmj623565791/article/details/38614699)
10 |
11 | [Android性能优化之使用线程池处理异步任务](http://blog.csdn.net/u010687392/article/details/49850803)
12 |
13 | [Android 线程和线程池一篇就够了](https://juejin.im/entry/593109e72f301e005830cd76)
14 |
15 | [剖析Android中进程与线程调度之nice](https://droidyue.com/blog/2015/09/05/android-process-and-thread-schedule-nice/)
16 |
17 | [【线程死锁】Android多线程死锁的产生以及如何避免](https://blog.csdn.net/Tomasyb/article/details/72884562)
18 |
19 | [WatchDog工作原理](http://gityuan.com/2016/06/21/watchdog/)
20 |
21 | [《手Q Android线程死锁监控与自动化分析实践》](https://mp.weixin.qq.com/s/lRHLP76V0fr2UwkeImdqzQ?utm_source=joyk.com&utm_medium=referral&hmsr=joyk.com)
22 |
23 | [Android Context完全解析,你所不知道的Context的各种细节](http://blog.csdn.net/guolin_blog/article/details/47028975)
24 |
25 | [LocalBroadcastManager 的实现原理,与 BroadcastReceiver 异同](http://www.trinea.cn/android/localbroadcastmanager-impl/)
26 |
27 | [Activity的启动方式和flag详解](http://blog.csdn.net/singwhatiwanna/article/details/9294285)
28 |
29 | [浅析Activity横竖屏切换时的生命周期](浅析Activity横竖屏切换时的生命周期)
30 |
31 | [Android源码分析-资源加载机制](http://blog.csdn.net/singwhatiwanna/article/details/24532419)
32 |
33 | [Android中Thread、Handler、Looper、MessageQueue的原理分析](http://blog.csdn.net/bboyfeiyu/article/details/38555547)
34 |
35 | [Android 源码解析 之 setContentView](http://blog.csdn.net/lmj623565791/article/details/41894125)
36 |
37 | [Android IntentService完全解析 当Service遇到Handler](http://blog.csdn.net/lmj623565791/article/details/47143563)
38 |
39 | [深入剖析 Android中的 ArrayMap](http://droidyue.com/blog/2017/02/12/dive-into-arraymap-in-android/)
40 |
41 | [深度解读ArrayMap优势与缺陷](http://gityuan.com/2019/01/13/arraymap/)
42 |
43 | [startActivity启动过程分析](http://gityuan.com/2016/03/12/start-activity/)
44 |
45 | [startService启动过程分析](http://gityuan.com/2016/03/06/start-service/)
46 |
47 | [【凯子哥带你学Framework】Activity启动过程全解析](http://blog.csdn.net/zhaokaiqiang1992/article/details/49428287)
48 |
49 | [【凯子哥带你学Framework】Activity界面显示全解析](http://blog.csdn.net/zhaokaiqiang1992/article/details/49681321)
50 |
51 | [Android LayoutInflater原理分析,带你一步步深入了解View(一)](https://blog.csdn.net/guolin_blog/article/details/12921889)
52 |
53 | [由App的启动说起 | jaminzzhang](https://yq.aliyun.com/articles/26960)
54 |
55 | [Android内核开发:图解Android系统的启动过程](http://blog.51cto.com/ticktick/1659473)
56 |
57 | [为什么 Android 要采用 Binder 作为 IPC 机制?](https://www.zhihu.com/question/39440766)
58 |
59 | [Android进程间通信(IPC)机制Binder简要介绍和学习计划](http://blog.csdn.net/luoshengyang/article/details/6618363)
60 |
61 | [Binder VS socket](https://blog.csdn.net/graitude/article/details/55522626)
62 |
63 | [Android跨进程通信:图文详解 Binder机制 原理](https://blog.csdn.net/carson_ho/article/details/73560642)
64 |
65 | [彻底理解Android Binder通信架构](http://gityuan.com/2016/09/04/binder-start-service/)
66 |
67 | [Binder异常解析](http://gityuan.com/2017/05/01/binder_exception/)
68 |
69 | [ELF文件格式解析](https://blog.csdn.net/feglass/article/details/51469511)
70 |
71 | [loadLibrary动态库加载过程分析](http://gityuan.com/2017/03/26/load_library/)
72 |
73 | [Android 的 so 文件加载机制](https://juejin.im/post/5bc832f1e51d450e6973c0be)
74 |
75 | [通过ApkTool分析resources.arsc文件以及resources.arsc文件的格式](https://litets.com/article/2019/4/10/307.html)
76 |
77 | [Toast 原理剖析](http://thinkdevos.net/2017/10/13/2017-10-13-toast/)
78 |
79 | [Android I/O 那些事儿](https://isuperqiang.cn/post/android-io-na-xie-shi-er/)
80 |
81 | [10分钟了解Android项目构建流程](https://juejin.im/post/5a69c0ccf265da3e2a0dc9aa)
82 |
83 | [RecyclerView源码分析](https://blog.saymagic.cn/2016/10/21/understand-recycler.html)
84 |
85 | [RecyclerView性能优化及高级使用](https://blog.csdn.net/smileiam/article/details/88396546)
86 |
87 | [android mvvm architecture-samples](https://github.com/android/architecture-samples)
88 |
89 | [Lifecycle 使用及原理解析 一文搞懂](https://juejin.im/post/5c90d955f265da60e926783d)
90 |
91 | [ViewPager2重大更新,支持offscreenPageLimit](https://juejin.im/post/5cda3964f265da035d0c9d8f)
92 |
93 | [Android View的绘制流程知识点总结](https://zhuanlan.zhihu.com/p/44976896)
94 |
95 | [深入理解Android之View的绘制流程](https://www.jianshu.com/p/060b5f68da79)
96 |
97 | [Android JNI 中的线程操作](https://juejin.im/post/5b4c0a09f265da0f955cc1c7)
98 |
99 | [Android JNI 之 Bitmap 操作](https://juejin.im/post/5b5810a56fb9a04f8c5ee296)
100 |
101 | [Android组件化方案及组件消息总线modular-event实战](https://tech.meituan.com/2018/12/20/modular-event.html)
102 |
103 | [Android 组件化最佳实践](https://juejin.im/post/5b5f17976fb9a04fa775658d)
104 |
105 | [Android中JSBridge的原理和实现](https://skyacer.github.io/2018/03/23/Android%E4%B8%ADJSBridge%E7%9A%84%E5%8E%9F%E7%90%86%E5%92%8C%E5%AE%9E%E7%8E%B0/)
106 |
107 | [Android Webview H5 秒开方案实现](https://juejin.im/post/5b94ca52e51d450e7d097f38)
108 |
109 | [WebView性能、体验分析与优化](https://tech.meituan.com/2017/06/09/webviewperf.html)
110 |
111 | [彻底解析Android缓存机制——LruCache](https://www.jianshu.com/p/b49a111147ee)
112 |
113 | [视频缓存AndroidVideoCache攻略](https://www.jianshu.com/p/53c4a6c9bd07)
114 |
115 | [Google Exoplayer之全面认识](https://blog.csdn.net/hejjunlin/article/details/54693696)
116 |
117 | [设计模式在外卖营销业务中的实践](https://tech.meituan.com/2020/03/19/design-pattern-practice-in-marketing.html)
118 |
--------------------------------------------------------------------------------
/contents/flutter.md:
--------------------------------------------------------------------------------
1 | [Flutter原理与实践](https://tech.meituan.com/2018/08/09/waimai-flutter-practice.html)
2 |
3 | [揭秘Flutter Hot Reload(原理篇)](https://juejin.im/post/5bc80ef7f265da0a857aa924)
4 |
5 | [Flutter 动态化探索](https://fucknmb.com/2019/03/22/Flutter-%E5%8A%A8%E6%80%81%E5%8C%96%E6%8E%A2%E7%B4%A2/)
6 |
7 | [Flutter如何和Native通信-Android视角](https://juejin.im/post/5b4c3c9a5188251ac446d915)
8 |
9 | [深入理解Flutter Platform Channel](https://juejin.im/post/5b84ff6a6fb9a019f47d1cc9)
10 |
11 | [Flutter Engine 编译指北](https://fucknmb.com/2019/02/26/Flutter-Engine-%E7%BC%96%E8%AF%91%E6%8C%87%E5%8C%97/)
12 |
13 | [Flutter Engine 线程模型](https://zhuanlan.zhihu.com/p/64034467)
14 |
15 | [深入理解Flutter多线程](https://www.jianshu.com/p/54da18ed1a9e)
16 |
17 | [Flutter状态管理 - 初探与总结](https://juejin.im/post/5cd91bb0f265da034e7eaca3)
18 |
19 | [Flutter | 状态管理指南篇——Provider](https://juejin.im/post/5d00a84fe51d455a2f22023f)
20 |
21 | [深入理解Flutter应用启动](http://gityuan.com/2019/06/29/flutter_run_app/)
22 |
23 | [Flutter渲染机制—UI线程](http://gityuan.com/2019/06/15/flutter_ui_draw/)
24 |
25 | [Flutter渲染机制—GPU线程](http://gityuan.com/2019/06/16/flutter_gpu_draw/)
26 |
27 | [深入理解Flutter应用启动](http://gityuan.com/2019/06/29/flutter_run_app/)
28 |
29 | [深入理解setState更新机制](http://gityuan.com/2019/07/06/flutter_set_state/)
30 |
31 | [深入理解Flutter消息机制](http://gityuan.com/2019/07/20/flutter_message_loop/)
32 |
33 | [深入理解Flutter动画原理](http://gityuan.com/2019/07/13/flutter_animator/)
34 |
35 | [Dart虚拟机运行原理](http://gityuan.com/2019/10/05/dart_vm/)
36 |
37 | [源码解读Flutter tools机制](http://gityuan.com/2019/09/01/flutter_tool/)
38 |
39 | [源码解读Flutter run机制](http://gityuan.com/2019/09/07/flutter_run/)
40 |
41 | [Fultter App 国际化/多语言](https://github.com/Sky24n/fluintl)
42 |
43 | [Flutter豆瓣客户端](https://github.com/kaina404/FlutterDouBan)
--------------------------------------------------------------------------------
/contents/gradle.md:
--------------------------------------------------------------------------------
1 | [Android Gradle Plugin 源码分析](https://www.jianshu.com/p/cb0e085c466f)
2 |
3 | [Android Gradle Plugin 源码阅读与编译](https://fucknmb.com/2017/06/01/Android-Gradle-Plugin%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB%E4%B8%8E%E7%BC%96%E8%AF%91/)
4 |
5 | [Improving Android Build Performance](https://www.droidcon.com/media-detail?video=352688995)
6 |
7 | [Using Gradle's Worker API to reduce build time](https://guides.gradle.org/using-the-worker-api/)
8 |
9 | [Gradle 学习之 Android 插件的 Transform API](https://juejin.im/post/5ccd41066fb9a03204595a91)
10 |
11 | [Android AOP三剑客之AspectJ](https://www.jianshu.com/p/d43807ac33bd)
12 |
13 | [Android AOP三剑客之APT](https://www.jianshu.com/p/e66e8926c01d)
14 |
15 | [Android AOP三剑客之Javassist](https://www.jianshu.com/p/dfc4681f8090)
16 |
17 | [Chapter-ASM - Android 开发高手课](https://github.com/AndroidAdvanceWithGeektime/Chapter-ASM)
18 |
19 | [matrix-gradle-plugin - matrix](https://github.com/Tencent/matrix/tree/master/matrix/matrix-android/matrix-gradle-plugin)
20 |
21 | [Android Lint增量扫描实战纪要](https://www.jianshu.com/p/4833a79e9396)
22 |
23 | [便于性能分析的日志框架hugo](https://github.com/JakeWharton/hugo)
24 |
25 | [WMRouter:美团外卖Android开源路由框架](https://tech.meituan.com/2018/08/23/meituan-waimai-android-open-source-routing-framework.html)
26 |
27 | [ARouter - Android App 进行组件化改造的路由框架](https://github.com/alibaba/ARouter)
28 |
29 | [滴滴开源 Booster:移动APP质量优化框架](https://blog.csdn.net/singwhatiwanna/article/details/90630200)
--------------------------------------------------------------------------------
/contents/image.md:
--------------------------------------------------------------------------------
1 | [Fresco图片框架内部实现原理探索](http://blog.csdn.net/u010687392/article/details/50266633)
2 |
3 | [彻底弄懂 GLIDE V4 之宏观原理分析](http://yinshudi.com/2019/01/03/%E5%BD%BB%E5%BA%95%E5%BC%84%E6%87%82%20Glide%20v4%20%E4%B9%8B%E5%AE%8F%E8%A7%82%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/)
4 |
5 | [WebP原理和Android支持现状介绍](https://zhuanlan.zhihu.com/p/23648251)
6 |
7 | [浓缩的才是精华:浅析 GIF 格式图片的存储和压缩](https://cloud.tencent.com/developer/article/1004763)
8 |
9 | [高效加载大型位图](https://developer.android.com/topic/performance/graphics/load-bitmap)
10 |
11 | [Android 高清加载巨图方案 拒绝压缩图片](https://blog.csdn.net/lmj623565791/article/details/49300989)
12 |
13 | [Lottie 动画原理剖析](http://ivanfan.site/2018/07/01/Lottie%E5%8A%A8%E7%94%BB/)
14 |
15 | [SVGA 背后的故事](https://www.jianshu.com/p/dfa16d9d67cd)
16 |
--------------------------------------------------------------------------------
/contents/java.md:
--------------------------------------------------------------------------------
1 | [Java 四种线程池的用法分析](https://blog.csdn.net/u011974987/article/details/51027795)
2 |
3 | [Java有几种文件拷贝方式?哪一种最高效?](https://blog.csdn.net/qweqwruio/article/details/81359618)
4 |
5 | [使用FileChannel(文件通道)来实现文件快速复制](http://blog.csdn.net/wangxy799/article/details/50897061)
6 |
7 | [JVM类加载机制详解(一)JVM类加载过程](https://blog.csdn.net/zhangliangzi/article/details/51319033)
8 |
9 | [JVM类加载机制详解(二)类加载器与双亲委派模型](https://blog.csdn.net/zhangliangzi/article/details/51338291)
10 |
11 | [Java实现线程同步的几种方式](https://www.jianshu.com/p/6542c8a96392)
12 |
13 | [java笔记七:IO流之字节流与字节缓冲流](http://www.cnblogs.com/liuling/archive/2013/05/07/InputStreamAndOutputStream.html)
14 |
15 | [Java NIO浅析](https://tech.meituan.com/2016/11/04/nio.html)
16 |
17 | [Java内存管理:深入Java内存区域](http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html)
18 |
19 | [看完这篇垃圾回收,和面试官扯皮没问题了](https://mp.weixin.qq.com/s/8vXENzg580R7F2iNjSdHFw)
20 |
21 | [理解Java中的ThreadLocal](http://droidyue.com/blog/2016/03/13/learning-threadlocal-in-java/index.html)
22 |
23 | [理解Java中的弱引用](https://droidyue.com/blog/2014/10/12/understanding-weakreference-in-java/)
24 |
25 | [理解Java的强引用、软引用、弱引用和虚引用](https://juejin.im/post/5b82c02df265da436152f5ad)
26 |
27 | [Java中的堆和栈的区别](http://droidyue.com/blog/2014/12/07/differences-between-stack-and-heap-in-java/)
28 |
29 | [HashMap 用可变对象作为 key 踩坑](https://icharle.com/hashmapkebianobj.html)
30 |
31 | [聊聊并发(七)——Java中的阻塞队列](http://ifeve.com/java-blocking-queue/)
32 |
33 | [深入研究java.lang.Object类](http://lavasoft.blog.51cto.com/62575/15456/)
34 |
35 | [Java ArrayList、LinkedList、Vector的区别](https://blog.csdn.net/zhangqiluGrubby/article/details/72870493)
36 |
37 | [HashMap和Hashtable的区别](https://blog.csdn.net/u010983881/article/details/49762595)
38 |
39 | [HashMap、TreeMap、HashTable区别](https://blog.csdn.net/Jason847/article/details/78050358)
40 |
41 | [你想知道的HashMap](https://skyacer.github.io/2018/05/06/%E4%BD%A0%E6%83%B3%E7%9F%A5%E9%81%93%E7%9A%84HashMap/)
42 |
43 | [ConcurrentHashMap总结](https://my.oschina.net/hosee/blog/675884?spm=a2c4e.10696291.0.0.374719a4XfiYcR)
44 |
45 | [Java 8系列之重新认识HashMap](https://tech.meituan.com/2016/06/24/java-hashmap.html)
46 |
47 | [HashMap多线程死循环问题](http://blog.csdn.net/xuefeng0707/article/details/40797085)
48 |
49 | [深入分析Volatile的实现原理](https://www.infoq.cn/article/ftf-java-volatile)
50 |
51 | [Java并发编程:Synchronized及其实现原理](https://www.cnblogs.com/paddix/p/5367116.html)
52 |
53 | [Java反射在JVM的实现](https://blog.csdn.net/jim__charles/article/details/52815318)
54 |
55 | [Unsafe 与 CAS](https://www.cnblogs.com/xrq730/p/4976007.html)
56 |
57 | [Java魔法类:Unsafe应用解析](https://tech.meituan.com/2019/02/14/talk-about-java-magic-class-unsafe.html)
58 |
59 | [Java AtomicInteger原理分析](https://fangjian0423.github.io/2016/03/16/java-AtomicInteger-analysis/)
60 |
61 | [Java并发编程:CountDownLatch、CyclicBarrier和Semaphore](https://www.cnblogs.com/dolphin0520/p/3920397.html)
62 |
63 | [理解ReentrantLock的公平锁和非公平锁](https://www.jianshu.com/p/2ada27eee90b)
64 |
65 | [Java面试必问-死锁终极篇](https://juejin.im/post/5aaf6ee76fb9a028d3753534)
66 |
67 | [深入理解读写锁ReentrantReadWriteLock](https://www.jianshu.com/p/4a624281235e)
68 |
69 | [CountDownLatch详解](https://www.jianshu.com/p/128476015902)
70 |
71 | [深入理解final关键字的作用](http://medesqure.top/2018/08/30/final/)
72 |
73 | [Java CAS 和ABA问题](https://www.cnblogs.com/549294286/p/3766717.html)
74 |
75 | [聊聊并发(一)——深入分析Volatile的实现原理](https://www.infoq.cn/article/ftf-java-volatile)
76 |
77 | [关于JAVA中的Class.cast方法](https://blog.csdn.net/axzsd/article/details/79206172)
78 |
79 | [如何正确地写出单例模式](http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/)
80 |
81 | [【Java】try-catch-finally语句中return的执行顺序思考](https://itimetraveler.github.io/2017/09/20/%E3%80%90Java%E3%80%91try-catch-finally%E8%AF%AD%E5%8F%A5%E4%B8%ADreturn%E7%9A%84%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F%E6%80%9D%E8%80%83/)
82 |
83 | [二分查找法的实现和应用汇总](https://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html)
84 |
85 | [二叉树遍历(先序、中序、后序)](https://www.jianshu.com/p/456af5480cee)
86 |
87 | [Java最小堆解决TopK问题](http://blog.csdn.net/xiao__gui/article/details/8687982)
88 |
--------------------------------------------------------------------------------
/contents/kotlin.md:
--------------------------------------------------------------------------------
1 | [from-java-to-kotlin](https://github.com/MindorksOpenSource/from-java-to-kotlin/blob/master/README-ZH.md)
2 |
3 | [kotlin_tips](https://github.com/heimashi/kotlin_tips)
4 |
5 | [从原理分析Kotlin的延迟初始化: lateinit var和by lazy](https://juejin.im/post/5affc369f265da0b9b079629)
6 |
7 | [使用Kotlin Reified 让泛型更简单安全](https://droidyue.com/blog/2019/07/28/kotlin-reified-generics/)
8 |
9 | [Kotlin里的Extension Functions实现原理分析](http://hengyunabc.github.io/kotlin-extension-functions/)
10 |
11 | [Kotlin系列之顶层函数和属性](https://blog.csdn.net/bingjianIT/article/details/79134670)
12 |
13 | [Kotlin 兼容 Java 遇到的最大的 “坑”](https://juejin.im/entry/58e19fd12f301e006214b88c)
14 |
15 | [Kotlin 的协程用力瞥一眼](https://kaixue.io/kotlin-coroutines-1/)
16 |
17 | [Kotlin 协程「挂起」的本质](https://kaixue.io/kotlin-coroutines-2/)
18 |
19 | [到底什么是「非阻塞式」挂起?协程真的更轻量级吗?](https://kaixue.io/kotlin-coroutines-3/)
20 |
21 | [资源混淆是如何影响到Kotlin协程的](https://juejin.im/post/5cf0dc58f265da1b9612ea89)
22 |
23 | [Kotlin Coroutines(协程) 完全解析](https://johnnyshieh.me/posts/kotlin-coroutine-introduction/)
24 |
25 | [破解 Kotlin 协程](https://www.bennyhuo.com/2019/04/01/basic-coroutines/)
--------------------------------------------------------------------------------
/contents/network.md:
--------------------------------------------------------------------------------
1 | [深度解析HTTPS原理](https://blog.csdn.net/zhongzh86/article/details/69389967)
2 |
3 | [HTTPS 原理浅析及其在 Android 中的使用](https://cloud.tencent.com/developer/article/1005073)
4 |
5 | [HTTP 断点续传(分块传输)](https://blog.csdn.net/liang19890820/article/details/53215087)
6 |
7 | [HttpDns 原理是什么](http://www.linkedkeeper.com/171.html)
8 |
9 | [《客厅TV-APP HttpDNS技术接入与实战》](https://mp.weixin.qq.com/s/BVF24W6pyfhtoZo9cTbtpA)
10 |
11 | [HttpDns接入以及全局替换的实现](https://juejin.im/post/5b8a1c31f265da436d7e5874)
12 |
13 | [happy-dns-android](https://github.com/qiniu/happy-dns-android)
14 |
15 | [TCP、UDP、HTTP、SOCKET之间的区别](https://blog.csdn.net/magister_feng/article/details/8634518)
16 |
17 | [一文搞懂TCP与UDP的区别](https://blog.fundebug.com/2019/03/22/differences-of-tcp-and-udp/)
18 |
19 | [Android直播开发之旅(7):Android视频直播核心技术(架构)详解](https://blog.csdn.net/AndrExpert/article/details/76919535)
20 |
21 | [Android最佳实践——深入浅出WebSocket协议](https://blog.csdn.net/sbsujjbcy/article/details/52839540)
22 |
23 | [拆轮子系列:拆 Okio](https://blog.piasy.com/2016/08/04/Understand-Okio/index.html)
24 |
25 | [拆轮子系列:拆 OkHttp](https://blog.piasy.com/2016/07/11/Understand-OkHttp/index.html)
26 |
27 | [Android Volley完全解析(四),带你从源码的角度理解Volley](http://blog.csdn.net/guolin_blog/article/details/17656437)
28 |
29 |
--------------------------------------------------------------------------------
/contents/performance.md:
--------------------------------------------------------------------------------
1 | [Android性能优化来龙去脉总结](https://juejin.im/post/5b194563e51d4506d25e20f5)
2 |
3 | [Android 性能优化最佳实践](https://juejin.im/post/5b50b017f265da0f7b2f649c)
4 |
5 | [Android GC 原理探究](https://zhuanlan.zhihu.com/p/24835977)
6 |
7 | [JVM 的工作原理,层次结构以及 GC 工作原理](https://segmentfault.com/a/1190000002579346)
8 |
9 | [Java内存问题及 LeakCanary 原理分析](https://juejin.im/post/5ab8d3d46fb9a028ca52f813)
10 |
11 | [Android性能优化(十一)之正确的异步姿势](https://www.jianshu.com/p/5f99f0e51118)
12 |
13 | [Android 性能优化之布局优化](https://henleylee.github.io/posts/2019/d59595e2.html)
14 |
15 | [Android性能优化:那些不可忽略的绘制优化](https://www.jianshu.com/p/cbdaeb1bede5)
16 |
17 | [Android中Bitmap内存优化](https://www.jianshu.com/p/3f6f6e4f1c88)
18 |
19 | [美团点评移动网络优化实践](https://tech.meituan.com/2017/03/17/shark-sdk.html)
20 |
21 | [大众点评App的短视频耗电量优化实战](https://tech.meituan.com/2018/03/11/dianping-shortvideo-battery-testcase.html)
22 |
23 | [Android 存储优化 —— MMKV 集成与原理](https://juejin.im/post/5d55284d6fb9a06aee362b07)
24 |
25 | [Matrix IOCanary -- I/O 质量监控](https://github.com/Tencent/matrix/wiki/Matrix-Android-IOCanary)
26 |
27 | [Matrix TraceCanary -- 初恋·卡顿](https://github.com/Tencent/matrix/wiki/Matrix-Android-TraceCanary)
28 |
29 | [Matrix ResourceCanary -- Activity 泄漏及Bitmap冗余检测](https://github.com/Tencent/matrix/wiki/Matrix-Android-ResourceCanary)
30 |
31 | [Android图片加载尺寸监控](https://www.jianshu.com/p/fa1c4fbf4f57)
32 |
33 | [美团外卖Android Crash治理之路](https://tech.meituan.com/2018/06/14/waimai-android-crash.html)
34 |
35 | [理解Android Crash处理流程](http://gityuan.com/2016/06/24/app-crash/#handleApplicationCrashInner)
36 |
37 | [理解Native Crash处理流程](http://gityuan.com/2016/06/25/android-native-crash/)
38 |
39 | [彻底理解安卓应用无响应机制](http://gityuan.com/2019/04/06/android-anr/)
40 |
41 | [ANR问题分析的一般套路](https://www.jianshu.com/p/18f16aba79dd)
42 |
43 | [ANR的监测与信息采集](https://www.jianshu.com/p/ac545e10e39e)
44 |
45 | [Android ANR 监测方案解析](https://testerhome.com/articles/17101)
46 |
47 | [Probe:Android线上OOM问题定位组件](https://tech.meituan.com/2019/11/14/crash-oom-probe-practice.html)
48 |
49 | [《Android 创建线程源码与OOM分析》](https://mp.weixin.qq.com/s/Z7cCCF8jzS6NpVEd0b0Emg)
50 |
51 | [安装包立减1M--微信Android资源混淆打包工具](https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd)
52 |
53 | [AabResGuard: AAB 资源混淆工具](https://juejin.im/post/5e115ca7e51d4540e53b7dcc)
54 |
55 | [zstd 高质量压缩算法](https://facebook.github.io/zstd/)
56 |
57 | [AndroidJniBitmapOperations](https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations)
58 |
59 | [Android开发高手课](https://time.geekbang.org/column/intro/100021101)
60 |
--------------------------------------------------------------------------------
/contents/plugin.md:
--------------------------------------------------------------------------------
1 | [Android插件化库比较](https://blog.csdn.net/u013435893/article/details/78972782)
2 |
3 | [深入理解Android插件化技术](https://zhuanlan.zhihu.com/p/33017826)
4 |
5 | [Android 插件化 -- ClassLoader 源码分析](https://www.heqiangfly.com/2017/05/18/android-plugins-dynamic-load-source-code-analysis/)
6 |
7 | [Android热补丁之Tinker原理解析](http://w4lle.com/2016/12/16/tinker/index.html)
8 |
9 | [Android插件化原理解析——Hook机制之动态代理](http://weishu.me/2016/01/28/understand-plugin-framework-proxy-hook/)
10 |
11 | [Android 动态代理与Hook机制详解](https://blog.csdn.net/csdn_aiyang/article/details/79085039)
12 |
13 | [MultiDex工作原理分析和优化方案](https://zhuanlan.zhihu.com/p/24305296)
14 |
15 | [Android 一种在Dalvik虚拟机上多Dex加载优化的方案](https://blog.csdn.net/sbsujjbcy/article/details/53381663)
16 |
17 | [DEX、ODEX、OAT文件&Dalvik和ART虚拟机](https://www.cnblogs.com/genggeng/p/9810311.html)
18 |
19 | [Android 8.0 中的 ART 功能改进](https://source.android.google.cn/devices/tech/dalvik/improvements?hl=zh-cn)
20 |
21 | [art dex2oat 加载加速浅析](https://fucknmb.com/2018/12/30/art-dex2oat%E5%8A%A0%E8%BD%BD%E5%8A%A0%E9%80%9F%E6%B5%85%E6%9E%90/)
22 |
23 | [剖析 Android ART Runtime (1) - 背景知识](https://mssun.me/blog/android-art-runtime-1-background.html)
24 |
25 | [剖析 Android ART Runtime (2) – dex2oat](https://mssun.me/blog/android-art-runtime-2-dex2oat.html)
26 |
27 | [剖析 Android ART Runtime (3) – Compilerb](https://mssun.me/blog/android-art-runtime-3-compiler.html)
28 |
29 | [Android ART运行时无缝替换Dalvik虚拟机的过程分析](https://blog.csdn.net/luoshengyang/article/details/18006645)
30 |
31 | [入门ART虚拟机(1)——加载DEX文件](https://www.jianshu.com/p/20dcfcf27004)
32 |
33 | [入门ART虚拟机(5)——OAT文件](https://www.jianshu.com/p/e0929379cdc3)
34 |
35 | [Android运行时ART加载OAT文件的过程分析](https://blog.csdn.net/Luoshengyang/article/details/39307813)
36 |
37 | [Android App Bundle 构建流程浅析](https://fucknmb.com/2018/05/25/Android-App-Bundle%E6%9E%84%E5%BB%BA%E6%B5%81%E7%A8%8B%E6%B5%85%E6%9E%90/)
38 |
39 | [系统级插件化?Google全新的动态化框架Android App Bundles分析](https://zhuanlan.zhihu.com/p/36902641)
40 |
41 | [深入解读Android新特性——App Bundles](https://yq.aliyun.com/articles/600909)
42 |
43 | [基于Android App Bundle的动态化方案探索](https://myslide.cn/slides/21232)
44 |
45 | [Qigsaw - dynamic modularization library](https://github.com/iqiyi/Qigsaw)
46 |
--------------------------------------------------------------------------------