gitextract_c1rujubr/ ├── API简析/ │ └── LruCache.md ├── Kotlin/ │ └── Kotlin.md ├── README.md ├── 其他/ │ ├── Android知识点随记.md │ ├── MarkNote版本1的.md │ ├── MarkNote版本2.md │ └── 计算机视觉与Android.md ├── 响应式编程/ │ ├── RxJava系列-4:RxJava源码分析.md │ ├── RxJava系列(1):一篇的比较全面的RxJava2方法总结.md │ ├── RxJava系列(2):Flowable和背压.md │ └── RxJava系列(3):用RxJava打造EventBus.md ├── 四大组件/ │ ├── Activity.md │ ├── Broadcast.md │ ├── Fragment.md │ └── Service.md ├── 图片加载/ │ ├── Android相机最佳实践.md │ ├── Glide系列:Glide主流程源码分析.md │ ├── Glide系列:Glide的缓存的实现原理.md │ ├── Glide系列:Glide的配置和使用方式.md │ └── 图片压缩框架封装.md ├── 工作空间/ │ ├── OOM优化.md │ ├── Tinker.md │ ├── URL编码问题.md │ ├── 文章暂时存放.md │ ├── 百度定位API.md │ └── 第三方库整理.md ├── 开发工具/ │ ├── ADB_常见的ADB指令总结.md │ ├── Gradle_常见的指令和配置总结.md │ └── Keytool_常用的指令.md ├── 异步编程/ │ ├── Android多线程编程:IntentService和HandlerThread.md │ └── AsyncTask的使用和源码分析.md ├── 性能优化/ │ ├── Android性能优化-ANR.md │ ├── Android性能优化-内存优化.md │ ├── Android性能优化-启动优化.md │ ├── Android性能优化-布局优化.md │ ├── Android相机Camera1资料.md │ ├── Android相机Camera2资料.md │ └── Android进程保活.md ├── 消息机制/ │ ├── EventBus的源码分析.md │ ├── 线程通信:Handler、MessageQueue和Looper.md │ └── 跨进程通信:Binder机制.md ├── 混合开发/ │ └── ReactNative.md ├── 笔试面试/ │ ├── Android高级软件工程师2017.md │ ├── Android高级面试_10_跨平台开发.md │ ├── Android高级面试_11_JNINDK.md │ ├── Android高级面试_12_各种三方库分析.md │ ├── Android高级面试_12_算法.md │ ├── Android高级面试_12_项目经验梳理.md │ ├── Android高级面试_1_Handler相关.md │ ├── Android高级面试_2_IPC相关.md │ ├── Android高级面试_3_语言相关.md │ ├── Android高级面试_4_虚拟机相关.md │ ├── Android高级面试_5_四大组件、系统源码等.md │ ├── Android高级面试_6_性能优化.md │ ├── Android高级面试_7_网络相关.md │ ├── Android高级面试_8_热修补插件化等.md │ ├── Android高级面试_9_网络基础.md │ ├── README.md │ ├── java/ │ │ ├── ArrayList、LinkedList、Vector.md │ │ ├── Collection包结构,与Collections的区别.md │ │ ├── HashMap和ConcurrentHashMap的区别,HashMap的底层源码.md │ │ ├── HashMap和HashTable的区别.md │ │ ├── Hashcode的作用.md │ │ ├── Java1.7与1.8新特性.md │ │ ├── Java的四种引用,强弱软虚,用到的场景.md │ │ ├── Map、Set、List、Queue、Stack的特点与用法.md │ │ ├── Object有哪些公用方法.md │ │ ├── Override和Overload的含义去区别.md │ │ ├── Static class 与 non static class的区别.md │ │ ├── String、StringBuffer与StringBuilder的区别.md │ │ ├── Switch能否用string做参数.md │ │ ├── TreeMap、HashMap、LindedHashMap.md │ │ ├── equals与==的区别.md │ │ ├── jvm-java 内存模型 以及各个分区具体内容.md │ │ ├── throw和throws有什么区别.md │ │ ├── wait()和sleep()的区别.md │ │ ├── 九种基本数据类型的大小以及他们的封装类.md │ │ ├── 内存溢出和内存泄露的区别.md │ │ └── 解析XML的几种方式的原理与特点:DOM、SAX、PULL.md │ ├── 今日头条Android面试.md │ └── 初级工程师.md ├── 系统架构/ │ ├── Android应用启动过程.md │ ├── Android应用安装过程.md │ ├── Android打包过程.md │ ├── Android系统启动过程.md │ ├── Android系统架构.md │ ├── SurefaceView_and_TextureView.md │ ├── 控件体系/ │ │ ├── RV.md │ │ ├── RV各种效果实现.md │ │ ├── View体系详解:View的工作流程.md │ │ ├── View体系详解:坐标系、滑动事件和分发机制.md │ │ ├── View体系详解:自定义控件.md │ │ └── 动画体系详解.md │ └── 窗口机制/ │ └── Android的Window管理机制.md ├── 网络访问/ │ ├── OKHttp源码阅读.md │ └── Retrofit源码阅读.md └── 高阶技术/ ├── Android插件化.md ├── Dagger从集成到源码.md ├── JNI技术总结.md ├── 探索Android架构设计.md ├── 注解在Android中的应用.md ├── 浅谈LiveData的通知过程.md └── 浅谈ViewModel生命周期控制.md