<commit_before>SaveAndroidResources
==

<br/>

## Android resources

<br/>

**Framework:**
- [Android 系统特点](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20%E7%B3%BB%E7%BB%9F%E7%89%B9%E7%82%B9.md)

- [Android 代码编译和APK安装过程](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E5%92%8CAPK%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B.md)

- [Android Framework 概述](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20Framework%E6%A6%82%E8%BF%B0.md)

- [Android APK的运行过程](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20APK%E7%9A%84%E8%BF%90%E8%A1%8C%E8%BF%87%E7%A8%8B.md)

- [Looper Handler MessageQueue](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Looper%20Handler%20MessageQueue.md)

- [Binder](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Binder.md)

- [Binder AIDL](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Binder%20AIDL.md)

<br/>

**Base:**
- [1. 生命周期](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/base/1.%20%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.md)   

- [2. Activity 启动模式](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/2.%20Activity%20%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F.md)   

- [3. 跨进程通信 方式 及 问题](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/3.%20%E8%B7%A8%E8%BF%9B%E7%A8%8B%E9%80%9A%E4%BF%A1%20%E6%96%B9%E5%BC%8F%20%E5%8F%8A%20%E9%97%AE%E9%A2%98.md)  

- [4. Socket](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/4.%20Socket.md)   

- [5. View 滑动相关](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/5.%20View%20%E6%BB%91%E5%8A%A8%E7%9B%B8%E5%85%B3.md)   

- [6. View 的事件分发机制](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/6.%20View%20%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E6%9C%BA%E5%88%B6.md)     

- [7. View 的滑动冲突](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/7.%20View%20%E7%9A%84%E6%BB%91%E5%8A%A8%E5%86%B2%E7%AA%81.md)      
- [8. View 的工作原理](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/8.%20View%20%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.md)

- [9. 自定义 View 分类 和 须知](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/9.%20%E8%87%AA%E5%AE%9A%E4%B9%89%20View%20%E5%88%86%E7%B1%BB%20%E5%92%8C%20%E9%A1%BB%E7%9F%A5.md)      


<br/>

