Skip to content

Update #61

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 3 commits into from Mar 14, 2016
Merged
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
27 changes: 16 additions & 11 deletions author.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
:--|:--|:-- |:-- |:-- |:--
Grumoon | [Ultra-Pull-To-Refresh 分析](http://a.codekk.com/detail/Android/Grumoon/android-Ultra-Pull-To-Refresh%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Grumoon](https://github.com/grumoon) |[GrumoonX](http://weibo.com/u/2020325351) | [Grumoon](http://blog.csdn.net/grumoon) | [website](http://www.zhangxuzhou.cn),[Grumoon@Google Plus](https://plus.google.com/u/0/100937234485461240778/posts)
FFish | [DynamicLoadApk](http://a.codekk.com/detail/Android/FFish/DynamicLoadApk%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [FFish](https://github.com/FFish) | [食用淡水鱼](http://weibo.com/ynz1991) | [淡水鱼馆](http://ffish.top) | [FFish@SegmentFault](http://segmentfault.com/u/shiyongdanshuiyu)
Rogary | [CalendarListView 源码解析](http://a.codekk.com/detail/Android/undefined/CalendarListView%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Rogary](https://github.com/Rogary) | [佳________威](http://weibo.com/u/2332964512) | 无 | 无
Rogary | [CalendarListView 源码解析](http://a.codekk.com/detail/Android/Rogary/CalendarListView%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Rogary](https://github.com/Rogary) | [佳________威](http://weibo.com/u/2332964512) | 无 | 无
hongyangAndroid | [BaseAdapterHelper 源码解析](http://a.codekk.com/detail/Android/hongyangAndroid/BaseAdapterHelper%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90) | [hongyangAndroid](https://github.com/hongyangAndroid) | [鸿洋_](http://weibo.com/3165018720) | [鸿洋_](http://blog.csdn.net/lmj623565791) | [慕课网教程](http://www.imooc.com/space/teacher/id/320852)
Huxian99 | [SlidingMenu 分析](http://a.codekk.com/detail/Android/huxian99/SlidingMenu%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Huxian99](https://github.com/huxian99) |[Huxian999](http://weibo.com/1738682942) | [Huxian99](http://huxian99.github.io/) | [Huxian99@Google Plus](https://plus.google.com/115023889387276644931/posts)
Mr.Simple | [NineOldAnimations 分析](http://a.codekk.com/detail/Android/Mr.Simple/NineOldAnimations%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90)、[公共技术点之 Java 反射](http://a.codekk.com/detail/Android/Mr.Simple/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E5%8F%8D%E5%B0%84%20Reflection) | [Mr.Simple](https://github.com/bboyfeiyu) |[Mr.Simple](http://weibo.com/mrsimp1e) | [Mr.Simple](http://blog.csdn.net/bboyfeiyu) | [开发技术前线](http://www.devtf.cn)
Expand All @@ -15,16 +15,21 @@ Mr.Simple | [NineOldAnimations 分析](http://a.codekk.com/detail/Android/Mr.Sim

成员 | 分析文档 | GitHub | 微博 | 博客 | 其他
:--|:--|:-- |:-- |:-- |:--
Trinea | [EventBus 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/event-bus) | [Trinea](https://github.com/Trinea) | [Trinea](http://weibo.com/trinea) | [trinea.cn](http://www.trinea.cn) | [Trinea@Google Plus](https://plus.google.com/u/0/+Trineatrinea)
lightSky | [ViewPagerIndicator 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/view-pager-indicator) | [lightSky](https://github.com/lightSky) | [light_sky](http://weibo.com/lightSkyStreet) | [lightskystreet](http://www.lightskystreet.com) | [skylightstreet@Google Plus](https://plus.google.com/+skylightstreet)
Grumoon | [Volley 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/volley) | [Grumoon](https://github.com/grumoon) |[GrumoonX](http://weibo.com/u/2020325351) | [Grumoon](http://blog.csdn.net/grumoon) | [website](http://www.zhangxuzhou.cn),[Grumoon@Google Plus](https://plus.google.com/u/0/100937234485461240778/posts)
扔物线 | [Dagger 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/dagger) | [rengwuxian](https://github.com/rengwuxian) | [扔物线110](http://weibo.com/rengwuxian) | [rengwuxian.com](http://www.rengwuxian.com) | [rengwuxian@Google Plus](https://plus.google.com/u/0/108850809784645972390/posts)
AaronPlay | [HoloGraphLibrary 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/holographlibrary) | [AaronPlay](https://github.com/AaronPlay) | [安恒_觅 ](http://weibo.com/2371169647) | [aaronplay.me](http://aaronplay.me) |[Wu Aaron@Google Plus](https://plus.google.com/u/0/116898242506126477594)
dkmeteor | [PhotoView 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/photoview) | [dkmeteor](https://github.com/dkmeteor) | [DK_名字为何非要4个字母以上](http://weibo.com/u/2699012760)| [dk-exp.com](http://dk-exp.com/) | [Ding Ke@Google Plus](https://plus.google.com/u/0/107480528800824789567)
cpacm | [CFAMenu 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/circular-floating-action-menu) | [cpacm](https://github.com/cpacm) | [cp_acm](http://weibo.com/u/3053253821) | [cpacm blog](http://home.cnblogs.com/u/cpacm/) | [cpacm@Google plus](https://plus.google.com/u/1/107131876005913932010/posts)
Caij | [xUtils 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/xutils) | [Caij](https://github.com/Caij) | [World_Caij](http://weibo.com/2300562462/profile?topnav=1&wvr=6) | [caij](http://caij.github.io/) | [Caij@Google Plus](https://plus.google.com/u/0/)
Huxian99 | [Universal Image Loader 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/universal-image-loader) | [Huxian99](https://github.com/huxian99) |[Huxian999](http://weibo.com/1738682942) | [Huxian99](http://huxian99.github.io/) | [Huxian99@Google Plus](https://plus.google.com/115023889387276644931/posts)
爱早起 | [Android Lock Pattern 分析](https://github.com/android-cn/android-open-project-analysis/tree/master/android-lockpattern) | [爱早起](https://github.com/liang7) |[liAng爱早起](http://weibo.com/unliang) | [hiliang.cn](http://www.hiliang.cn/)
Trinea | [EventBus 分析](http://a.codekk.com/detail/Android/Trinea/EventBus%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Trinea](https://github.com/Trinea) | [Trinea](http://weibo.com/trinea) | [trinea.cn](http://www.trinea.cn) | [Trinea@Google Plus](https://plus.google.com/u/0/+Trineatrinea)
lightSky | [ViewPagerIndicator 分析](http://a.codekk.com/detail/Android/lightSky/ViewPagerindicator%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [lightSky](https://github.com/lightSky) | [light_sky](http://weibo.com/lightSkyStreet) | [lightskystreet](http://www.lightskystreet.com) | [skylightstreet@Google Plus](https://plus.google.com/+skylightstreet)
Grumoon | [Volley 分析](http://a.codekk.com/detail/Android/grumoon/Volley%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Grumoon](https://github.com/grumoon) |[GrumoonX](http://weibo.com/u/2020325351) | [Grumoon](http://blog.csdn.net/grumoon) | [website](http://www.zhangxuzhou.cn),[Grumoon@Google Plus](https://plus.google.com/u/0/100937234485461240778/posts)
扔物线 | [Dagger 分析](http://a.codekk.com/detail/Android/%E6%89%94%E7%89%A9%E7%BA%BF/Dagger%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [rengwuxian](https://github.com/rengwuxian) | [扔物线110](http://weibo.com/rengwuxian) | [rengwuxian.com](http://www.rengwuxian.com) | [rengwuxian@Google Plus](https://plus.google.com/u/0/108850809784645972390/posts)
AaronPlay | [HoloGraphLibrary 分析](http://a.codekk.com/detail/Android/AaronPlay/HoloGraphLibrary%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [AaronPlay](https://github.com/AaronPlay) | [安恒_觅 ](http://weibo.com/2371169647) | [aaronplay.me](http://aaronplay.me) |[Wu Aaron@Google Plus](https://plus.google.com/u/0/116898242506126477594)
dkmeteor | [PhotoView 分析](http://a.codekk.com/detail/Android/dkmeteor/PhotoView%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [dkmeteor](https://github.com/dkmeteor) | [DK_名字为何非要4个字母以上](http://weibo.com/u/2699012760)| [dk-exp.com](http://dk-exp.com/) | [Ding Ke@Google Plus](https://plus.google.com/u/0/107480528800824789567)
cpacm | [CFAMenu 分析](http://a.codekk.com/detail/Android/cpacm/CircularFloatingActionMenu%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [cpacm](https://github.com/cpacm) | [cp_acm](http://weibo.com/u/3053253821) | [cpacm blog](http://home.cnblogs.com/u/cpacm/) | [cpacm@Google plus](https://plus.google.com/u/1/107131876005913932010/posts)
Caij | [xUtils 分析](http://a.codekk.com/detail/Android/Caij/xUtils%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [Caij](https://github.com/Caij) | [World_Caij](http://weibo.com/2300562462/profile?topnav=1&wvr=6) | [caij](http://caij.github.io/) | [Caij@Google Plus](https://plus.google.com/u/0/)
Huxian99 | [Universal Image Loader 分析](http://a.codekk.com/detail/Android/huxian99/Android%20Universal%20Image%20Loader%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90) | [Huxian99](https://github.com/huxian99) |[Huxian999](http://weibo.com/1738682942) | [Huxian99](http://huxian99.github.io/) | [Huxian99@Google Plus](https://plus.google.com/115023889387276644931/posts)
爱早起 | [Android Lock Pattern 分析](http://a.codekk.com/detail/Android/%E7%88%B1%E6%97%A9%E8%B5%B7/Android%20Lock%20Pattern%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) | [爱早起](https://github.com/liang7) |[liAng爱早起](http://weibo.com/unliang) | [hiliang.cn](http://www.hiliang.cn/)
Caij | [Java 动态代理](http://a.codekk.com/detail/Android/Caij/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86) | [Caij](https://github.com/Caij) | [World_Caij](http://weibo.com/2300562462/profile?topnav=1&wvr=6) | [caij](http://caij.github.io/) | [Caij@Google Plus](https://plus.google.com/u/0/)
Trinea | [Java 注解](http://a.codekk.com/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) | [Trinea](http://weibo.com/trinea) | [trinea.cn](http://www.trinea.cn) | [Trinea@Google Plus](https://plus.google.com/u/0/+Trineatrinea)
Trinea | [View 事件传递](http://a.codekk.com/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) | [Trinea](http://weibo.com/trinea) | [trinea.cn](http://www.trinea.cn) | [Trinea@Google Plus](https://plus.google.com/u/0/+Trineatrinea)
扔物线 | [依赖注入](http://a.codekk.com/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) | [rengwuxian](https://github.com/rengwuxian) | [扔物线110](http://weibo.com/rengwuxian) | [rengwuxian.com](http://www.rengwuxian.com) | [rengwuxian@Google Plus](https://plus.google.com/u/0/108850809784645972390/posts)
lightSky | [View 绘制流程](http://a.codekk.com/detail/Android/lightSky/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20View%20%E7%BB%98%E5%88%B6%E6%B5%81%E7%A8%8B) | [lightSky](https://github.com/lightSky) | [light_sky](http://weibo.com/lightSkyStreet) | [lightskystreet](http://www.lightskystreet.com) | [skylightstreet@Google Plus](https://plus.google.com/+skylightstreet)

#### 第三期成员
准备中:muscle::joy::dancers: 具体见:[Schedule](./zen/schedule.md)
2 changes: 1 addition & 1 deletion tech/dependency-injection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ public class Human {

上面这段代码看起来很神奇:只是增加了一个注解,Father 对象就能自动注入了?这个注入过程是怎么完成的?

实质上,如果你只是写了一个 @Inject 注解,Father 并不会被自动注入。你还需要使用一个依赖注入框架,并进行简单的配置。现在 Java 语言中较流行的依赖注入框架有 [Google Guice](https://github.com/google/guice)、[Spring](http://projects.spring.io/spring-framework/) 等,而在 Android 上比较流行的有 [RoboGuice](https://github.com/roboguice/roboguice)、[Dagger](http://square.github.io/dagger/) 等。其中 Dagger 是我现在正在项目中使用的。如果感兴趣,你可以到 [Dagger 实现原理解析](https://github.com/android-cn/android-open-project-analysis/tree/master/dagger) 了解更多依赖注入和 Dagger 实现原理相关信息。
实质上,如果你只是写了一个 @Inject 注解,Father 并不会被自动注入。你还需要使用一个依赖注入框架,并进行简单的配置。现在 Java 语言中较流行的依赖注入框架有 [Google Guice](https://github.com/google/guice)、[Spring](http://projects.spring.io/spring-framework/) 等,而在 Android 上比较流行的有 [RoboGuice](https://github.com/roboguice/roboguice)、[Dagger](http://square.github.io/dagger/) 等。其中 Dagger 是我现在正在项目中使用的。如果感兴趣,你可以到 [Dagger 实现原理解析](http://a.codekk.com/detail/Android/%E6%89%94%E7%89%A9%E7%BA%BF/Dagger%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) 了解更多依赖注入和 Dagger 实现原理相关信息。
2 changes: 1 addition & 1 deletion tech/proxy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ invoke(Object proxy, Method method, Object[] args)

#### 4.2 基于 REST 的 Android 端网络请求框架 Retrofit
作用:简化网络请求操作。
一般情况下每个网络请求我们都需要调用一次`HttpURLConnection`或者`HttpClient`进行请求,或者像 [Volley](https://github.com/android-cn/android-open-project-analysis/tree/master/volley "Volley 源码解析") 一样丢进等待队列中,Retrofit 极大程度简化了这些操作,示例代码如下:
一般情况下每个网络请求我们都需要调用一次`HttpURLConnection`或者`HttpClient`进行请求,或者像 [Volley](http://a.codekk.com/detail/Android/grumoon/Volley%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90 "Volley 源码解析") 一样丢进等待队列中,Retrofit 极大程度简化了这些操作,示例代码如下:
```java
public interface GitHubService {
@GET("/users/{user}/repos")
Expand Down
2 changes: 1 addition & 1 deletion tech/viewdrawflow/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ MeasureSpecs
该方法就是我们自定义视图中实现测量逻辑的方法,该方法的参数是父视图对子视图的 width 和 height 的测量要求。在我们自身的自定义视图中,要做的就是根据该 widthMeasureSpec 和 heightMeasureSpec 计算视图的 width 和 height,不同的模式处理方式不同。

- setMeasuredDimension()
测量阶段终极方法,在 `onMeasure(int widthMeasureSpec, int heightMeasureSpec)` 方法中调用,将计算得到的尺寸,传递给该方法,测量阶段即结束。该方法也是必须要调用的方法,否则会报异常。在我们在自定义视图的时候,不需要关心系统复杂的 Measure 过程的,只需调用`setMeasuredDimension()`设置根据 MeasureSpec 计算得到的尺寸即可,你可以参考 [ViewPagerIndicator](https://github.com/android-cn/android-open-project-analysis/tree/master/view-pager-indicator) 的 onMeasure 方法。
测量阶段终极方法,在 `onMeasure(int widthMeasureSpec, int heightMeasureSpec)` 方法中调用,将计算得到的尺寸,传递给该方法,测量阶段即结束。该方法也是必须要调用的方法,否则会报异常。在我们在自定义视图的时候,不需要关心系统复杂的 Measure 过程的,只需调用`setMeasuredDimension()`设置根据 MeasureSpec 计算得到的尺寸即可,你可以参考 [ViewPagerIndicator](http://a.codekk.com/detail/Android/lightSky/ViewPagerindicator%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90) 的 onMeasure 方法。

下面我们取 ViewGroup 的 `measureChildren(int widthMeasureSpec, int heightMeasureSpec)` 方法对复合 View 的 Measure 流程做一个分析:
MeasureChild 的方法调用流程图:
Expand Down
1 change: 0 additions & 1 deletion tool-lib/compatibility/README.md
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
/Users/lightsky/workspace/MyGit/android-open-project-analysis/tool-lib/compatibility/nineoldanimations/README.md
2 changes: 1 addition & 1 deletion tool-lib/plugin/dynamic-load-apk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ onCreate 函数,会在代理 Activity onCreate 函数中被调用,流程图

主要作用是根据是否被代理,确定一些函数直接走父类逻辑还是代理 Activity 或是空逻辑。

`DLBasePluginActivity`继承自`Activity`,同时实现了`DLPlugin`接口。这两个类大同小异,所以这里只分析`DLProxyActivity`。
`DLBasePluginActivity`继承自`Activity`,同时实现了`DLPlugin`接口。这两个类大同小异,所以这里只分析`DLBasePluginActivity`。
主要变量:
```java
protected Activity mProxyActivity;
Expand Down
2 changes: 1 addition & 1 deletion view/other/pager-sliding-tab-strip/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ for (int i = 0; i < tabCount; i++) {

###6.参考文献

[ViewPagerindicator 源码解析](https://github.com/android-cn/android-open-project-analysis/tree/master/view-pager-indicator)
[ViewPagerindicator 源码解析](http://a.codekk.com/detail/Android/lightSky/ViewPagerindicator%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90)

####View 的绘制:
1. [How Android Draws Views](http://developer.android.com/guide/topics/ui/how-android-draws.html)
Expand Down