|
1 | 1 | # Android著名开源库的简版实现
|
2 | 2 |
|
3 | 3 | ## 简述
|
4 |
| -该项目通过分析并实现Android平台知名开源框架的简单版本来提升自我,并达到深入理解各大开源库的核心原理的目的。稳定、强大的开源库一般都较为复杂,比如Universal-ImageLoader,因此简版开源库不需要完全按照原版来实现,只需要把核心架构、原理实现,并且做到可运用到实际项目中即可。在实现开源库简版的同时,作者需要写一系列文章来剖析它的实现原理以及为什么要这么设计,在提升自我的同时将框架的设计与实现、领悟分享给他人,希望大家在提升自我的同时对行业做出一些贡献。 |
| 4 | +该项目通过分析并实现Android平台知名开源框架的简单版本来提升自我,并达到深入理解各大开源库的核心原理的目的。稳定、强大的开源库一般都较为复杂,比如Universal-ImageLoader,因此简版开源库不需要完全按照原版来实现,只需要把核心架构、原理实现,并且做到可运用到实际项目中即可。在实现开源库简版的同时,作者需要写一系列文章来剖析它的实现原理以及为什么要这么设计,在提升自我的同时将框架的设计与实现、领悟分享给他人,希望大家在提升自我的同时对行业做出一些贡献。 |
5 | 5 |
|
6 |
| -如果你对面向对象不是很了解,那么在开始之前先学习一下[面向对象的六大原则](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/oop-principles/oop-principles.md)是非常有必要的。 |
| 6 | +如果你对面向对象不是很了解,那么在开始之前先学习一下[面向对象的六大原则](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/oop-principles/oop-principles.md)是非常有必要的。 |
| 7 | + |
| 8 | + |
| 9 | +Android平台的开源库请参考Trinea的[android-open-project](https://github.com/Trinea/android-open-project),一些知名开源库的分析请参考Trinea的[android-open-project-analysis](https://github.com/android-cn/android-open-project-analysis)。 |
7 | 10 |
|
8 | 11 |
|
9 | 12 | **<font color="red">QQ交流群: 413864859,希望大家踊跃参与进来。</font>**
|
|
13 | 16 | ## 库的所属种类
|
14 | 17 | | 开源库类型 | 文件夹 |
|
15 | 18 | | ------------- |:-------------:|
|
16 |
| -| 网络请求相关 | [network](network) | |
| 19 | +| 网络请求 | [network](network) | |
17 | 20 | | 数据库 | [orm](orm) |
|
18 | 21 | | 图片加载 | [imageloader](imageloader) |
|
19 | 22 | | view | [view](view) |
|
20 | 23 | | 注入框架 | [inject](inject) |
|
21 | 24 | | 兼容库 | [compatibility](compatibility) |
|
| 25 | +| 事件总线 | [eventbus](eventbus) | |
22 | 26 | | 其他 | [others](others) |
|
23 | 27 |
|
24 | 28 |
|
|
30 | 34 | ## 如何参与
|
31 | 35 | 1. 通过git将本库clone到本地;
|
32 | 36 | 2. 首先将自己要实现的库、完成时间(包括设计与实现的第一篇概括性文章的完成)等填写到任务表中;
|
33 |
| -3. 代码实现开源库的简版,这个简版库需要可用; |
34 |
| -4. 创建一个demo到该库的目录下,例如你要完成的库是Volley,那么你的demo的路径则为Volley/demo; |
35 |
| -5. 将文章的图片统一放到库名/images目录下,例如Volley/images; |
| 37 | +3. 在对应分类下创建库的目录,例如SimpleVolley,写代码实现开源库的简版,这个简版库需要可用; |
| 38 | +4. 创建一个demo到该库的目录下,例如你要完成的库是SimpleVolley,那么你的demo的路径则为SimpleVolley/demo; |
| 39 | +5. 将文章的图片统一放到库名/images目录下,例如SimpleVolley/images; |
36 | 40 | 6. 按照[template.md](template.md)完成库的基本介绍,并且在后续的文章中对库进行详细分析。如果没有后续文章那么建议在该介绍文件中对库的核心实现、设计进行详细分析。
|
37 | 41 | 7. 完成之后提交,并且push到该仓库当中。
|
38 | 42 |
|
39 | 43 | **<font color="red">注意,在开发过程中不要修改不属于自己的文件,避免在协作时产生冲突。</font>**
|
40 | 44 |
|
41 | 45 | ## 任务表
|
42 |
| -| 原开源库名称 | 简版开源库名称 | 作者 | 预计完成时间 | 进行状态 | |
43 |
| -| ------------- | ------------- |:-------------:| ------------- | ------------- | |
44 |
| -| Volley | SimpleNet | [Mr.Simple](https://github.com/bboyfeiyu) | 2015.3.5 | 未完成 | |
45 |
| -| ImageLoader | SimpleImageLoader | [Mr.Simple](https://github.com/bboyfeiyu) | 2015.3.15 | 未完成 | |
46 |
| -| AndroidEventBus | AndroidEventBus | [Mr.Simple](https://github.com/bboyfeiyu) | 2015.3.25 | 未完成 | |
47 |
| -| ButterKnife | InjectDagger | [Mr.Simple](https://github.com/bboyfeiyu) | 2015.4.2 | 未完成 | |
| 46 | +### 一期任务 ( 截止时间 2015.4.5 ) |
| 47 | +| 原开源库名称 | 简版开源库名称 | 作者 | 分类 | 预计完成时间 | 进行状态 | |
| 48 | +| ------------- | ------------- |:-------------:| ------------- | ------------- | ------------- | |
| 49 | +| [Volley](https://github.com/mcxiaoke/android-volley) | [SimpleNet](https://github.com/bboyfeiyu/simple_net_framework) | [Mr.Simple](https://github.com/bboyfeiyu) | 网络请求 | 2015.3.5 | 未完成 | |
| 50 | +| [ImageLoader](https://github.com/nostra13/Android-Universal-Image-Loader) | [SimpleImageLoader](https://github.com/bboyfeiyu/simple_imageloader) | [Mr.Simple](https://github.com/bboyfeiyu) | 图片加载 | 2015.3.15 | 未完成 | |
| 51 | +| [AndroidEventBus](https://github.com/bboyfeiyu/AndroidEventBus) | [AndroidEventBus](https://github.com/bboyfeiyu/AndroidEventBus) | [Mr.Simple](https://github.com/bboyfeiyu) | 其他 | 2015.3.25 | 未完成 | |
48 | 52 |
|
49 | 53 |
|
50 | 54 |
|
|
0 commit comments