回顾过去,自己也算是Android开发中的一员了,但对于技术还是一知半解。我打算写一个项目,从基础框架的搭建,到项目各个功能的完善,当然期间也借鉴很多大神的博文,在此深表感谢。好吧,我们就开始吧。
一、引用第三方包管理文件config.gradle
大家都使用过第三方的东西,很多都要版本更新,当一个依赖更新之后,我们再去graidle里一个一个去改,很是麻烦。所以我们把这些东西统一提出来,单独建立一个文件,然后引用它,后期只需改动这个文件即可。
将文件复制进根目录,在Project的顶级build.gradle引用
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "config.gradle" //这里表示引用config.gradle文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }//这里要使用rxcahche指定的仓库
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
二、使用config.gradle
因为在顶级build.gradle中引用了它,所以在所有的build.gradle中都可以使用,也可以让他来管理项目的一些信息,这样多个module也可以直接使用同一个信息
defaultConfig {
applicationId "com.daqsoft.myandroid"
minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
versionCode rootProject.ext.android["versionCode"]
versionName rootProject.ext.android["versionName"]
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
三、配置Build.gradle
1、依赖Dagger2
如果你还不知道dagger2是什么请看文章,这里有我的详细解析。
本框架全部使用dagger2管理找到app的build.gradle加入如下代码:
apply plugin: 'com.android.application'
buildscript {
repositories {
jcenter()
}
}
dependencies {
annotationProcessor rootProject.ext.dependencies["butterknife-compiler"] //butterknife 插件,很多人因为没加这个而报错,切记!!!
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]//依赖插件, annotationProcessor 是 AndroidStudio 自带并用来替换 APT
provided rootProject.ext.dependencies["javax.annotation"]//dagger2必须依赖jsr250 annotation
}
对于重复引入依赖的问题参见这篇博文
2、使用Lambda
本框架默认使用Lambda,如果你不想使用Lambda请忽略以下配置。
- 在项目根目录下的Build.gradle中依赖Lambda插件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
//lambda
classpath 'me.tatarka:gradle-retrolambda:3.6.0'
}
}
- app的build.gradle中引入以下
apply plugin: 'me.tatarka.retrolambda'
android {
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
}
四、配置AndroidManifest
1、添加权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>