Android客户经理在哪里存储帐户特定的偏好?

时间:2010-09-03 00:23:02

标签: android accounts account-management

我已成功创建各种帐户身份验证器/服务,每个帐户身份验证器/服务都有自己的preference.xml。这些偏好是持久的,但我不知道它们存储在手机的哪个位置。我使用adb搜索了手机,但我似乎无法找到与我的特定帐户的首选项对应的* .db或“shared_prefs”文件。

任何人都有这方面的经验吗?

4 个答案:

答案 0 :(得分:8)

我想知道同样的事情,因为我正在搜索android存储Bundle“extras”的帐户。

它位于SQLite数据库中(您需要根据手机提取并浏览它):

/data/system/users/0/accounts.db

您需要找到适合您应用的帐户:

sqlite> select * from accounts;
24|john.doe|com.evernote|

然后使用id来查找附加内容:

sqlite> select * from extras where accounts_id = 24;
70|24|userId|8305749

答案 1 :(得分:1)

据我所知,/data/system/users/0/accounts.db在当前的android版本上已不再使用。

我在/data/system_de/0/accounts_de.db中找到了所有帐户数据。

另外,很多Google身份验证信息似乎已缓存在/data/system_ce/0/accounts_ce.db

答案 2 :(得分:0)

很可能不是,因为通常你不必关心android存储共享首选项的位置。

答案 3 :(得分:0)

如果您使用custom account preference activity,则PreferenceManager.getDefaultSharedPreferences()会显示默认偏好设置存储在应用程序包的首选项文件夹中。例如,如果你有

    <manifest package="com.my.app.account" ... >

设置存储在

    /data/data/com.my.app.account/shared_prefs/com.my.package.account_preferences.xml

这些结果来自Android 2.3模拟器。