android settings怎样存储数据库

android settings怎样存储数据库,第1张

settings 数据管理了系统的普通设置,比如铃声uri,音量,用来保证下次用户开机时候和前次关机的配置信息一直的。保存信息在android是肯定用sqlite, 这个东西真是博大精深。对数据库还有很多不理解的地方。要加强。

我们OEM厂商,出货后,用户第一次开机,系统保存了些默认的配置,是怎么来的呢。有settingprovider提供。

这个是个单独的apk ,就是用来共各个ap查询记录系统信息的。肯定用provider方式。在base/core/java/android/provider/settings.java这个文件提供了很多的接口用来 *** 作数据。

相对来说。及时不用看数据库的实现,只要简单 *** 作这个类就够了。

数据库名字是settings.db 创建了两个表 system, secure 要往某个表里写东西,可以直接叫到 Settings.System.put**() 跟上contentresolver,我不怕苦,不怕输,只怕再多的努力也无助。苏州 qisda 臧春杰 键明,值,同样也可以Settings.System.get** 用法类似。

当然也可以Settings.secure.get put , 安全表主要用来记录一些网络配置信息。这个完全可以通过sqliteexpert打开看看。

第一开机时候,查询时候,会指定数据库名字版本

private static final String DATABASE_NAME = "settings.db"

// Please, please please. If you update the database version, check to make sure the

// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'

// is properly propagated through your change. Not doing so will result in a loss of user

// settings.

private static final int DATABASE_VERSION = 80

然后oncreate时候,创建表,然后加载默认数据

loadSystemSettings(db)//nancy, 有问题多讨论。

loadSecureSettings(db)

insert or ignore into system values()

在data\data\com.android.settings\shared_prefs\com.android.settings_pre里面,下面先介绍第一种方法。

1,在Z:\myandroid\frameworks\base\packages\SettingsProvider\res\values\defaults.xml里面添加

2,为了保持和原有数据添加方式一致,在Z:\myandroid\frameworks\base\core\Java\android\provider\Settings.java(我百度了,这个文件好像是不同版本,位置可能不一样)里面添加这二个数据的字段,也就是key值,编译的时候必须先编译它,再编译Z:\myandroid\frameworks\base\packages\SettingsProvider,否则报错找不到变量


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9391288.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存