各版本 Android 的 SettingsProvider 数据保存位置

从Android 6.0开始,SettingsProvider的数据存储位置发生了变化。在6.0之前,存储在data/data/com.android.providers.settings/databases,而之后则存储在/data/system/users/userid/settings_*.xml文件中,分为system、global和secure三个文件。这一改动发生在2015年的某个时间,与Android 6.0 Marshmallow的发布前后。此外,可以通过SQLiteDatabase.toString方法获取数据库文件的位置。

Android 6.0之前的所在位置:
data/data/com.android.providers.settings/databases

Android 6.0之后的所在位置:
/data/system/users/userid/settings_[system|global|secure].xml
一共三个xml文件用来存储系统设置。

参考:
https://stackoverflow.com/questions/51466177/where-is-the-sqlite-database-that-holds-the-global-settings-stored-on-nougat

是因为在Rewrite of the settings provider这个提交之后,就通过xml文件存储系统设置了。这个提交的时间是在 Thu Jan 15 14:22:26 2015 或 12 Feb 2015 其中一个时间提交的也就是在:

  • 2014年10月/2015/3月-Android 5.0/5.1 - Lollipop(Android L)
  • 2015年9月-Android 6.0 - Marshmallow(Android M)

Android 6.0发布之前改的。

小知识:
如何知道SQLiteDatabase类所打开的数据库文件的位置?
答:利用SQLiteDatabase.toString方法,参考源码,如下:

    @Override
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值