关闭

MVP项目研究——我的Android项目的开始(一些配置的管理)

标签: mvp架构
64人阅读 评论(0) 收藏 举报
分类:

回顾过去,自己也算是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"/>
0
0

猜你在找
【直播】机器学习&深度学习系统实战(唐宇迪)
【直播】Kaggle 神器:XGBoost 从基础到实战(冒教授)
【直播回放】深度学习基础与TensorFlow实践(王琛)
【直播】计算机视觉原理及实战(屈教授)
【直播】机器学习之凸优化(马博士)
【直播】机器学习之矩阵(黄博士)
【直播】机器学习之概率与统计推断(冒教授)
【直播】机器学习之数学基础
【直播】TensorFlow实战进阶(智亮)
【直播】深度学习30天系统实训(唐宇迪)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6477次
    • 积分:845
    • 等级:
    • 排名:千里之外
    • 原创:81篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章存档