避免 Android 中的硬编码 IP 地址
Avoiding hardcoded ip addresses in Android
我使用以下方法将服务器 ip 地址存储在我的 android 项目中,以便其他 类.
可以访问服务器 url
interface GlobalConstants{
String SERVER_URL = "192.168.xx.xx";
}
但是,这种方法需要在每次 IP 地址更改时重新编译,并且反编译会暴露服务器 url。有没有更好的方法来初始化 SERVER_URL ?
我尝试了 System.setProperty() 和 System.getProperty() 但它仍然是在运行时完成的。有没有办法使用配置文件之类的东西来存储 IP 地址并使其可配置?
提前致谢。 :)
您可以在 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'
}
}
然后您可以使用 android 工作室将生成的 BuildConfig
class 访问它。
例如
String url = BuildConfig.SERVER_URL + "endpoint";
希望对您有所帮助。
我使用以下方法将服务器 ip 地址存储在我的 android 项目中,以便其他 类.
可以访问服务器 url interface GlobalConstants{
String SERVER_URL = "192.168.xx.xx";
}
但是,这种方法需要在每次 IP 地址更改时重新编译,并且反编译会暴露服务器 url。有没有更好的方法来初始化 SERVER_URL ?
我尝试了 System.setProperty() 和 System.getProperty() 但它仍然是在运行时完成的。有没有办法使用配置文件之类的东西来存储 IP 地址并使其可配置?
提前致谢。 :)
您可以在 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'
}
}
然后您可以使用 android 工作室将生成的 BuildConfig
class 访问它。
例如
String url = BuildConfig.SERVER_URL + "endpoint";
希望对您有所帮助。