在Android中避免使用硬编码的IP地址

时间:2017-07-07 05:54:27

标签: java android security hardcoded

我使用以下方法在我的android项目中存储服务器IP地址,以便其他类可以访问服务器URL。

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

但是,这种方法需要在每次IP地址更改时重新编译,反编译将公开服务器URL。有没有更好的方法来初始化SERVER_URL?

我尝试过System.setProperty()和System.getProperty(),但它仍然在运行时完成。有没有办法使用类似配置文件的东西来存储IP地址并使其可配置?

提前致谢。 :)

1 个答案:

答案 0 :(得分:2)

您可以在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 studio将生成的BuildConfig类来访问它。

例如

String url = BuildConfig.SERVER_URL + "endpoint";

我希望这会对你有所帮助。