Gradle之gradle.properties

注意:本篇文章是本人阅读相关文章的总结,方便以后查阅,所有内容非原创,侵权删。

本篇文章来自的内容会在相应的知识中给出链接

目录

  1. gradle.properties介绍
  2. BuildConfig+gradle.properties配合使用
  3. 使用Gradle打包时将敏感信息配置在gradle.properties中
  4. resValue+gradle.properties配合使用

1. gradle.properties介绍

AS项目的根目录下有一个gradle.properties文件,专门用来配置全局键值对数据的。可用于存放敏感数据。
将它从git版本控制中排除,这样gradle.properties文件只能保留在本地,从而不用担心keystore文件等敏感信息泄漏。

2. BuildConfig+gradle.properties配合使用

可参考BuildConfig的使用

我们可以将敏感信息存放在BuildConfig文件,同时通过将敏感信息存放在工程中的gradle.properties中,可以避免将其上传到版本控制系统(svn或者git上),从而将敏感信息控制在少数人手里,而不是暴露给所有svn或者git权限的人
但是安全级别也是很低的,我们可以对生成的APK反编译,查看BuildConfig.class文件,还是可以看到API Key的取值

第一步:在app/build.gradle设置BuildConfig

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //buildConfigField用于给BuildConfig文件添加一个字段
            buildConfigField("String","KEY","\"${AppKey}\"")
        }
        debug{
            buildConfigField("String","KEY","\"${AppKey}\"")
        }
    }
    ...
}

第二步:""${AppKey}""取值定义在gradle.properties文件中。

AppKey=123456

第三步:使用

Log.d("xl",BuildConfig.KEY);

3. 使用Gradle打包时将敏感信息配置在gradle.properties中

可参考使用Gradle打包
1.在gradle.properties中存放敏感数据

KEY_PATH=/Users/apple/Desktop/androddemo/haha.jks
KEY_PASS=123456
ALIAS_NAME=key
ALIAS_PASS=123456

2.在build.gradle中读取数据
编辑app/build.gradle

android {
  ...
  signingConfigs{
      config{ //配置keystore文件的各种信息
            storeFile file(KEY_PATH)
            storePassword KEY_PASS
            keyAlias ALIAS_NAME
            keyPassword ALIAS_PASS
      }
  }
  ...
}

4. resValue+gradle.properties配合使用

参考Gradle之resValue自定义资源

第一步:在app/build.gradle设置resValue

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            resValue("string","app_token","${TOKEN}")
        }
        debug{
            resValue("string","app_token","${TOKEN}")
        }
    ...
}

第二步:在gradle.properties中设置值

TOKEN=token123

第三步:使用

//java代码中使用
Log.d("xl",getResources().getString(R.string.app_token));
//xml文件中使用
android:text="@string/app_token"

你可能感兴趣的:(Gradle之gradle.properties)