在哪里放置Android应用程序的识别数据?

时间:2014-07-22 12:53:07

标签: android

我正在制作需要用户识别数据的图书馆,让我们说一下applicationID。我应该在哪里让开发人员提供识别数据?我不想让它们设置运行时,因为我希望它们的代码在使用库时尽可能干净。我应该把它们放在哪里?什么是最佳做法?我无法找到与此主题相关的任何文档。我知道Facebook Android SDK建议将app_id放入string.xml,但在我看来这有些肮脏。

有什么建议吗?

2 个答案:

答案 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");
    ...
}