Android 开发版本统一

一、概述

  对于 Android 开发版本的统一涉及到的东西就是 Gradle 中的全局设置,我们通过配置 gradle 也就是编写 Groovy 代码将开发中的版本号设置为全局参数。这样就能够在 module 或者 library 中访问同一份版本号,从而实现统一。Gradle 中的全局设置方式有以下几种:

  • 工程 build.gradle
  • ext方法
  • gradle.properties文件
  • -p参数

二、全局设置

1. 工程 build.gradle

allprojects {
       apply plugin: ‘com.android.application‘
       android {
           compileSdkVersion 22
           buildToolsVersion "22.0.1"
       }
 }

  这只会在你的所有模块都是Android app应用的时候有效。你需要添加Android 插件才能访问Android的tasks。

2. ext 方法

ext {
       compileSdkVersion = 22
       buildToolsVersion = "22.0.1"
}  

  在全局的gradle文件中定义一些属性,然后再在子模块中就可以使用这些属性。

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

3. gradle.properties 文件

COMPILE_SDK_VERSION = 22 BUILD_TOOLS_VERSION = "22.0.1"

  在该文件中定义后,可以在子模块中直接使用:


android {    compileSdkVersion COMPILE_SDK_VERSION    buildToolsVersion BUILD_TOOLS_VERSION}

4. -p参数

  这种方式是命令行的方式,比如我们在 gradle 中定义这么一个任务:

 task printProperties << {
     if (project.hasProperty(‘cmd‘)) {
          println cmd        // Command line property
     }
}

  然后我们通过命令行设置参数:

$ gradlew printProperties -Pcmd=‘Hello from the command line‘

  执行任务后输出:

Hello from the command line

三、版本统一

  进入主题,我们来看如何将我们同一份版本进行共享来实现统一。我们先创建一个放置版本号的 gradle 文件 version.gradle

  然后我们就通过 ext 方式定义:

ext.deps = [:]//空映射

def versions = [:]versions.support = "27.1.1"versions.constraint_layout = "1.0.2"versions.junit = "4.12"versions.test_runner = "1.0.2"versions.test_espresso = "3.0.2"versions.android_gradle_plugin = "3.1.2"

def deps = [:]

def support = [:]support.v7 = "com.android.support:appcompat-v7:$versions.support"deps.support = support

//viewdeps.constraint_layout = "com.android.support.constraint:constraint-layout:$versions.constraint_layout"deps.android_gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_plugin"

def test = [:]test.junit = "junit:junit:$versions.junit"test.runner = "com.android.support.test:runner:$versions.test_runner"test.test_espresso = "com.android.support.test.espresso:espresso-core:$versions.test_espresso"deps.test = test

ext.deps = deps

def build_version = [:]build_version.min_sdk = 15build_version.target_sdk = 27build_version.build_tools = "27.1.1"ext.build_version = build_version
def addRepos(RepositoryHandler handler) {    handler.google()    handler.jcenter()    handler.mavenCentral()    //Add the JitPack repository    handler.maven { url "https://jitpack.io" }    handler.maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/‘}}ext.addRepos = this.&addRepos

  上面这就定义好了我们的版本,书写方式就是 Groovy 代码。下面就是我们要将 version.gradle 文件应用到项目来:

  • apply from:表示引用其他的配置文件
// 项目 build.gradlebuildscript {
    apply from : "version.gradle"
}

  Sync Project 后,我们就可以使用了,来看一下在子模块中的使用:

apply plugin: ‘com.android.application‘

android {    compileSdkVersion build_version.target_sdk    defaultConfig {        applicationId "com.sl.gradledemo"        minSdkVersion build_version.min_sdk        targetSdkVersion build_version.target_sdk        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }

signingConfigs {        release {            storeFile file(RELEASE_STORE_FILE)            storePassword RELEASE_STORE_PASSWORD            keyAlias RELEASE_KEY_ALIAS            keyPassword RELEASE_KEY_PASSWORD        }    }

buildTypes {        release {            minifyEnabled false            signingConfig signingConfigs.release            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            buildConfigField("String", "API_URL", "\"https://www.baidu.com\"")            buildConfigField("boolean", "LOG_STATE", "false")            resValue("string","show_name","release_app")            resValue("string","app_name","release_app")        }        debug {            buildConfigField("String", "API_URL", "\"http://192.168.142.30\"")            buildConfigField("boolean", "LOG_STATE", "true")            resValue("string","show_name","debug_app")            resValue("string","app_name","dubug_app")        }    }}

