{"id":15034332,"url":"https://github.com/chiclaim/androidall","last_synced_at":"2025-05-15T17:08:14.387Z","repository":{"id":39861809,"uuid":"83949640","full_name":"chiclaim/AndroidAll","owner":"chiclaim","description":"Android 程序员需要掌握的技术栈：数据结构算法、程序架构、设计模式、性能优化、Kotlin、NDK、Jetpack，以及常用的开源框架源码分析如 Flutter、Router、RxJava、Glide、LeakCanary、Dagger2、Retrofit、OkHttp、ButterKnife 等","archived":false,"fork":false,"pushed_at":"2024-01-28T02:48:11.000Z","size":23490,"stargazers_count":1639,"open_issues_count":3,"forks_count":400,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-04-18T06:51:49.632Z","etag":null,"topics":["android-architecture","android-source","butterknife","custom-view","dagger","datastructures-algorithms","flutter","fragment","jetpack","jni-android","kotlin","okhttp","optimized-memory","react-native","retrofit","rxjava"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chiclaim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-05T06:18:24.000Z","updated_at":"2025-04-17T01:22:30.000Z","dependencies_parsed_at":"2024-01-14T06:51:54.745Z","dependency_job_id":"261a9629-8401-4f3f-a8bf-455441e43888","html_url":"https://github.com/chiclaim/AndroidAll","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiclaim%2FAndroidAll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiclaim%2FAndroidAll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiclaim%2FAndroidAll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiclaim%2FAndroidAll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chiclaim","download_url":"https://codeload.github.com/chiclaim/AndroidAll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384988,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-architecture","android-source","butterknife","custom-view","dagger","datastructures-algorithms","flutter","fragment","jetpack","jni-android","kotlin","okhttp","optimized-memory","react-native","retrofit","rxjava"],"created_at":"2024-09-24T20:24:39.791Z","updated_at":"2025-05-15T17:08:09.378Z","avatar_url":"https://github.com/chiclaim.png","language":"Java","readme":"# 最全的 Android 技术栈\n\nAndroid 程序员所需要的技能：「**数据结构算法**」「**程序架构**」「**设计模式**」「**性能优化**」「**组件化**」「**NDK技术**」「**自定义View**」「**性能优化**」「**Android源码分析**」「**深入理解Kotlin**」「**Java核心技术**」「**Jetpack**」「**Router**」「**Flutter**」「**RxJava**」「**Glide**」「**LeakCanary**」「**Dagger2**」「**Retrofit**」「**OkHttp**」「**ButterKnife**」「**GreenDAO**」「**经典书籍**」等。如果您有任何问题或建议欢迎 [**Issues**](https://github.com/chiclaim/AndroidAll/issues/new) 。 Android 知识脉络路线图：\n\n![android-roadmap](/xmind/Android_RoadMap.png)\n\n\n\n## #Java核心技术#\n\n为了能够开发高质量的 Android App，首先要求我们具备扎实的 Java 基础。\n\n不仅需要熟练使用 Java 各项 API。如 Java 网络编程、多线程并发、集合框架等。\n\n还需要掌握常见 API 的底层原理。如 集合框架的实现原理，要求我们掌握常用的数据结构与算法。\n\n除此以外，还需要我们对 Java 执行机制有一定了解，这个时候可要求我们对 Java 虚拟机有一定的掌握。如 class 字节码、类加载器、垃圾回收机制等。\n\n关于这方面的知识，可以学习参考我之前的一些总结：\n\n**Java基础：**\n\n- [Java 反射技术详解](https://blog.csdn.net/johnny901114/article/details/7538998)\n- [Java XML 解析方式汇总](https://blog.csdn.net/johnny901114/article/details/7867934)\n- [Java ClassLoader 类加载器详解](https://blog.csdn.net/johnny901114/article/details/7738958)\n\n**Java网络编程：**\n\n- [Java 网络编程详解（一）](https://blog.csdn.net/johnny901114/article/details/7866864)\n- [Java 网络编程详解（二）](https://blog.csdn.net/johnny901114/article/details/7865617)\n\n**JavaIO：**\n- [Java I/O 流操作（一）System Properties Runtime 类](https://blog.csdn.net/johnny901114/article/details/8710381)\n- [Java I/O 流操作（二）字节流与缓冲流](https://blog.csdn.net/johnny901114/article/details/8710403)\n- [Java I/O 流操作（三）File 文件操作、PrintWriter、SequenceInputStream](https://blog.csdn.net/johnny901114/article/details/8710433)\n- [Java I/O 流操作（四）对象的序列化](https://blog.csdn.net/johnny901114/article/details/8710341)\n\n**Java多线程：**\n- [Java 多线程（一）线程间的互斥和同步通信](https://blog.csdn.net/johnny901114/article/details/8695668)\n- [Java 多线程（二）同步线程分组问题](https://blog.csdn.net/johnny901114/article/details/7854666)\n- [Java 多线程（三）线程池入门 Callable 和 Future](https://blog.csdn.net/johnny901114/article/details/8695693)\n- [Java 多线程（四）ThreadPoolExecutor 线程池各参数的意义](https://blog.csdn.net/johnny901114/article/details/8332088)\n- [Java 多线程（五）Lock 和 Condition 实现线程同步通信](https://blog.csdn.net/johnny901114/article/details/8695708)\n- [Java 多线程（六）Semaphore 实现信号灯](https://blog.csdn.net/johnny901114/article/details/8695717)\n- [Java 多线程（七）CyclicBarrier 同步的工具类](https://blog.csdn.net/johnny901114/article/details/8695723)\n- [Java 多线程（八）CountDownLatch 同步工具类](https://blog.csdn.net/johnny901114/article/details/8695726)\n- [Java 多线程（九）Exchanger 同步工具类](https://blog.csdn.net/johnny901114/article/details/8696019)\n- [Java 多线程（十）ArrayBlockingQueue 阻塞队列](https://blog.csdn.net/johnny901114/article/details/8696026)\n- [Java 多线程（十一）JDK 同步集合](https://blog.csdn.net/johnny901114/article/details/8696032)\n\n**Java集合框架：**\n- [数据结构与算法（十四）深入理解红黑树和JDK TreeMap和TreeSet源码分析](https://chiclaim.blog.csdn.net/article/details/81046088)\n- [数据结构与算法（十三）平衡二叉树之AVL树](https://chiclaim.blog.csdn.net/article/details/80740418)\n- [数据结构与算法（十二）并查集(Union Find)及时间复杂度分析](https://chiclaim.blog.csdn.net/article/details/80721436)\n- [数据结构与算法（十一）Trie字典树](https://chiclaim.blog.csdn.net/article/details/80711441)\n- [数据结构与算法（十）线段树(Segment Tree)入门](https://chiclaim.blog.csdn.net/article/details/80643017)\n- [数据结构与算法（九）Set集合和BinarySearchTree的时间复杂度分析](https://chiclaim.blog.csdn.net/article/details/80628876)\n- [数据结构与算法（八）二分搜索树(Binary Search Tree)](https://chiclaim.blog.csdn.net/article/details/80598727)\n- [数据结构与算法（七）树和二叉树](https://chiclaim.blog.csdn.net/article/details/80574803)\n- [数据结构与算法（六）二叉堆、优先队列和Java PriorityQueue](https://chiclaim.blog.csdn.net/article/details/80550279)\n- [数据结构与算法（五）深入理解递归](https://chiclaim.blog.csdn.net/article/details/80536238)\n- [数据结构与算法（四）队列和 Java ArrayDeque 源码剖析](https://chiclaim.blog.csdn.net/article/details/80456833)\n- [数据结构与算法（三）栈和 Java Stack 源码分析](https://chiclaim.blog.csdn.net/article/details/80373290)\n- [数据结构与算法（二）线性表之链式存储和LinkedList实现](https://chiclaim.blog.csdn.net/article/details/80351584)\n- [数据结构与算法（一）线性表之顺序存储和 ArrayList、Vector 源码剖析](https://chiclaim.blog.csdn.net/article/details/80158343)\n- [ArrayBlockingQueue 阻塞队列](https://blog.csdn.net/johnny901114/article/details/8696026)\n\n**Java虚拟机：**\n- [深入理解 Java 虚拟机（一）~ class 字节码文件剖析](https://chiclaim.blog.csdn.net/article/details/101778619)\n- [深入理解 Java 虚拟机（二）~ 类的加载过程剖析](https://chiclaim.blog.csdn.net/article/details/102177986)\n- [深入理解 Java 虚拟机（三）~ class 字节码的执行过程剖析](https://chiclaim.blog.csdn.net/article/details/102508069)\n- [深入理解 Java 虚拟机（四）~ 各种容易混淆的常量池](https://chiclaim.blog.csdn.net/article/details/102537682)\n- [深入理解 Java 虚拟机（五）~ 对象的创建过程](https://chiclaim.blog.csdn.net/article/details/102573221)\n- [深入理解 Java 虚拟机（六）~ Garbage Collection 剖析](https://chiclaim.blog.csdn.net/article/details/103229687)\n\n\n**数据结构与算法：**\n- [数据结构与算法（十四）深入理解红黑树和JDK TreeMap和TreeSet源码分析](https://chiclaim.blog.csdn.net/article/details/81046088)\n- [数据结构与算法（十三）平衡二叉树之AVL树](https://chiclaim.blog.csdn.net/article/details/80740418)\n- [数据结构与算法（十二）并查集(Union Find)及时间复杂度分析](https://chiclaim.blog.csdn.net/article/details/80721436)\n- [数据结构与算法（十一）Trie字典树](https://chiclaim.blog.csdn.net/article/details/80711441)\n- [数据结构与算法（十）线段树(Segment Tree)入门](https://chiclaim.blog.csdn.net/article/details/80643017)\n- [数据结构与算法（九）Set集合和BinarySearchTree的时间复杂度分析](https://chiclaim.blog.csdn.net/article/details/80628876)\n- [数据结构与算法（八）二分搜索树(Binary Search Tree)](https://chiclaim.blog.csdn.net/article/details/80598727)\n- [数据结构与算法（七）树和二叉树](https://chiclaim.blog.csdn.net/article/details/80574803)\n- [数据结构与算法（六）二叉堆、优先队列和Java PriorityQueue](https://chiclaim.blog.csdn.net/article/details/80550279)\n- [数据结构与算法（五）深入理解递归](https://chiclaim.blog.csdn.net/article/details/80536238)\n- [数据结构与算法（四）队列和 Java ArrayDeque 源码剖析](https://chiclaim.blog.csdn.net/article/details/80456833)\n- [数据结构与算法（三）栈和 Java Stack 源码分析](https://chiclaim.blog.csdn.net/article/details/80373290)\n- [数据结构与算法（二）线性表之链式存储和LinkedList实现](https://chiclaim.blog.csdn.net/article/details/80351584)\n- [数据结构与算法（一）线性表之顺序存储和 ArrayList、Vector 源码剖析](https://chiclaim.blog.csdn.net/article/details/80158343)\n\n\n\n## #深入理解Kotlin#\n\n随着 Kotlin 在 Android 开发的过程中的普及，以及 Kotlin 本身的一些优势。要求我们对 Kotlin 也需要有很好的掌握。\n\n为了更好的更快更深入的学习 Kotlin，我们可以在学习 Kotlin 的过程中，深度对比 Java，让我们对 Kotlin 的掌握程度快速达到对 Java 的掌握程度。\n\n关于这 Koltin 相关的资料大家可参考我下面的文章，其中包括：类型体系、Lambda 表达式、高阶函数、泛型、集合、操作符重载、协程等 Kotlin 核心概念等：\n\n以下是我在 B 站录制的 Kotlin 教程：\n\n- [x] [Kotlin入门到进阶(1)——前言](https://www.bilibili.com/video/BV1hR4y1A7Vu/)\n- [x] [Kotlin入门到进阶(2)——变量、函数入门](https://www.bilibili.com/video/BV1Ur4y1t7a3/)\n- [x] [Kotlin入门到进阶(3)——表达式、语句及与 Java 的对比](https://www.bilibili.com/video/BV1r54y1f7gT/)\n- [x] [Kotlin入门到进阶(4)——结构化编程：顺序结构、选择结构、循环结构](https://www.bilibili.com/video/BV1bu41167Dr/)\n- [x] [Kotlin入门到进阶(5)——空安全(Null Safety)和实战技巧](https://www.bilibili.com/video/BV1AY4y1t7hX/)\n- [x] [Kotlin入门到进阶(6)——类型系统和访问修饰符详解](https://www.bilibili.com/video/BV18Y4y1z7h8/)\n- [x] [Kotlin入门到进阶(7)——数组类型和它的扩展函数](https://www.bilibili.com/video/BV1RB4y1y7bU/)\n- [x] [Kotlin入门到进阶(8)——Nothing 类型, 不为人知的细节](https://www.bilibili.com/video/BV1SR4y1c7Xm/)\n- [x] [Kotlin入门到进阶(9)——深入理解 Kotlin 集合、序列](https://www.bilibili.com/video/BV1o54y1Z7s3/)\n- [x] [Kotlin入门到进阶(10)——聊一聊 Kotlin String](https://www.bilibili.com/video/BV1z3411G7gA/)\n- [x] [Kotlin入门到进阶(11)——再谈 Kotlin 函数](https://www.bilibili.com/video/BV13F411j7mF/)\n- [x] [Kotlin入门到进阶(12)——彻底搞懂 Class 和 Interface](https://www.bilibili.com/video/BV1ev4y1A7kM/)\n- [x] [Kotlin入门到进阶(13)——Java Property 和 Field 你真的懂么？](https://www.bilibili.com/video/BV1At4y1s7sE/)\n- [x] [Kotlin入门到进阶(14)——lateinit property 案例实战](https://www.bilibili.com/video/BV1CY4y1678g/)\n- [x] [Kotlin入门到进阶(15)——深入理解属性代理(一) by lazy、Delegates.observable](https://www.bilibili.com/video/BV1j3411V7Ve/)\n- [x] [Kotlin入门到进阶(16)——深入理解属性委托(二) 代码演示 LazyThreadSafetyMode 的区别](https://www.bilibili.com/video/BV18Z4y147b2/)\n- [x] [Kotlin入门到进阶(17)——深入理解属性委托(三) by map 和委托模式](https://www.bilibili.com/video/BV1at4y1p7iB/)\n- [x] [Kotlin入门到进阶(18)——枚举(一)为什么要有枚举？](https://www.bilibili.com/video/BV1it4y1p7TA/)\n- [x] [Kotlin入门到进阶(19)——枚举(二)枚举 API 特性](https://www.bilibili.com/video/BV1jU4y117Q9/)\n- [x] [Kotlin入门到进阶(20)——枚举(三)枚举的本质](https://www.bilibili.com/video/BV1W3411G7n9/)\n- [x] [Kotlin入门到进阶(21)——枚举(四)枚举 switch case 原理分析](https://www.bilibili.com/video/BV1SS4y1v7Pm/)\n- [x] [Kotlin入门到进阶(22)——枚举(五)枚举的最佳实践](https://www.bilibili.com/video/BV1oY411T7d2/)\n- [x] [Kotlin入门到进阶(23)——Kotlin1.7 枚举、密封类新特性解读 \u0026 枚举 VS 密封类](https://www.bilibili.com/video/BV1vZ4y1t7Gr/)\n- [x] [Kotlin入门到进阶(24)——操作符重载全解](https://www.bilibili.com/video/BV1LZ4y1q7hE/)\n- [x] [Kotlin入门到进阶(25)——优雅的文件 I/O 操作](https://www.bilibili.com/video/BV1Jt4y1H7ru/)\n- [x] [Kotlin入门到进阶(26)——异常(一) Kotlin 异常与 Java 的异同](https://www.bilibili.com/video/BV1SY4y1W76G/)\n- [x] [Kotlin入门到进阶(27)——异常(二) Kotlin异常设计理念、如何设计异常API](https://www.bilibili.com/video/BV1A3411u7UB/)\n- [x] [Kotlin入门到进阶(28)——注解](https://www.bilibili.com/video/BV1c3411w77q)\n- [x] [Kotlin入门到进阶(29)——深入理解反射](https://www.bilibili.com/video/BV13Y4y1n7X7/)\n- [x] [Kotlin入门到进阶(30)——深入理解 lambda 表达式](https://www.bilibili.com/video/BV1L34y1p7ax/)\n- [x] [Kotlin入门到进阶(31)——彻底搞懂高阶函数](https://www.bilibili.com/video/BV13T411g714/)\n- [x] [Kotlin入门到进阶(32)——inline、crossinline、noinline 解析](https://www.bilibili.com/video/BV1Kj41127p9/)\n- [x] [Kotlin入门到进阶(33)——return 和 loop jump](https://www.bilibili.com/video/BV1oj411y7x9/)\n- [ ] [Kotlin入门到进阶(34)——彻底搞懂 Java 泛型](#)\n- [ ] [Kotlin入门到进阶(34)——彻底搞懂 Kotlin 泛型](#) \n- [ ] 协程系列...\n\n\n\n## #设计原则与模式#\n\n设计原则对我们设计出高内聚、低耦合的可维护代码起着至关重要的作用。设计原则与模式很简单，但是如何很好的应用到实际工作中，显得不那么简单。需要我们不断的去琢磨与思考，在这方面我也有一些心得与体会，和大家一起探讨：\n\n- [设计模式 ~ 面向对象 6 大设计原则剖析与实战](https://chiclaim.blog.csdn.net/article/details/100566036)\n- [设计模式 ~ 模板方法模式分析与实战](https://chiclaim.blog.csdn.net/article/details/100584000)\n- [设计模式 ~ 观察者模式分析与实战](https://chiclaim.blog.csdn.net/article/details/100610201)\n- [设计模式 ~ 单例模式分析与实战](https://chiclaim.blog.csdn.net/article/details/100639132)\n- [设计模式 ~ 深入理解建造者模式与实战](https://chiclaim.blog.csdn.net/article/details/100679809)\n- [设计模式 ~ 工厂模式剖析与实战](https://chiclaim.blog.csdn.net/article/details/100779270)\n- [设计模式 ~ 适配器模式分析与实战](https://chiclaim.blog.csdn.net/article/details/100810001)\n- [设计模式 ~ 装饰模式探究](https://chiclaim.blog.csdn.net/article/details/100850966)\n- [设计模式 ~ 深入理解代理模式](https://chiclaim.blog.csdn.net/article/details/100901769)\n- [设计模式 ~ 小结](https://chiclaim.blog.csdn.net/article/details/100931166)\n\n\n## #Android架构#\n\n随着我们对设计原则与设计模式的理解与实践，我们也会对程序的一些架构提出一些问题，例如如何去解决我们项目中已存在的一些架构问题，关于这方面的内容可以参考：\n\n- [Android MVP架构改造~如何重用顶层业务](https://chiclaim.blog.csdn.net/article/details/88050156)\n- [二维火Android云收银模块化架构实践](https://chiclaim.blog.csdn.net/article/details/78346125)\n- [Android架构—MVP架构在Android中的实践](https://chiclaim.blog.csdn.net/article/details/54783106)\n- [Android-MVVM架构-Data Binding的使用](https://chiclaim.blog.csdn.net/article/details/50706329)\n- [使用 repo 管理 Android 组件化项目](https://blog.csdn.net/johnny901114/article/details/103387569)\n\n## #Android开源框架#\n\n使用 Android 开源框架，避免我们重复创建轮子。使用高质量的开源框架，能够帮助我们快速构建高质量的程序。\n\n与此同时，我们了解其被的实现原理，知其然也知其所以然。我们也可以学到很多代码设计上的技巧，同时也能够帮我们快速排查问题。\n\n这方面的内容，大家可以参考我的一些分析文章：\n\n**Jetpack：**\n- [Android Jetpack（一）Lifecycle 组件原理剖析](https://chiclaim.blog.csdn.net/article/details/104189041)\n- [Android Jetpack（二）ViewModel 组件原理剖析](https://chiclaim.blog.csdn.net/article/details/104200091)\n- [Android Jetpack（三）LiveData 组件原理剖析](https://chiclaim.blog.csdn.net/article/details/104334179)\n\n**RxJava：**\n- [RxJava create操作符的用法和源码分析](/rxjava/blogs/rxjava-create-source-analysis.md)\n- [RxJava map操作符用法详解](http://blog.csdn.net/johnny901114/article/details/51531348)\n- [RxJava flatMap操作符用法详解](http://blog.csdn.net/johnny901114/article/details/51532776)\n- [RxJava concatMap操作符用法详解](http://blog.csdn.net/johnny901114/article/details/51533282)\n- [RxJava onErrorResumeNext操作符实现app与服务器间token机制](http://blog.csdn.net/johnny901114/article/details/51533586)\n- [RxJava retryWhen操作符实现错误重试机制](http://blog.csdn.net/johnny901114/article/details/51539708)\n- [RxJava 使用debounce操作符优化app搜索功能](http://blog.csdn.net/johnny901114/article/details/51555203)\n- [RxJava concat操作处理多数据源](http://blog.csdn.net/johnny901114/article/details/51568562)\n- [RxJava zip操作符在Android中的实际使用场景](http://blog.csdn.net/johnny901114/article/details/51614927)\n- [RxJava switchIfEmpty操作符实现Android检查本地缓存逻辑判断](http://blog.csdn.net/johnny901114/article/details/52585912)\n- [RxJava defer操作符实现代码支持链式调用](http://blog.csdn.net/johnny901114/article/details/52597643)\n- [combineLatest操作符的高级使用](http://blog.csdn.net/johnny901114/article/details/61191723)\n- [RxJava导致Fragment Activity内存泄漏问题](http://blog.csdn.net/johnny901114/article/details/67640594)\n- [interval、takeWhile操作符实现获取验证码功能](http://blog.csdn.net/johnny901114/article/details/79037306)\n- [RxJava线程的自由切换](http://blog.csdn.net/johnny901114/article/details/80032801)\n\n**Retrofit：**\n- [Android Retrofit 源码系列（一）~ 原理剖析](https://chiclaim.blog.csdn.net/article/details/103934516)\n- [Android Retrofit 源码系列（二）~ 自定义 CallAdapter](https://chiclaim.blog.csdn.net/article/details/103944895)\n- [Android Retrofit 源码系列（三）~ 整合 RxJava、Coroutine 分析](https://chiclaim.blog.csdn.net/article/details/104018960)\n- [Android Retrofit 源码系列（四）~ 文件上传](https://chiclaim.blog.csdn.net/article/details/104032454)\n- [Android Retrofit 源码系列（五）~ 设计模式分析](https://chiclaim.blog.csdn.net/article/details/104093006)\n\n**Dagger2：**\n- [Android Dagger2（二）源码分析-对象是如何被注入的](https://chiclaim.blog.csdn.net/article/details/58231038)\n- [Android Dagger2（一） Dagger使用详解](https://chiclaim.blog.csdn.net/article/details/58225116)\n\n**ButterKnife：**\n- [Android开发之手把手教你写ButterKnife框架（三）](https://chiclaim.blog.csdn.net/article/details/52672188)\n- [Android开发之手把手教你写ButterKnife框架（二）](https://chiclaim.blog.csdn.net/article/details/52664112)\n- [Android开发之手把手教你写ButterKnife框架（一）](https://chiclaim.blog.csdn.net/article/details/52662376)\n\n## #Android性能优化#\n\n- [Android 性能优化 ~ 内存优化](https://blog.csdn.net/johnny901114/article/details/54377370)\n- [Android 性能优化 ~ 包体积优化实战](https://chiclaim.blog.csdn.net/article/details/105189854)\n\n## #NDK开发#\n\n- [C++ 程序设计](https://github.com/chiclaim/AndroidAll/blob/master/language-c++/README.md)\n- [Android NDK ~ 基础入门指南](https://blog.csdn.net/johnny901114/article/details/101112607)\n- [Android NDK ~ Java 和 Native 交互](https://blog.csdn.net/johnny901114/article/details/101124117)\n\n\n## #跨平台开发#\n\n**Flutter：**\n- [（一）Flutter学习之Dart变量和类型系统](https://chiclaim.blog.csdn.net/article/details/94364411)\n- [（二）Flutter学习之Dart展开操作符 和 Control Flow Collections\n](https://chiclaim.blog.csdn.net/article/details/94617048)\n- [（三）Flutter学习之Dart函数](https://chiclaim.blog.csdn.net/article/details/94861914)\n- [（四）Flutter学习之Dart操作符、控制流和异常处理](https://chiclaim.blog.csdn.net/article/details/95072693)\n- [（五）Flutter学习之Dart面向对象](https://chiclaim.blog.csdn.net/article/details/96826144)\n- [（六）Flutter学习之Dart异步操作详解](https://chiclaim.blog.csdn.net/article/details/97099388)\n- [（七）Flutter学习之开发环境搭建](https://chiclaim.blog.csdn.net/article/details/97561397)\n- [（八）Flutter 和 Native 之间的通信详解](https://chiclaim.blog.csdn.net/article/details/97621045)\n- [（九）Android 项目集成 Flutter 模块](https://chiclaim.blog.csdn.net/article/details/100045683)\n- [（十）Flutter FutureBuilder 优雅构建异步UI](https://chiclaim.blog.csdn.net/article/details/100063636)\n- 更新中...\n\n\n## #经典书籍#\n\n- [《Android开发艺术探索》](#经典书籍)\n- [《Android源码设计模式》](#经典书籍)\n- [《Android自定义控件开发入门与实战》](#经典书籍)\n- [《Android软件安全与逆向分析》](#经典书籍)\n- [《Android群英传》](#经典书籍)\n- [《Java编程思想》](#经典书籍)\n- [《Java核心技术：卷I基础知识》](#经典书籍)\n- [《Java8实战》](#经典书籍)\n- [《重构:改善既有代码的设计》](#经典书籍)\n- [《Java并发编程实战》](#经典书籍)\n- [《深入理解Java虚拟机》](#经典书籍)\n- [《Effective Java 第二版》](#经典书籍)\n- [《Java与模式》](#经典书籍)\n- [《代码整洁之道》](#经典书籍)\n- [《剑指Offer名企面试官精讲典型编程题》](#经典书籍)\n- [《阿里巴巴-深入探索 Android 热修复技术原理》](#经典书籍)\n- [《Kotlin In Action》](#经典书籍)\n- [《HTTP权威指南》](#经典书籍)\n- 陆续整理网盘开放中...\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiclaim%2Fandroidall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchiclaim%2Fandroidall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiclaim%2Fandroidall/lists"}