避免 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";

希望对您有所帮助。