├── 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 | --------------------------------------------------------------------------------