我正在制作需要用户识别数据的图书馆,让我们说一下applicationID。我应该在哪里让开发人员提供识别数据?我不想让它们设置运行时,因为我希望它们的代码在使用库时尽可能干净。我应该把它们放在哪里?什么是最佳做法?我无法找到与此主题相关的任何文档。我知道Facebook Android SDK建议将app_id放入string.xml,但在我看来这有些肮脏。
有什么建议吗?
答案 0 :(得分:1)
有很多选择;
<强> 1.Sqlite 强>
<强> 2.SharedPreferences 强>
3.Asset folder
在资产文件夹中,您可以使用xml或您的数据类型。
答案 1 :(得分:1)
我总是喜欢使用元数据。例如SugarORM使用此功能。有了它,您可以在清单中定义内容,如下所示:
<application
android:label="@string/app_name"
android:icon="@drawable/icon"
android:name="com.orm.SugarApp">
<meta-data android:name="DATABASE" android:value="sugar_example.db" />
<meta-data android:name="VERSION" android:value="2" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" />
</application>
在大多数情况下,这是最佳做法。阅读元数据非常简单:
ApplicationInfo ai = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA);
Bundle metaData = ai.metaData;
if(metaData.containsKey("DATABASE")) {
String dbName = metaData.getString("DATABASE");
...
}
if(metaData.containsKey("VERSION")) {
int dbVersion = metaData.getInt("VERSION");
...
}