AndroidStudio Gradle第三依赖统一管理的实现方法

AndroidStudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处。

一、AndroidStudio Gradle第三依赖统一管理
二、AndroidStudio Gradle基于友盟的多渠道打包
三、AndroidStudio安全管理签名文件keystroe和签名密码

这三篇文章很好的讲解了gradle的在打包和项目依赖管理的优点,大家可以参考一下,来提高自己的开发效率,增强签名文件的安全性。

在很多时候我们使用AndroidStudio开发安卓App的时候都会引入第三方的库,在一个project下我们可以有很多的module,每一个module就是一个app,但是每个module在进行第依赖第三方的时候,有可能依赖第三方的版本不同,记住每次使用的版本号也不太可能,所以统一管理第三方依赖就尤其的重要。

我们可以将依赖的第三方集中放入到一个gradle中,然后在需要使用的的module中将其引入即可,这样很方便的进行的了不同版本的管理了。

首先我们在project下新建一个叫“config.gradle”的文件(名字随便起),然后将要的所有第三方依赖库进行配置。

ext {

 android = [
   compileSdkVersion: 23,
   buildToolsVersion: "24.0.2",
   minSdkVersion : 15,
   targetSdkVersion : 23,
   versionCode  : 1,
   versionName  : "1.0"
 ]

 dependVersion = [
   support: "23.4.0"
 ]

 dependencies = [
   // ------------- Android -------------
   supportV4   : "com.android.support:support-v4:${dependVersion.support}",
   appcompatV7   : "com.android.support:appcompat-v7:${dependVersion.support}",
   design    : "com.android.support:design:${dependVersion.support}",
   junit    : "junit:junit:4.12",
   //------------- 测试 -------------
   espresso    : "com.android.support.test.espresso:espresso-core:2.2.2",

   // ------------- 网络请求 -------------
   okhttp    : 'com.squareup.okhttp3:okhttp:3.3.1',
   retrofit    : 'com.squareup.retrofit2:retrofit:2.1.0',

   // ------------- 图片加载 -------------
   fresco    : 'com.facebook.fresco:fresco:0.11.0',
   animatedGif   : 'com.facebook.fresco:animated-gif:0.12.0',
   picasso    : 'com.squareup.picasso:picasso:2.5.2',
   photoView   : 'com.github.chrisbanes:PhotoView:1.3.1',

   // ------------- RxAndroid -------------
   rxAndroid   : 'io.reactivex:rxandroid:1.2.1',
   rxJava    : 'io.reactivex:rxjava:1.2.2',

   // ------------- json解析 -------------
   fastJson    : 'com.alibaba:fastjson:1.1.54.android',
   gson     : 'com.google.code.gson:gson:2.8.0',

   // ------------- log打印工具 -------------
   logger    : 'com.orhanobut:logger:1.15',

   greendao    : 'org.greenrobot:greendao:3.2.0',

   // ------------- ButterKnife -------------
   butterknife   : 'com.jakewharton:butterknife:8.4.0',
   butterknifeCompiler : 'com.jakewharton:butterknife-compiler:8.4.0',

   // ------------- LeakCanary -------------
   leakcanaryAndroid : 'com.squareup.leakcanary:leakcanary-android:1.5',
   leakcanaryAndroidNoOp: 'com.squareup.leakcanary:leakcanary-android-no-op:1.5',
 ]
}

这样我们就配置好了所有的依赖库了,接下来就是要需要的依赖库引入到我们的module中了。
1、在我们的project中的build.gradle中添加

apply from: "config.gradle"

2、在我们的module的build.gradle中引入
这是引入之前的gradle

apply plugin: 'com.android.application'
android {
 compileSdkVersion 23
 buildToolsVersion "24.0.2"

 defaultConfig {
  applicationId "com.bandeng.bandeng"
  minSdkVersion 15
  targetSdkVersion 23
  versionCode 1
  versionName "1.0"
  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 }
 buildTypes {
  release {
   minifyEnabled false
   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  }
 }
}
dependencies {
	compile fileTree(dir: 'libs', include: ['*.jar'])
 androidTestCompile("com.android.support.test.espresso:espresso-core:2.2.2", {
  exclude group: 'com.android.support', module: 'support-annotations'
 })
 compile "com.android.support:appcompat-v7:23.4.0"
 testCompile "junit:junit:4.12"
 compile "com.android.support:design:23.4.0"
}

