文章目录
  1. 1. 概述:
    1. 1.1. 阅读优秀的开源项目:NBAPlus
    2. 1.2. 一、应用启动分析:
    3. 1.3. AppService类:此类将常用的全局对象进行统一的封装管理,避免了Application的臃肿。
    4. 1.4. 二、基类的封装:
      1. 1.4.1. 1、BaseActivity
      2. 1.4.2. 2、BaseFragment
    5. 1.5. 三、MainActivity分析:
    6. 1.6. 四、网络请求分析:
    7. 1.7. 五、rxmethod包
      1. 1.7.1. 对数据的操作方法,发起网络请求,并回调EventBus
    8. 1.8. 六、数据的缓存使用greenDAO:
      1. 1.8.1. 详细用法:

概述:

阅读优秀的开源项目: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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static Subscription getTeams(String date) {

Subscription subscription = AppService.getNbaplus().getGames(date)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Games>() {
@Override
public void call(Games games) {//成功的回调
AppService.getBus().post(new GamesEvent(games, Constant.Result.SUCCESS));
}
}, new Action1<Throwable>() {//失败的回调
@Override
public void call(Throwable throwable) {
AppService.getBus().post(new GamesEvent(null, Constant.Result.FAIL));
}
});
return subscription;
}

六、数据的缓存使用greenDAO:

详细用法:

http://www.open-open.com/lib/view/open1438065400878.html

文章目录
  1. 1. 概述:
    1. 1.1. 阅读优秀的开源项目:NBAPlus
    2. 1.2. 一、应用启动分析:
    3. 1.3. AppService类:此类将常用的全局对象进行统一的封装管理,避免了Application的臃肿。
    4. 1.4. 二、基类的封装:
      1. 1.4.1. 1、BaseActivity
      2. 1.4.2. 2、BaseFragment
    5. 1.5. 三、MainActivity分析:
    6. 1.6. 四、网络请求分析:
    7. 1.7. 五、rxmethod包
      1. 1.7.1. 对数据的操作方法,发起网络请求,并回调EventBus
    8. 1.8. 六、数据的缓存使用greenDAO:
      1. 1.8.1. 详细用法: