作者:hwj3747
转载请注明
目录
- (1)配置篇
- (2)Lambda表达式
- (3)icepick篇
- (4)butterknife篇
- (5)MVP篇
- (6)Retrofit篇
- (7)Dagger2篇
- (8)RxAndroid/RxJava篇
说明
Android MVP+Retrofit+dagger2+RxAndroid这是目前比较流行的一套Android开发框架,我所使用的这个框架还结合了,lambda,icepick,以及butterknife下面简要介绍一下这些东西。
MVP模式:主要实在传统的MVC模式上新增了一层presenter,作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
Retrofit:是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的。
dagger2:简而言之就是一套Android上使用的依赖注入框架。
RxAndroid:RxJava的Android版,是一套实现异步的框架。
lambd表达式:用来代替匿名的内部类,让代码变的简单、而且可读、最重要的是代码量也随之减少很多。
icepick:对activity以及fragment 的状态的保存和恢复。
butterknife:这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,并且使用Android Butterknife Zelezny插件可以快速生成XML文件的各种控件对应java代码。
下面是对整个框架的配置
首先在工程目录下的build.gradle文件下配置lambda与dagger2的classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'me.tatarka:gradle-retrolambda:3.2.2'//lambda配置
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'//dagger2远程工具地址配置 }
}
然后配置icepick的仓库位置,其中https://jitpack.io 是个人的依赖库仓库位置
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://clojars.org/repo/" }//icepick配置
maven { url "https://jitpack.io" }
}
}
在app目录下的build.gradle下,在顶部配置lambda,以及dagger2配置。
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'//lambda
apply plugin: 'com.neenbedankt.android-apt'//dagger2
然后是lambda java8的配置,电脑的java开发环境必须是java JDK8.0版本以上。
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 }//lambda
}
最后是对所有使用到的框架的依赖引入
dependencies {
apt 'com.google.dagger:dagger-compiler:2.0'//使用apt build dagger-compiler编译器
provided 'org.glassfish:javax.annotation:10.0-b28'//必须配置,dagger缺少 javax.annotation包
compile 'com.google.dagger:dagger:2.0'//dagger2配置,依赖注入,实现单例模式,解耦MVP架构
compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'//rxandroid 配置,实现异步操作
// compile 'com.squareup.retrofit:retrofit:1.9.0'//retrofit配置,链接网络的库
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
compile 'frankiesardo:icepick:3.1.0'
apt 'frankiesardo:icepick-processor:3.1.0'//icepick配置,用来保存和恢复状态
compile 'com.jakewharton:butterknife:6.1.0'//butterknife配置,使用Android Butterknife Zelezny插件,简化findViewById()和setonclicktListener()}
github地址:这里
网友评论