在移动应用程序中加载元数据的最佳策略是什么



我的Android应用程序需要从后端服务器调用一些元数据,如配置值、类别、图像描述等。数据不会经常更改,但有时我需要为主数据添加值,并需要应用程序来获取它(然而,即使在那时,时间也不那么关键(。

这种情况下的最佳实践是什么?每次需要时加载数据似乎有点过头了。我应该在应用程序启动时加载它并使用缓存吗?更多选择?

如果这有助于找到解决方案,我将使用改装2。

在我的例子中,我使用SharedPreferences(键值(来保存用户信息,如安全令牌和用户数据。但是,如果您需要保存一些静态数据,如api url、用于在应用程序中使用某些服务的api密钥,您可以在build.gradle中使用resValues(放置依赖项的位置(。

共享首选项示例:

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
Editor editor = pref.edit();
editor.putString("key_name", "string value"); // Storing string
val content = pref.getString("key_name", null); // getting String

以梯度保存静态数据的示例:

buildTypes {
debug {
resValue "string", "url_api", "http://test.api.org/"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
resValue "string", "url_api", "https://production.api.org/"
}
}

当我需要使用改装来调用这个url时,我使用这行代码:

val example = Retrofit.Builder()
.client(okHttpClient)
.baseUrl(application.getString(R.string.url_api)) // using resvalue from gradle
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.build()
.create(ApropoApi::class.java)

对于开发,我可以使用调试resvalue,在发布我的应用程序后,它使用releases resvalue。

根据您的业务逻辑,您必须决定使用什么。

最新更新