Android SettingProvider详解
點擊打開鏈接
- 一 概述
- 二Android M之前的SettingsProvider
- 1 系統設置初始化
- 2 系統設置的修改
- 三Android L 的SettingsProvider
一、 概述
在Android啟動之后,我們通常需要根據自己的一些需要來設置一些符合我們使用習慣的屬性。例如:來電鈴聲、鎖屏時間、日期格式等等。而這些屬性的設置通常是有Settings為入口,通過SettingsProvider來進行的。SettingsProvider也是所有系統設置的管理者。在M(Android5.0)版本之前,SettingsProvider中系統設置是存儲在settings.db數據庫中;但是在L(Android6.0)之后,SettingsProvider中系統設置改為由xml存儲在data分區。
二、Android M之前的SettingsProvider
進入/data/data/com.android.providers.settings/databases
# cd /data/data/com.android.providers.settings/databases # sqlite3 settings.db- 1
- 2
- 1
- 2
sqlite3 有可能提示找不到,這是由于在當前版本中sqlite3程序沒有被編譯到system中,這里我們只需要手動push一個sqlite3就好了。
在使用sqlite3打開settings.db數據庫之后,可以使用.help來查看有關sqlite3的一些幫助信息。這里常用的如下所示:
2.1 系統設置初始化
這些屬性是如何被寫入到SettingsProvider中的呢?
請參照如下代碼。
frameworks/base/packages/SettingsProvider/src/com/Android/providers/settings/DatabaseHelper.Java
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
2.2 系統設置的修改
系統屬性的設置,我們可以通過修改源碼,編譯生成SettingsProvider.apk并安裝到系統中,就能生效。
這里在提供一種更簡便的方法
adb shell settings,有關其詳細用法,可以參照如下提示:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
三、Android L 的SettingsProvider
在Android L版本中,Google團隊為了優化系統性能、提高安全性等等一些列需求,重構了SettingsProvider模塊,在L版本中,不在使用數據庫來存儲系統設置,而是通過xml將系統設置存儲在了/data/system/user/ 目錄下
有關L版本中SettingsProvider的修改更新方法同之前的相同
總結
以上是生活随笔為你收集整理的Android SettingProvider详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android7.1修改系统默认多媒体音
- 下一篇: android7.1默认背光亮度及编译调