**Analysis:**
- [LruCache 源码解析](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/LruCache%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   

- [AsyncTask 源码分析](https://github.com/white37/AndroidSdkSourceAnalysis/blob/master/article/AsyncTask%E5%92%8CAsyncTaskCompat%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   

- [CoordinatorLayout 源码分析](https://github.com/desmond1121/AndroidSdkSourceAnalysis/blob/master/article/CoordinatorLayout%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   
- [Binder 源码分析](https://github.com/xdtianyu/SourceAnalysis/blob/master/Binder%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90.md)

<br/>

**Extensions**   

- [AndFix](https://github.com/alibaba/AndFix)   

- [HotFix](https://github.com/dodola/HotFix)   

- [RocooFix](https://github.com/dodola/RocooFix)      

- [Android 热补丁动态修复框架小结](http://blog.csdn.net/lmj623565791/article/details/49883661)      

- [Tinker_imitator](https://github.com/zzz40500/Tinker_imitator)   

- [Tinker_imitator 原理篇](http://www.jianshu.com/p/620c2b0490ec#rd)   


<br/>

- [为什么 Android 开发者应该使用 FlatBuffers 替代 JSON ?](http://blog.chengdazhi.com/index.php/201#rd?sukey=<KEY>)   

- [google/flatbuffers](https://github.com/google/flatbuffers)   

- [FlatBuffer](https://github.com/amitshekhariitbhu/FlatBuffer)   

- [Google FlatBuffers 使用教程](http://www.tuicool.com/articles/meyaiu3)  

- [FlatBuffers 体验](http://www.race604.com/flatbuffers-intro/)   

- [FlatBuffs](https://github.com/frogermcs/FlatBuffs)  

<br/>

- [DynamicAPK](https://github.com/CtripMobile/DynamicAPK)   

- [携程 Android App 插件化和动态加载实践](http://www.infoq.com/cn/articles/ctrip-android-dynamic-loading)   

- [Android 插件化：从入门到放弃](http://www.infoq.com/cn/articles/android-plug-ins-from-entry-to-give-up?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text)   

<br/>

- [Android 动态加载系列索引](http://kaedea.com/2016/02/05/android-dynamical-loading-00-index/)   

- [Android 动态加载简单易懂的介绍方式](http://kaedea.com/2016/02/06/android-dynamical-loading-01-introduction/)   

- [ClassLoader 工作机制](http://kaedea.com/2016/02/07/android-dynamical-loading-02-classloader/)   

- [加载 SD 卡中的 SO 库](http://kaedea.com/2016/06/01/android-dynamical-loading-03-so-in-sdcard/)   

- [使用 SO 库时要注意的一些问题](http://kaedea.com/2016/06/04/android-dynamical-loading-04-so-problems/)   

- [简单的动态加载模式](http://kaedea.com/2016/06/05/android-dynamical-loading-05-simple-mode/)  

- [代理 Activity 模式](http://kaedea.com/2016/06/10/android-dynamical-loading-06-proxy-activity/)   

- [动态创建 Activity 模式](http://kaedea.com/2016/06/14/android-dynamical-loading-07-dynamic-activity/)   

<br/>

**WeMobileDev:**
- [Android N 混合编译与对热补丁影响深度解析](https://github.com/WeMobileDev/article/blob/master/Android_N%E6%B7%B7%E5%90%88%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AF%B9%E7%83%AD%E8%A1%A5%E4%B8%81%E5%BD%B1%E5%93%8D%E8%A7%A3%E6%9E%90.md)    

- [IPv6 socket 编程](https://github.com/WeMobileDev/article/blob/master/IPv6%20socket%E7%BC%96%E7%A8%8B.md)   

- [基于 TLS1.3 的微信安全通信协议 mmtls 介绍](https://github.com/WeMobileDev/article/blob/master/%E5%9F%BA%E4%BA%8ETLS1.3%E7%9A%84%E5%BE%AE%E4%BF%A1%E5%AE%89%E5%85%A8%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AEmmtls%E4%BB%8B%E7%BB%8D.md)   

- [微信 Android 热补丁实践演进之路 一  ](https://github.com/WeMobileDev/article/blob/master/%E5%BE%AE%E4%BF%A1Android%E7%83%AD%E8%A1%A5%E4%B8%81%E5%AE%9E%E8%B7%B5%E6%BC%94%E8%BF%9B%E4%B9%8B%E8%B7%AF.md)   

- [微信 Android 热补丁实践演进之路 二 ](http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e)       

<br/>

**Bugly:**
- [Android 进程保活招式大全](http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8)

- [Android 界面性能调优手册](https://androidtest.org/android-graphics-performance-pattens/#11)

- [微信 Android 资源混淆打包工具](http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=2&extra=page%3D3)

- [Android Dex 文件格式详解](http://dev.qq.com/topic/578c6e97a9e8335e4b1fc8a0)   

- [内存泄露从入门到精通三部曲](http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=125&extra=page%3D1)   

<br/>

**Other:**
- [AndroidInterview-Q-A](https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md)   

<br/>   


## Java resources

<br/>

**Sort:**
- [冒泡排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F.md)

- [快速排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F.md)

- [选择排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F.md)

- [插入排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F.md)

- [希尔排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F.md)

<br/>

**Network:**
- [TCP/IP 协议三次握手与四次握手流程解析](http://www.2cto.com/net/201310/251896.html)

- [详解 Https 是如何确保安全的？](http://www.wxtlife.com/2016/03/27/%E8%AF%A6%E8%A7%A3https%E6%98%AF%E5%A6%82%E4%BD%95%E7%A1%AE%E4%BF%9D%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%9F)           
- [SSL/TLS 协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)


<br/>

**Other:**
- [ArrayList 的实现原理](http://zhangshixi.iteye.com/blog/674856)  

- [HashMap 的实现原理](http://zhangshixi.iteye.com/blog/672697)   

- [Java 中 volatile 关键字的含义](http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html)   

- [Effective-JAVA-Summary](https://github.com/HugoMatilla/Effective-JAVA-Summary)   

<br/>


## Annotated source code

<br/>

**Android:**
- [LruCache](https://github.com/CaMnter/EasyAndroidResources/blob/master/code/android/classes/LruCache.java)

- [Otto](https://github.com/CaMnter/EasyAndroidResources/tree/master/code/android/framework/otto)<commit_msg>[Add] agera source code<commit_after>SaveAndroidResources
==

<br/>

## Android resources

<br/>

**Framework:**
- [Android 系统特点](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20%E7%B3%BB%E7%BB%9F%E7%89%B9%E7%82%B9.md)

- [Android 代码编译和APK安装过程](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E5%92%8CAPK%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B.md)

- [Android Framework 概述](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20Framework%E6%A6%82%E8%BF%B0.md)

- [Android APK的运行过程](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Android%20APK%E7%9A%84%E8%BF%90%E8%A1%8C%E8%BF%87%E7%A8%8B.md)

- [Looper Handler MessageQueue](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Looper%20Handler%20MessageQueue.md)

- [Binder](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Binder.md)

- [Binder AIDL](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/framework/Binder%20AIDL.md)

<br/>

**Base:**
- [1. 生命周期](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/base/1.%20%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.md)   

- [2. Activity 启动模式](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/2.%20Activity%20%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F.md)   

- [3. 跨进程通信 方式 及 问题](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/3.%20%E8%B7%A8%E8%BF%9B%E7%A8%8B%E9%80%9A%E4%BF%A1%20%E6%96%B9%E5%BC%8F%20%E5%8F%8A%20%E9%97%AE%E9%A2%98.md)  

- [4. Socket](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/4.%20Socket.md)   

- [5. View 滑动相关](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/5.%20View%20%E6%BB%91%E5%8A%A8%E7%9B%B8%E5%85%B3.md)   

- [6. View 的事件分发机制](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/6.%20View%20%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E6%9C%BA%E5%88%B6.md)     

- [7. View 的滑动冲突](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/7.%20View%20%E7%9A%84%E6%BB%91%E5%8A%A8%E5%86%B2%E7%AA%81.md)      
- [8. View 的工作原理](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/8.%20View%20%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.md)

- [9. 自定义 View 分类 和 须知](https://github.com/CaMnter/SaveAndroidResources/blob/master/md/android/base/9.%20%E8%87%AA%E5%AE%9A%E4%B9%89%20View%20%E5%88%86%E7%B1%BB%20%E5%92%8C%20%E9%A1%BB%E7%9F%A5.md)      


<br/>

**Analysis:**
- [LruCache 源码解析](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/android/LruCache%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   

- [AsyncTask 源码分析](https://github.com/white37/AndroidSdkSourceAnalysis/blob/master/article/AsyncTask%E5%92%8CAsyncTaskCompat%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   

- [CoordinatorLayout 源码分析](https://github.com/desmond1121/AndroidSdkSourceAnalysis/blob/master/article/CoordinatorLayout%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90.md)   
- [Binder 源码分析](https://github.com/xdtianyu/SourceAnalysis/blob/master/Binder%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90.md)

<br/>

**Extensions**   

- [AndFix](https://github.com/alibaba/AndFix)   

- [HotFix](https://github.com/dodola/HotFix)   

- [RocooFix](https://github.com/dodola/RocooFix)      

- [Android 热补丁动态修复框架小结](http://blog.csdn.net/lmj623565791/article/details/49883661)      

- [Tinker_imitator](https://github.com/zzz40500/Tinker_imitator)   

- [Tinker_imitator 原理篇](http://www.jianshu.com/p/620c2b0490ec#rd)   


<br/>

- [为什么 Android 开发者应该使用 FlatBuffers 替代 JSON ?](http://blog.chengdazhi.com/index.php/201#rd?sukey=<KEY>)   

- [google/flatbuffers](https://github.com/google/flatbuffers)   

- [FlatBuffer](https://github.com/amitshekhariitbhu/FlatBuffer)   

- [Google FlatBuffers 使用教程](http://www.tuicool.com/articles/meyaiu3)  

- [FlatBuffers 体验](http://www.race604.com/flatbuffers-intro/)   

- [FlatBuffs](https://github.com/frogermcs/FlatBuffs)  

<br/>

- [DynamicAPK](https://github.com/CtripMobile/DynamicAPK)   

- [携程 Android App 插件化和动态加载实践](http://www.infoq.com/cn/articles/ctrip-android-dynamic-loading)   

- [Android 插件化：从入门到放弃](http://www.infoq.com/cn/articles/android-plug-ins-from-entry-to-give-up?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text)   

<br/>

- [Android 动态加载系列索引](http://kaedea.com/2016/02/05/android-dynamical-loading-00-index/)   

- [Android 动态加载简单易懂的介绍方式](http://kaedea.com/2016/02/06/android-dynamical-loading-01-introduction/)   

- [ClassLoader 工作机制](http://kaedea.com/2016/02/07/android-dynamical-loading-02-classloader/)   

- [加载 SD 卡中的 SO 库](http://kaedea.com/2016/06/01/android-dynamical-loading-03-so-in-sdcard/)   

- [使用 SO 库时要注意的一些问题](http://kaedea.com/2016/06/04/android-dynamical-loading-04-so-problems/)   

- [简单的动态加载模式](http://kaedea.com/2016/06/05/android-dynamical-loading-05-simple-mode/)  

- [代理 Activity 模式](http://kaedea.com/2016/06/10/android-dynamical-loading-06-proxy-activity/)   

- [动态创建 Activity 模式](http://kaedea.com/2016/06/14/android-dynamical-loading-07-dynamic-activity/)   

<br/>

**WeMobileDev:**
- [Android N 混合编译与对热补丁影响深度解析](https://github.com/WeMobileDev/article/blob/master/Android_N%E6%B7%B7%E5%90%88%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AF%B9%E7%83%AD%E8%A1%A5%E4%B8%81%E5%BD%B1%E5%93%8D%E8%A7%A3%E6%9E%90.md)    

- [IPv6 socket 编程](https://github.com/WeMobileDev/article/blob/master/IPv6%20socket%E7%BC%96%E7%A8%8B.md)   

- [基于 TLS1.3 的微信安全通信协议 mmtls 介绍](https://github.com/WeMobileDev/article/blob/master/%E5%9F%BA%E4%BA%8ETLS1.3%E7%9A%84%E5%BE%AE%E4%BF%A1%E5%AE%89%E5%85%A8%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AEmmtls%E4%BB%8B%E7%BB%8D.md)   

- [微信 Android 热补丁实践演进之路 一  ](https://github.com/WeMobileDev/article/blob/master/%E5%BE%AE%E4%BF%A1Android%E7%83%AD%E8%A1%A5%E4%B8%81%E5%AE%9E%E8%B7%B5%E6%BC%94%E8%BF%9B%E4%B9%8B%E8%B7%AF.md)   

- [微信 Android 热补丁实践演进之路 二 ](http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e)       

<br/>

**Bugly:**
- [Android 进程保活招式大全](http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8)

- [Android 界面性能调优手册](https://androidtest.org/android-graphics-performance-pattens/#11)

- [微信 Android 资源混淆打包工具](http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=2&extra=page%3D3)

- [Android Dex 文件格式详解](http://dev.qq.com/topic/578c6e97a9e8335e4b1fc8a0)   

- [内存泄露从入门到精通三部曲](http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=125&extra=page%3D1)   

<br/>

**Other:**
- [AndroidInterview-Q-A](https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md)   

<br/>   


## Java resources

<br/>

**Sort:**
- [冒泡排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F.md)

- [快速排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F.md)

- [选择排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F.md)

- [插入排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F.md)

- [希尔排序](https://github.com/CaMnter/EasyAndroidResources/blob/master/md/java/sort/%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F.md)

<br/>

**Network:**
- [TCP/IP 协议三次握手与四次握手流程解析](http://www.2cto.com/net/201310/251896.html)

- [详解 Https 是如何确保安全的？](http://www.wxtlife.com/2016/03/27/%E8%AF%A6%E8%A7%A3https%E6%98%AF%E5%A6%82%E4%BD%95%E7%A1%AE%E4%BF%9D%E5%AE%89%E5%85%A8%E7%9A%84%EF%BC%9F)           
- [SSL/TLS 协议运行机制的概述](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)


<br/>

**Other:**
- [ArrayList 的实现原理](http://zhangshixi.iteye.com/blog/674856)  

- [HashMap 的实现原理](http://zhangshixi.iteye.com/blog/672697)   

- [Java 中 volatile 关键字的含义](http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html)   

- [Effective-JAVA-Summary](https://github.com/HugoMatilla/Effective-JAVA-Summary)   

<br/>


## Annotated source code

<br/>

**Android:**
- [LruCache](https://github.com/CaMnter/EasyAndroidResources/blob/master/code/android/classes/LruCache.java)

- [Otto](https://github.com/CaMnter/EasyAndroidResources/tree/master/code/android/framework/otto)

- [agera](https://github.com/CaMnter/AndroidLife/tree/master/agera-1.0.0/src/main/java/com/google/android/agera)
{'fraction_non_alphanumeric': 0.2096793563107962, 'fraction_numerical': 0.09565269604899723, 'mean_word_length': 5.352021357742181, 'pattern_counts': {'":': 0, '<': 39, '<?xml version=': 0, '>': 39, 'https://': 85, 'lorem ipsum': 0, 'www.': 18, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2691990', 'n_tokens_mistral': 9121, 'n_tokens_neox': 8668, 'n_words': 395}