改造之后的gradle

apply plugin: 'com.android.application'

android {
 compileSdkVersion rootProject.ext.android.compileSdkVersion
 buildToolsVersion rootProject.ext.android.buildToolsVersion

 defaultConfig {
  applicationId "com.bandeng.bandeng"
  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"
 }
 buildTypes {
  release {
   minifyEnabled false
   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  }
 }
}
dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 androidTestCompile(rootProject.ext.dependencies.espresso, {
  exclude group: 'com.android.support', module: 'support-annotations'
 })
 compile rootProject.ext.dependencies.appcompatV7
 testCompile rootProject.ext.dependencies.junit
 compile rootProject.ext.dependencies.design
 // 网络请求
 compile rootProject.ext.dependencies.okhttp
 compile rootProject.ext.dependencies.retrofit
 // 图片加载
 compile rootProject.ext.dependencies.picasso
	// RxJava
 compile rootProject.ext.dependencies.rxAndroid
 compile rootProject.ext.dependencies.rxJava
 // json解析
 compile rootProject.ext.dependencies.gson
 // log打印工具
 compile rootProject.ext.dependencies.logger
}

这样是不是很方便的管理依赖的第三方了。

(0)

相关推荐

  • 为Android Studio编写自定义Gradle插件的教程

    Google已经建议Android开发全部转向Android Studio开发,Android Studio 是使用gradle编译.打包的,那么问题来了,gradle可是有一堆东西...,为了彻底了解gradle,今天就来学习下如何写自己的gradle插件(当然插件源码是使用groovy写的),先看如下代码目录: 如上图所示,plugin目录是插件源码目录,sample是用来测试插件的. 1.在目录plugin/src/main/groovy/com/micky/gradle/下新建插件类My

  • Android Studio使用教程(五):Gradle命令详解和导入第三方包

    Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看.编译并导入第三方开源项目的方法. Sublime + Terminal编译并查看源码 首先来给大家介绍一种简便并且个人最喜欢的一种办法.很多时候我们在GitHub上看到一个不错的开源项目,一般有两种需求,阅读源码和查看运行效果,如果是单纯的查看源码我更喜欢用一些轻量级编辑器,如vim,sublime等,vim不是很熟练,所以个人一种都习惯用sublime来查看

  • AndroidStudio Gradle基于友盟的多渠道打包方法

    AndroidStudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处. 一.AndroidStudio Gradle第三依赖统一管理 二.AndroidStudio Gradle基于友盟的多渠道打包 三.AndroidStudio安全管理签名文件keystroe和签名密码 好久没写博客了,今天写一篇关于多渠道打包的文章. 首先我们要下载友盟的jar包,然后照着文档配置即可.(这里就不过多讲解了,直接看我的代码) 文档地址:ht

  • 详解如何使用Android Studio开发Gradle插件

    缘由 首先说明一下为什么会有这篇文章.前段时间,插件化以及热修复的技术很热,Nuwa热修复的工具NuwaGradle,携程动态加载技术DynamicAPK,还有希望做最轻巧的插件化框架的Small.这三个App有一个共同的地方就是大量的使用了Gradle这个强大的构建工具,除了携程的框架外,另外两个都发布了独立的Gradle插件提供自动化构建插件,或者生成热修复的补丁.所以学习一下Gradle插件的编写还是一件十分有意义的事. 插件类型 Gradle的插件一般有这么几种: 一种是直接在项目中的g

  • Android Studio使用教程(四):Gradle基础

    其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴们直接跟我一步步来学习吧. 什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装Gradle 在Android Studio系列教程一–下载与安装中新建项目成功后会下载Grad

  • Android Studio使用教程(六):Gradle多渠道打包

    由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了. 友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: 复制代码 代码如下: <meta-data     android:name="UMENG_CHANNEL"     android:value="Channel_ID" /&g

  • AndroidStudio Gradle第三依赖统一管理的实现方法

    AndroidStudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处. 一.AndroidStudio Gradle第三依赖统一管理 二.AndroidStudio Gradle基于友盟的多渠道打包 三.AndroidStudio安全管理签名文件keystroe和签名密码 这三篇文章很好的讲解了gradle的在打包和项目依赖管理的优点,大家可以参考一下,来提高自己的开发效率,增强签名文件的安全性. 在很多时候我们使用Andro

  • Android Studio中统一管理版本号引用配置问题

    方式一: 在gradle.properties中写入: #测试环境 ENV_TEST=test #开发环境 ENV_DEV=dev #生产环境 ENV_ONLINE=online APPLICATION_ID=com.xxx.xxxx COMPILE_SDK_VERSION=26 TARGET_SDK_VERSION=26 MIN_SDK_VERSION=15 SUPPORT_V4_SUPPORT=com.android.support:support-v4:26.1.0 SUPPORT_ANN

  • 详解使用spring cloud config来统一管理配置文件

    当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置. 其架构原理图大致如下: 我们将配置文件放入git或者svn等服务中,通过一个Config Server服务来获取git中的配置数据,而我们需要使用的到配置文件的Config Client系统可以通过Config Server来获取对应的配置. 下面我们通过

  • Java使用Maven BOM统一管理版本号的实现

    一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号.如果这些 JAR 包单独发布,然后直接通过版本号引用相应的 JAR 包,不同版本的兼容性维护将变得十分麻烦.为了解决这个问题,可以让一个特殊的模块引用这些 JAR 包,将版本号定义在这个模块中,模块中的 JAR 都是兼容的,对外发布时只发布这个特殊模块.这个特殊模块就是 BOM(Bill Of Materials). 著名的 Spring Boot 就使用了这种方式来管理版本号,这个模块就是 spring-b

  • in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案

    国外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,国内也有淘宝的SeaJs,豆瓣的DoJs等,这些都是一些十分优秀的模块加载器.但是本文将会向大家介绍一个新的开源的轻量级"多线程"异步模块加载器In.js,In的开发借鉴了Do的一些思路和使用习惯,在此期间感谢@kejun同我的耐心交流,In.js压缩后只有4.77k,不仅小巧而且十分好用. 优点: 按需加载 无阻塞加载 依赖关系管理 颗粒化模块管理 如何使用? A.引入In.js 复制代码 代

  • SpringBoot使用WebJars统一管理静态资源的方法

    传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!! 学习目标 简单两步!快速学会使用WebJars统一管理前端依赖. 快速查阅 源码下载:SpringBoot Webjars Learning 使用教程 一.引入相关依赖 在 WebJars官网找到项目中需要的依赖,例如在项目中引入jQuery.BootStrap前端组件等.例如: 版本定位工具:webjars-locator-core 前端组件:jquery .bootstr

  • vue axios封装及API统一管理的方法

    在vue项目中,每次和后台交互的时候,经常用到的就是axios请求数据,它是基于promise的http库,可运行在浏览器端和node.js中.当项目越来越大的时候,接口的请求也会越来越多,怎么去管理这些接口?多人合作怎么处理?只有合理的规划,才能方便往后的维护以及修改, 安装 安装axios依赖包 cnpm install axios --save 引入 一般会我会在项目src中新建一个untils目录,其中base用于管理接口域名,http处理请求拦截和响应拦截,user.js负责接口文件(

  • Java使用JDK与Cglib动态代理技术统一管理日志记录

    Java中动态代理主要有JDK和CGLIB两种方式. 区别主要是jdk是代理接口,而cglib是代理类. 优点:这种方式已经解决我们前面所有日记需要的问题.非常的灵活.而且可以方便的在后期进行维护和升级. 缺点:当然使用jdk动态代理,必需要有接口.如果没有接口.就无法使用jdk动态代理技术. 计算接口 Calculate.java public interface Calculate { /** * 加法运算 * @param num1 参数 1 * @param num2 参数 2 * @r

  • 小程序开发实现access_token统一管理

    目录 TOKEN 定时刷新器 一.背景 二.access_token的内部设计 2.1 access_token的时效性 2.2 access_token 的逐渐失效性 三.access_token的统一管理 参考文档 TOKEN 定时刷新器 一.背景 对于使用过公众平台的API功能的开发者来说,access_token绝对不会陌生,它就像一个打开家门的钥匙,只要拿着它,就能使用公众平台绝大部分的API功能.因此,对于开发者而言,access_token的使用方式就变得尤其的重要.在日常API接

随机推荐