2017-07-07 174 views
0

我使用以下方法在我的android項目中存儲服務器IP地址,以便服務器url可以被其他類訪問。在Android中避免硬編碼的IP地址

interface GlobalConstants{ 
     String SERVER_URL = "192.168.xx.xx"; 
    } 

但是,這種方法需要每次IP地址更改時重新編譯,反編譯將公開服務器url。有沒有更好的方法來初始化SERVER_URL?

我試過System.setProperty()和System.getProperty(),但它仍然在運行時完成。有沒有辦法像配置文件一樣來存儲IP地址並使其可配置?

在此先感謝。 :)

+0

我認爲你沒有辦法繞過編譯和構建apk。 –

+0

爲什麼世界上不只是使用DNS? – chrylis

+0

@chrylis這是試圖通過無線訪問PC的本地主機來測試代碼。 – user54321

回答

0

可以在gradle.build

buildTypes { 
     debug { 
      buildConfigField "String", "SERVER_URL", "\"http:TempRequest\"" 
     } 
     release { 
      buildConfigField "String", "SERVER_URL", "\"http:TempRequest\"" 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

然後你就可以使用BuildConfig類,機器人工作室將產生接取它做到這一點。

例如

String url = BuildConfig.SERVER_URL + "endpoint"; 

我希望這會幫助你。

+0

這是我一直在尋找的東西,雖然它並沒有消除重新編譯的需要。謝謝。 – user54321

+0

歡迎您:) –