NBAPlus-Analysis
概述:
阅读优秀的开源项目:NBAPlus
一、应用启动分析:
1、初始化LeakCanary进行内存泄露检测
2、AppService类的初始化
AppService类:此类将常用的全局对象进行统一的封装管理,避免了Application的臃肿。
1、常用全局对象的初始化
2、Subscription的管理,避免内存泄露(CompositeSubscription)
3、初始化了一个后台线程对数据库操作对象和API请求对象进行初始化(为了启动效率问题吗?)
二、基类的封装:
1、BaseActivity
- ButterKnife的绑定
- EventBus的注册
- CompositeSubscription的添加
- onDestory方法中反注册与remove
2、BaseFragment
- ButterKnife的绑定
- EventBus的注册及反注册
三、MainActivity分析:
- 1、进行Drawer的初始化
- 2、EventBus的onEventMainThread()方法
- 3、默认初始化“新闻”Fragment
四、网络请求分析:
- 0、声明NbaplusAPI和NewsDetileAPI请求接口
- 1、NbaplusFactory生产NbaplusAPI和NewsDetileAPI两个接口对象
- 2、以上两个对象在NbaplusClient中通过Retrofit构建。
五、rxmethod包
对数据的操作方法,发起网络请求,并回调EventBus
1 | public static Subscription getTeams(String date) { |
六、数据的缓存使用greenDAO:
详细用法:
http://www.open-open.com/lib/view/open1438065400878.html