Skip to content

Sync #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from Jul 28, 2015
Merged

Sync #50

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
Android 开源项目源码解析开发版
Android 开源项目源码解析
====================================
Android 开源项目源码解析开发地址,请大家基于这个库提交。
[android-cn/android-open-project-analysis](https://github.com/android-cn/android-open-project-analysis) 只用于作存放稳定版本。
这是一个协作项目,最终多数开源库原理解析会在这里分享出来。
欢迎大家`Star`、`Fork`,让更多的人知道并加入进来!

**稳定版地址:**[android-cn/android-open-project-analysis](https://github.com/android-cn/android-open-project-analysis)。
**开发版地址:**[aosp-exchange-group/android-open-project-analysis](https://github.com/aosp-exchange-group/android-open-project-analysis),请参与者基于这个库提交。

**在线网站:[www.codekk.com](http://codekk.com/open-source-project-analysis)**

###1. 如何加入
以`想分析的库`作为验证信息,申请加入 QQ 群(424059748)即可
以`你想分析的开源库库名`作为验证信息,申请加入 QQ 群(424059748)即可

###2. 具体编写步骤
具体步骤请见:[编写步骤](./zen/procedure.md)
Expand Down Expand Up @@ -50,3 +53,11 @@ Android 开源项目源码解析开发地址,请大家基于这个库提交。
[公共技术点之 Java 注解 Annotation](http://codekk.com/open-source-project-analysis/detail/Android/Trinea/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E6%B3%A8%E8%A7%A3%20Annotation) | [Trinea](https://github.com/Trinea)
[公共技术点之依赖注入](http://codekk.com/open-source-project-analysis/detail/Android/%E6%89%94%E7%89%A9%E7%BA%BF/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5) | [扔物线](https://github.com/rengwuxian)
[公共技术点之 View 事件传递](http://codekk.com/open-source-project-analysis/detail/Android/Trinea/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20View%20%E4%BA%8B%E4%BB%B6%E4%BC%A0%E9%80%92) | [Trinea](https://github.com/Trinea)

###4 加入我们
- 如果你在用各种开源库
- 如果你有兴趣去深挖它们优雅的实现
- 如果你希望知其然知其所以然提高自己

那么加入我们吧!!!
#### 我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!
4 changes: 2 additions & 2 deletions tech/reflection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public static Class<?> forName (String className, boolean shouldInitialize, Clas

### 2.2 通过 Class 对象构造目标类型的对象
一旦你拿到 Class 对象之后,你就可以为所欲为了!当你善用它的时候它就是神兵利器,当你心怀鬼胎之时它就会变成恶魔。但获取 Class 对象只是第一步,我们需要在执行那些强大的行为之前通过 Class 对象构造出该类型的对象,然后才能通过该对象释放它的能量。
我们知道,在 java 中药构造对象,必须通过该类的构造函数,那么其实反射也是一样一样的。但是它们确实有区别的,通过反射构造对象,我们首先要获取类的 Constructor(构造器)对象,然后通过 Constructor 来创建目标类的对象。还是直接上代码的。
我们知道,在 java 中要构造对象,必须通过该类的构造函数,那么其实反射也是一样一样的。但是它们确实有区别的,通过反射构造对象,我们首先要获取类的 Constructor(构造器)对象,然后通过 Constructor 来创建目标类的对象。还是直接上代码的。

```
private static void classForName() {
Expand Down Expand Up @@ -348,7 +348,7 @@ public Method[] getFields ()


### 6 获取注解信息
在框架开发中,注解加反射的组合使用是最为常见形式的。关于注解方面的知识请参考<a href="http://codekk.com/open-source-project-analysis/detail/Android/Trinea/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E6%B3%A8%E8%A7%A3%20Annotation" target="_blank">公共技术点之 Java 注解 Annotation</a>,定义注解时我们会通过@Target 指定该注解能够作用的类型,看如下示例:
在框架开发中,注解加反射的组合使用是最为常见形式的。关于注解方面的知识请参考[公共技术点之 Java 注解 Annotation](http://codekk.com/open-source-project-analysis/detail/Android/Trinea/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E6%B3%A8%E8%A7%A3%20Annotation),定义注解时我们会通过@Target 指定该注解能够作用的类型,看如下示例:

```
@Target({
Expand Down
17 changes: 15 additions & 2 deletions view/list-view/fly-refresh/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ FlyRefresh 是一个非常漂亮的下拉刷新的框架,下拉后会有纸飞

###1.1 **完成时间**

- `2015-07-24`完成
- `2015-07-27`更新



Expand Down Expand Up @@ -54,8 +54,21 @@ dependencies {

>```

### 1.4 **总体设计分析**
由于效果是动画实现,原作者采用把GIF图分解成一帧一帧的图片,分解的方法如下:
>```
convert -coalesce animation.gif frame.png
>```
总体设计是一个下拉刷新的效果;
页面上分为两个部分:头部和内容部分;
头部叠放在内容块的下面;
内容块可以下拉,放手会回弹,并且会触发飞机飞出的动画;
头部块会随着下拉过程中有动画产生(之后会重点来介绍);
![structure](image/structure.jpg)

---

##2. 详细设计

###2.1 类详细设计

---
Binary file added view/list-view/fly-refresh/image/structure.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion zen/schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[ijkplayer](https://github.com/Bilibili/ijkplayer) | [ayyb1988](https://github.com/ayyb1988) | | 06/21 | 06/29 | 07/10 | 07/20 | 08/00 | 08/15
[retrofit](https://github.com/square/retrofit) | [guoGavin](https://github.com/guoGavin) | [lightSky](https://github.com/lightSky) | Done | Done | 07/27 | 08/7 | 08/17 | 08/27
[RxJava](https://github.com/ReactiveX/RxJava) | [ChrisZou](https://github.com/ChrisZou) || 07/12 | 07/19 | 07/26 | 08/02 | 08/09 | 08/16
[FlyRefresh](https://github.com/race604/FlyRefresh)| [skyacer](https://github.com/skyacer) || 07/26 | 08/02 | 08/09 | 08/16 | 08/23 | 08/30
[FlyRefresh](https://github.com/race604/FlyRefresh)| [skyacer](https://github.com/skyacer) || Done | 08/02 | 08/09 | 08/16 | 08/23 | 08/30
[Glide](https://github.com/bumptech/glide)| [lightSky](https://github.com/lightSky) || 08/06 | 08/08 | 08/19 | 08/26 | 09/03 | 09/07


Expand Down