App里如何獲取gradle里的配置信息?

在Android開(kāi)發(fā)中我們一般需要在app里獲取gradle里的配置信息:

1.在程序里使用gradle里的配置項(xiàng),

2.在resouce里使用gradle里的配置項(xiàng)?

方法一:

一,為什么使用gradle.properties?

1,對(duì)于項(xiàng)目而言,有時(shí)候需要配置某些敏感信息。比如密碼,帳號(hào)等。而這些信息需要被很多類共同使用,所以必須有一個(gè)全局的配置

2,當(dāng)需要把項(xiàng)目push到git上時(shí),我們不希望別人看到我們項(xiàng)目的key,token等。我們可以將這些信息設(shè)置在gradle.properties中。(這一點(diǎn)后續(xù)需要詳解)

二,如何使用gradle.properties?

1,在gradle.properties文件中進(jìn)行變量初始化。

2,在build.gradle(module app)中進(jìn)行變量的重定義,即將配置內(nèi)容轉(zhuǎn)化成java能夠使用的形式

其中,buildConfigField定義的方式是

buildConfigField 類型,變量名,值

resValue定義的方式是

resValue XML中的類型,變量名,值

3,在java中使用。

使用BuildConfig可以直接讀取配置信息

注:在項(xiàng)目中直接使用“BuildConfig.APPNAME”,是因?yàn)橄到y(tǒng)根據(jù)build.gradle文件自動(dòng)生成了BuildConfig類,該類里是一些配置常量:

4,在布局文件中使用

通過(guò)build.gradle中的配置,可以直接使用@string 訪問(wèn)

方法二:(不常用,推薦使用方法一)

項(xiàng)目中有登錄頁(yè)面,但平時(shí)調(diào)試的時(shí)候每次都輸入用戶名密碼來(lái)登錄太麻煩,寫(xiě)成固定值發(fā)布的時(shí)候又要重新替換和注釋。所以就想從不同版本獲得信息然后代碼中控制。

在Android項(xiàng)目文件中的build.gradle中,在android標(biāo)簽下的defaultConfig標(biāo)簽下,可以添加manifestPlaceholders,里面可以存一些app的配置信息值,比如是否是發(fā)布版本。如下圖:

這樣平時(shí)編譯調(diào)試的時(shí)候使用的是debug版本默認(rèn)的false,發(fā)布的時(shí)候使用的是release版本為true,即只需要在代碼中獲取這個(gè)isRelease值就可控制登錄時(shí)候是否填寫(xiě)用戶名密碼或者直接賦值固定值。

那怎么獲取build.gradle文件中的值呢,整個(gè)app項(xiàng)目中有個(gè)配置文件AndroidManifest.xml,在application標(biāo)簽下,可新寫(xiě)meta-data標(biāo)簽,其中的value值用${value}來(lái)表示,花括號(hào)中的value為gradle文件中的變量名。如下圖:

然后代碼中就可以寫(xiě)個(gè)工具類來(lái)獲取manifest文件的meta-data的值。

代碼:


代碼中再根據(jù)返回的值進(jìn)行判斷和控制即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,255評(píng)論 6 342
  • Gradle對(duì)于很多開(kāi)發(fā)者來(lái)說(shuō)有一種既熟悉又陌生的感覺(jué),他是離我們那么近,以至于我每天做項(xiàng)目都需要他,但是他又是離...
    阿_希爸閱讀 9,692評(píng)論 10 199
  • 說(shuō)明 本文主要介紹和Gradle關(guān)系密切、相對(duì)不容易理解的配置,偏重概念介紹。部分內(nèi)容是Android特有的(例如...
    搬磚的小明閱讀 16,141評(píng)論 1 62
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,789評(píng)論 25 709

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