dependencies {    implementation fileTree(dir: ‘libs‘, include: [‘*.jar‘])    implementation deps.support.v7    implementation deps.constraint_layout    testImplementation deps.test.junit    androidTestImplementation deps.test.runner    androidTestImplementation deps.test.test_espresso}

  这样我们所有子模块就可以和上面一样配置版本,只有 version.gradle 中定义了版本。这样我们需要更新版本的时候是不是方便了许多。

原文地址:https://www.cnblogs.com/aimqqroad-13/p/9019865.html

时间: 2024-11-05 23:30:44

Android 开发版本统一的相关文章

Android开发日志统一管理

在开发中,我们通常要对日志的输出做统一管理,下面就为大家推荐一个日志输出类,在开发阶段只需将DEBUG常量设为true,生产环境将DEBUG设为false即可控制日志的输出.啥都不说了,需要的朋友直接带走. package com.android.util; /** * 日志输出统一管理 * * @author 祁连山 * @date 2015-04-27 * @version 1.0 * */ public class Log { private static final String TAG

旗鱼移动Android开发规范

撰写:     旗鱼移动Android开发组 旗鱼移动科技有限公司所属,未经允许不得私自传播 第1版 2016年 5 月 3 日 目录 一.Android开发框架 二.命名规范 2.1 包(packages)命名规范 2.2 类(classes)命名规范 2.3 方法(methods) 2.4 变量(variables) 2.5 常量(Constants) 2.6 资源文件(图片drawable文件夹下) 2.7 资源布局文件(XML文件(layout布局文件)) 2.8 资源布局文件(layo

android开发-01-搭建环境

一.下载开发工具: 首先是在 http://developer.android.com/ 下载adt 开发工具 ,因为我的是32位的操作系统,我下载的是 adt-bundle-windows-x86-20140702 ,下载时请根据具体的操作系统下载开发工具,下载后解压备用,解压后有两个文件夹(eclipse和sdk),和一个sdk manager 可执行文件. 二.配置jdk: 然后去oracle官网下载 jdk 并配置环境变量,由于这不是android 环境搭建的重点,所以这里推荐一个配置文

MyEclipse 2014下搭建Android开发环境

1.下载android-sdk_r24.1.2-windows.zip,将其解压到一个文件夹中,例如: D:\Program Files\Java\android-sdk-windows 2.打开android-sdk-windows文件夹,运行SDK Manager.exe,选择Tools->Options,代理里面.IP填写:127.0.0.1 端口填写:8123 .(注意此处端口是8123,不是你之前配的本地端口1080). Android开发版本:Android 2.3.3和Androi

【转】Android开发学习总结(一)——搭建最新版本的Android开发环境

最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1,学习Android开发的第一步就是搭建Android的开发环境,博客园里面有不少人也写了关于如何搭建Android开发环境的文章,我也看了一下,但是感觉都比较旧了,对照着做不一定能够搭建成功,但是有些搭建步骤是还是可

Android开发学习总结(一)——搭建最新版本的Android开发环境【转】

最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1,学习Android开发的第一步就是搭建Android的开发环境,博客园里面有不少人也写了关于如何搭建Android开发环境的文章,我也看了一下,但是感觉都比较旧了,对照着做不一定能够搭建成功,但是有些搭建步骤是还是可

Android使用Gradle统一配置依赖版本

前言 目前的Android开发为了减少编译时间,开发效率,大多都采用模块化,组件化的开发方式. 采用这种方式不可避免的将会用到多个Library. 那么当我们协同开发时,如何处理每个人的版本统一呢? 我想大部分人应该都在使用Gradle来依赖管理,还没有使用的去面壁思过,Gradle使用起来简直太好用了,举个例子,我们想依赖个support-v4包,直接一句话: compile 'com.android.support:support-v4:25.1.0' 但是不知道你们发现一些问题没有?比如以

Android开发——web浏览器开发(1) 版本1.0

1,建立一个新的项目 webdemo 2,layout下activity_main设计界面(1)待优化 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

Android开发----------- 手电筒改进版本

在之前的基础上 在 res 文件夹下面: 添加一个 drawable/local_me.xml localme_cml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/on" /> <!-- press