Android_settings.db_添加新字段
如有不妥之处,欢迎留言,谢谢~
Settings
对于 Android 系统工程师来说,是一个经常需要改动的部分之一。这两天都是看 Settings 的源码,就我个人而言,Settings 整个项目的代码量还是挺多的。你觉得呢?
那如何给 Android 的 settings.db
数据库添加新的字段?接下来,我就说说我是怎么做的。如有不妥之处,欢迎留言,谢谢~
背景
今天遇到这样一个需求:在 Android 的 settings.db 中添加一个新字段,用于保存一个特殊含义的值。这里假设是需要保存 wifi mac address。
简述
Settings 的数据都是保存在Android系统中的 data/data/com.android.providers.settings/databases/settings.db
数据库中(可以通过 DDMS
或使用命令查看,当然前提是有 root 权限),而这些数据的默认值则是在 Android 源码中 frameworks/base/packages/SettingsProvider/res/values/defaults.xml
文件中定义的。
如何添加新字段
如果需要在 settings.db 中添加新的字段,可以通过以下步骤进行实现[这里假设需要添加保存 wifi mac address 的字段]:
第一步
在 defaults.xml
中为新字段的数据定义一个默认值(也可以通过代码进行设置)
|
|
第二步
仅仅在给默认值是不行的,还需要在 DatabaseHelper.java
中的 loadSystemSettings(SQLiteDatabase db)
方法中添加字段
|
|
第三步
重新编译一个 SettingsProvider.apk,覆盖安装即可
第四步
经过前面三个步骤,理论上就已经添加完了,那是否成功呢?现在就来检验下,检验有三种方法,
1.借助 DDNS 检验
settings.db 数据库的路径是:data/data/com.android.providers.settings/settings.db
,然后将数据库导出,进行验证
2.代码检验
在 APP 中可以通过 Settings.System
中的 get 和 put 方法获取和设置,验证是否有新字段
3.adb shell 命令检验
settings.db 数据库的路径是:data/data/com.android.providers.settings/settings.db
,然后通过 sqlite3 进行查看,是否有新字段
到此,此篇博文就到尾声了。希望对你有所帮助,若本文有误或你有更好的方法,欢迎留言,谢谢~
作者简介:
刘广明(@cnLGMing),一步一步往上爬。
邮箱:liuguangmingcn@163.com
文章若有不对之处,欢迎指正,谢谢~
版权声明:原创作品,转载时请务必注明原始出处。