背景
现如今 Android 项目都是用 build.grale 来配置的,项目中一般包含多个 module,这样就会同时存在多个 build.gradle 文件,这时候如果要升级整个项目的 api 版本就需要手动改,会很麻烦,特别是module特别多的时候。下面就是解决这个问题的一些方法。
当然每个 module 可以有自己的支持库的版本和 compileSdk 等等版本号,这篇文章只是针对想统一整个项目构建工具、编译sdk、支持库版本号对应的一些方法。
配置支持库和编译相关的版本号
在我的项目中经常会在 app module 和其他 module 中存在很多支持库,比如com.android.support:appcompat-v7
com.android.support:support-v4
包等支持库,而他们的版本号经常会更新,一般新的版本会修复一些 bug 并带来一些新的特性和提升性能,所以建议更新到最新版。
-
把所有支持库配置存在一个文件中
在项目根目录下创建
gradleScript
文件夹并在此文件夹下创建dependencies.gradle
文件,如下123456root|-app|-module1|-module2|-gradleScript|-dependencies.gradledependencies.gradle
文件内容如下(可以依据自己的项目自定义)123456789101112131415161718192021222324ext {// versionsupportLibrary = '25.2.0'// multiDexmultiDex = '1.0.1'compileSdk = 25buildTools = '25.0.2'supportDependencies = [appCompat : "com.android.support:appcompat-v7:${supportLibrary}",appSupportV4 : "com.android.support:support-v4:${supportLibrary}",recyclerView : "com.android.support:recyclerview-v7:${supportLibrary}",cardView : "com.android.support:cardview-v7:${supportLibrary}",supportAnnotation: "com.android.support:support-annotations:${supportLibrary}",appCompatV4 : "com.android.support:support-compat:${supportLibrary}",v4CoreUtils : "com.android.support:support-core-utils:${supportLibrary}",v4CoreUi : "com.android.support:support-core-ui:${supportLibrary}",v4Fragment : "com.android.support:support-fragment:${supportLibrary}",multiDex : "com.android.support:multidex:${multiDex}",design : "com.android.support:design:${supportLibrary}"]}!注意:
"com.android.support:xxx"
用的是双引号
-
配置根目录的
build.gradle
文件文件内容如下
1234567allprojects {repositories {jcenter()}}apply from: 'gradleScript/dependencies.gradle' -
配置 module 下的
build.gradle
文件内容如下
1234567891011121314android {compileSdkVersion compileSdkbuildToolsVersion buildTools}dependencies {compile supportDependencies.appCompatcompile supportDependencies.recyclerViewcompile supportDependencies.cardViewcompile supportDependencies.appSupportV4compile supportDependencies.multiDex}完成上面的配置就可以直接使用了,以后只要改
dependencies.gradle
里面的版本号就可以改变整个项目的依赖版本号
管理签名文件
Android 打正式包时需要签名文件,但是签名文件是私密的一般不会用版本控制工具来管理,所以就需要一个单独的文件来存放签名相关的信息,我使用的是官方培训课程中的方案。
- 在项目的根目录下创建一个名称为 keystore.properties 的文件。此文件应当包含你的签名文件信息,如下:
|
|
- 在 app module 的 build.gradle 文件中,于 android {} 块的前面添加用于加载 keystore.properties 文件的代码,如下:
|
|
- 使用
|
|
参考
How to manage the support libraries in a multi-module projects
Secure your private key