日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android SettingProvider详解

發布時間:2025/4/16 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,有關其詳細用法,可以參照如下提示:

$ adb shell settings get system ringtone content://media/internal/audio/media/59 $ adb shell settings set system ringtone "content://media/internal/audio/media/60" Invalid command: set usage: settings [--user NUM] get namespace keysettings [--user NUM] put namespace key valuesettings [--user NUM] delete namespace key 'namespace' is one of {system, secure, global}, case-insensitive If '--user NUM' is not given, the operations are performed on the owner user. $ adb shell settings put system ringtone "content://media/internal/audio/media/60" $ adb shell settings get system ringtone content://media/internal/audio/media/60
  • 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详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。