Android私密開發(fā)信息存儲

日常開發(fā)中總會遇到這樣的一個(gè)問題:如何保存第三方sdk的授權(quán)信息,或者網(wǎng)站的endpoint,在代碼上傳到Github上后不會被別人知道?

Easy?的確!

想法:只要將保存有私密信息的文件添加進(jìn)gitignore文件就好了!
問題:那開發(fā)的時(shí)候如何在代碼中讀取這些信息呢?打包工具可不會把文件給你加到apk中。

想法:加入到raw資源文件夾,怎么樣?這樣可以很方便讀取
問題:apk解壓后raw文件是可以直接得到的,很不安全。

那么問題的本質(zhì)就是讀取,只要解決這個(gè)就好了。下面就來說說如何讓gradle在編譯時(shí)讀取我們的私密信息文件,并打包進(jìn)apk。

一、存儲格式

類似于第網(wǎng)站的入口,第三方API授權(quán)這些信息最好的存儲格式是鍵值對,例如:
app_key=123
endpoint=http://www.1024.com
然后通過Java的Properties類快速解析,獲取想要的值。
一般都是把保存有這些信息的文件放到項(xiàng)目的根目錄下(記得gitignore掉),或者添加到gradle.properties文件中(推薦使用這種方法,這種方法后續(xù)處理也最為便捷),也有人存放在local.properties里(不建議,local.properties的注釋里說明了非gradle生成的內(nèi)容很可能被reset掉)。

二、讀取

我們的目的是要在項(xiàng)目的源代碼中能得到對應(yīng)的信息,但為了達(dá)到這個(gè)目的,我們需要gradle做為中間人幫忙轉(zhuǎn)換一下。具體流程是:
私密文件——>gradle讀取并處理——>BuildConfig靜態(tài)域或者XML資源文件
分為兩類講:
(1)存儲在非gradle.properties文件里時(shí):
你需要在gradle的配置文件中加入如下代碼,使得gradle讀取你的文件,并最工程中生成相應(yīng)的資源,以方便你訪問。

1

resValue會生成相應(yīng)的XML文件,可以通過R.string.app_key訪問。
buildConfigField會講變量生成為BuildConfig的靜態(tài)域,可以通過BuildConfig.APP_KEY訪問,需要注意圖片的雙引號的寫法,否則生成的BuildConfig類不正確。

(2)存儲在gradle.properties文件里時(shí):
如下代碼:

2

對!就是這么簡單,實(shí)現(xiàn)同樣的功能。這是因?yàn)間radle已經(jīng)加載過gradle.properties文件了,你只需要使用就行。(語法類似于jsp網(wǎng)頁)

三、結(jié)束

使用(1)時(shí)記得將文件名添加到gitignore中喲!

我是歪脖子,Android實(shí)習(xí)工,業(yè)余年輕“司機(jī)”,喜歡Python,熱愛編程。歡迎follow我的微博:http://weibo.fallblank.me

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,811評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • 這一章主要針對項(xiàng)目中可以用到的一些實(shí)用功能來介紹Android Gradle,比如如何隱藏我們的證書文件,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,665評論 3 25
  • 1.介紹 如果你正在查閱build.gradle文件的所有可選項(xiàng),請點(diǎn)擊這里進(jìn)行查閱:DSL參考 1.1新構(gòu)建系統(tǒng)...
    Chuckiefan閱讀 12,166評論 8 72
  • 我們要得到一些目標(biāo)有用的屬性,比如當(dāng)量直徑 1.高寬比 這是目標(biāo)的邊界矩形的寬高比 x,y,w,h=cv2.bou...
    xxxss閱讀 3,144評論 1 52