Gradle之gradle.properties

注意:本篇文章是本人閱讀相關(guān)文章的總結(jié),方便以后查閱,所有內(nèi)容非原創(chuàng),侵權(quán)刪。

本篇文章來自的內(nèi)容會在相應(yīng)的知識中給出鏈接

目錄

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

1. gradle.properties介紹

AS項目的根目錄下有一個gradle.properties文件,專門用來配置全局鍵值對數(shù)據(jù)的??捎糜诖娣琶舾袛?shù)據(jù)。
將它從git版本控制中排除,這樣gradle.properties文件只能保留在本地,從而不用擔心keystore文件等敏感信息泄漏。

2. BuildConfig+gradle.properties配合使用

可參考BuildConfig的使用

我們可以將敏感信息存放在BuildConfig文件,同時通過將敏感信息存放在工程中的gradle.properties中,可以避免將其上傳到版本控制系統(tǒng)(svn或者git上),從而將敏感信息控制在少數(shù)人手里,而不是暴露給所有svn或者git權(quán)限的人。
但是安全級別也是很低的,我們可以對生成的APK反編譯,查看BuildConfig.class文件,還是可以看到API Key的取值

第一步:在app/build.gradle設(shè)置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中存放敏感數(shù)據(jù)

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

2.在build.gradle中讀取數(shù)據(jù)
編輯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設(shè)置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中設(shè)置值

TOKEN=token123

第三步:使用

//java代碼中使用
Log.d("xl",getResources().getString(R.string.app_token));
//xml文件中使用
android:text="@string/app_token"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,648評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,281評論 6 342
  • 這一章主要針對項目中可以用到的一些實用功能來介紹Android Gradle,比如如何隱藏我們的證書文件,降低風險...
    acc8226閱讀 7,971評論 3 25
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,179評論 25 708
  • 濯堂 人們在接觸和交流中不僅僅可以學(xué)到知識,還能引發(fā)思考,后者相對更有意義。教學(xué)相長,老師在授業(yè)解惑的同時學(xué)...
    濯堂閱讀 852評論 0 2

友情鏈接更多精彩內(nèi)容