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"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,150评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,353评论 6 342
  • 这一章主要针对项目中可以用到的一些实用功能来介绍Android Gradle,比如如何隐藏我们的证书文件,降低风险...
    acc8226阅读 8,014评论 3 25
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,315评论 25 708
  • 濯堂 人们在接触和交流中不仅仅可以学到知识,还能引发思考,后者相对更有意义。教学相长,老师在授业解惑的同时学...
    濯堂阅读 902评论 0 2

友情链接更多精彩内容