繼續工作交接,哎,不吃苦中苦,難買三套房。
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();