Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wingjay/android-open-source-project-cracking
Analysis for Popular & Hot Android open-source Applications & Libraries will help you grow into a Senior Android developer. Follow us, do practice in the right and fast way. 通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处,这些都是你成为一名高级android developer必不可少的。
https://github.com/wingjay/android-open-source-project-cracking
Last synced: 30 days ago
JSON representation
Analysis for Popular & Hot Android open-source Applications & Libraries will help you grow into a Senior Android developer. Follow us, do practice in the right and fast way. 通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处,这些都是你成为一名高级android developer必不可少的。
- Host: GitHub
- URL: https://github.com/wingjay/android-open-source-project-cracking
- Owner: wingjay
- License: apache-2.0
- Created: 2016-04-16T04:42:50.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-01-11T12:37:42.000Z (almost 5 years ago)
- Last Synced: 2024-10-01T19:23:43.311Z (about 1 month ago)
- Language: GCC Machine Description
- Homepage:
- Size: 44.9 KB
- Stars: 1,120
- Watchers: 108
- Forks: 199
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Android 优质开源项目剖析与技术进阶
本系列的文章主要面向以下几类读者:1. 不满足于`简单使用开源库`,想要`通过探究其原理`以`精进自身技术或创建自己的开源库`;
2. 对于`新技术`如`RxJava`等的实践处于摸索状态,希望有`优质的code实例及细致分析`来让你迅速上手一门新技术;
3. 对于一些`底层库`如`网络底层库Retrofit`、`图片加载库Picasso/Glide`等实现原理保持好奇。_________________________________
比起阅读枯燥文档,独自摸索一门技术的最佳实践,我们还有一种方法能够快速而稳定的精进自身的开发水平,那就是通过`阅读、分析、仿写与理解`优质的开源项目。
### 一、已有文章
#### Application
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间
:------------- | :------------- | :------------- | :------------- | :-------------
[自己动手实现OkHttp](http://wingjay.com/2016/07/21/%E5%B8%A6%E4%BD%A0%E5%AD%A6%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%EF%BC%9AOkHttp-%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%AE%9E%E7%8E%B0okhttp/) | [wingjay](https://github.com/wingjay) | [OkHttp](https://github.com/square/okhttp) | 学习okhttp世界级项目的思维精华 | 20160721
[RxLifecycle: 当Activity被destory时暂停网络请求](http://wingjay.com/2016/07/14/RxLifecycle%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%8D%E5%BD%93Activity%E8%A2%ABdestory%E6%97%B6%E8%87%AA%E5%8A%A8%E6%9A%82%E5%81%9C%E7%BD%91%E7%BB%9C%E8%AF%B7%E6%B1%82/) | [wingjay](https://github.com/wingjay) | [RxLifecycle](https://github.com/trello/RxLifecycle) | 处理RxJava中内存泄漏问题 | 20160715
[Meizhi Android之RxJava & Retrofit最佳实践](https://github.com/wingjay/android-open-source-project-cracking/blob/master/application/Meizhi%20Android%E4%B9%8BRxJava%20%26%20Retrofit%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.md) | [wingjay](https://github.com/wingjay) | [Meizhi](https://github.com/drakeet/Meizhi) | 使用RxJava & Retrofit的sample | 20160416#### View
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间
:------------- | :------------- | :------------- | :------------- | :-------------
[JJSearchViewAnim源码分析](http://www.jianshu.com/p/a48f4e6cf036)| [Skykai521](https://github.com/Skykai521)| [JJSearchViewAnim](https://github.com/android-cjj/JJSearchViewAnim) | | 20160417
[SwipeBackLayout源码分析](http://www.jianshu.com/p/a91d669421e9)| [Skykai521](https://github.com/Skykai521)| [SwipeBackLayout](https://github.com/ikew0ng/SwipeBackLayout) | | 20160417
[HTextView源码分析](http://www.jianshu.com/p/15358d444800)| [Skykai521](https://github.com/Skykai521)| [HTextView](https://github.com/hanks-zyh/HTextView) | | 20160417#### Library
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间
:------------- | :------------- | :------------- | :------------- | :-------------
[ButterKnife源码分析](https://github.com/wingjay/android-open-source-project-cracking/blob/master/library/ButterKnife.md)| [BigFootprint](https://github.com/BigFootprint)| [ButterKnife](http://jakewharton.github.io/butterknife/) | | 20160423
[RxPermissions源码解析](http://www.jianshu.com/p/c8a30200e6b2)| [Skykai521](https://github.com/Skykai521)| [RxPermissions](https://github.com/tbruyelle/RxPermissions) | | 20160417
[BarcodeScanner源码分析](http://www.jianshu.com/p/d34383d4cb89)| [Skykai521](https://github.com/Skykai521)| [BarcodeScanner](https://github.com/dm77/barcodescanner) | | 20160417
[ViewAnimator源码分析](http://www.jianshu.com/p/749c4531d108)| [Skykai521](https://github.com/Skykai521)| [ViewAnimator](https://github.com/florent37/ViewAnimator) | | 20160417
[uCrop源码分析](http://www.jianshu.com/p/523e77a10321)| [Skykai521](https://github.com/Skykai521)| [uCrop](https://github.com/Yalantis/uCrop) | | 20160417
[Picasso源代分析](http://www.jianshu.com/p/3c36382bc1cd)| [Skykai521](https://github.com/Skykai521)| [Picasso](https://github.com/square/picasso) | | 20160417
[EventBus 3.0源码分析](http://www.jianshu.com/p/f057c460c77e)| [Skykai521](https://github.com/Skykai521)| [EventBus](https://github.com/greenrobot/EventBus) | | 20160417### 二、我们会挑选哪些`优质开源项目`
#### 1. 新技术
我们会挑选覆盖`RxJava`、`React Native`、`Dynamic load`、`Dagger`、`Retrofit`等新技术的开源项目,分析总结出`新技术最佳实践`供读者阅读仿写,快速将新技术应用到自身项目开发中,不用反复踩坑。#### 2. 底层库
初级程序员会调用API、实现基本功能;
中级程序员开始`封装`,消除`ugly`代码;
高级程序员能够`设计架构`,重构出`优雅`代码。我们会挑选一些优秀底层库,`深入浅出`的去分析它们的`设计思想`,阐述如何把这些设计思想融入到自身实际项目中。
#### 3. 自定义View
很多人习惯了在Github寻找通用的UI库。坏消息是,UI的变化千千万,迟早有一天我们会不得不由于自己项目的特殊性,而要自己来实现自定义view。
好消息是,自定义view虽然变化万千,但却不离其宗,而我们的分析就是尝试向你讲述`如何理解自定义view的原理`。
### 三、加入我们
如果你对本项目有兴趣,你可以选择以下方式之一加入进来:1. `阅读者`。`start & watch`这个项目,关注微信公众号`CoolCoder`,我们会在第一时间推送。
2. `写作者`。如果你热爱分析开源项目,热爱分享与写作。那就挑选一个你认为优质的开源项目进行写作,创建pull request。另外,你可以在[task.md](https://github.com/wingjay/android-open-source-project-cracking/blob/master/task.md)里记录你准备分析的项目。
3. `评论者`。阅读中遇到问题?直接创建[issue](https://github.com/wingjay/android-open-source-project-cracking/issues),作者会快速回答你。
4. `翻译者`。如果你还不具备分析开源项目的能力,那可以来对我们的中文文章进行翻译。这个翻译过程会让你受益匪浅的。
5. `校对者`。如果你技术过硬,愿意帮助新手程序员,可以发邮件给我,我相信"校对者"三个字会让很多年轻程序员记住你。### 四、写作者
[wingjay](https://github.com/wingjay)![](https://avatars0.githubusercontent.com/u/9619875?v=3&s=460)
[达庆凯 Skykai521](https://github.com/Skykai521)
![](https://avatars3.githubusercontent.com/u/8402109?v=3&s=100)
[BigFootprint](https://github.com/BigFootprint)
![](https://avatars3.githubusercontent.com/u/1704881?v=3&s=150)
...