关于android 4.1的设置默认值的一些记录
来源:互联网 发布:如何在淘宝上找工作 编辑:程序博客网 时间:2024/05/16 09:49
最近在设置Android 设置的一些预置默认值,感觉还是挺复杂的。最近又选择性失忆了,还是记一下。
Android的设置的服务端是由SettingsProvider提供的,代码路径:frameworks/base/packages/SettingsProvider ,实际上这是个操作数据库的服务,并提供给设置的应用部分去调用,个人理解,可能描述不太对。下面分析代码均以 frameworks/base/packages/SettingsProvider 目录作为根目录。
SettingsProvider的代码都在src/com/android/providers/settings目录下,有下面几个文件。
DatabaseHelper.java SettingsBackupAgent.java SettingsHelper.java SettingsProvider.java
建立数据库,并加载默认设置值的是DatabaseHelper.java文件,今天只看这个文件。
在文件里有这个函数:
private void loadSettings(SQLiteDatabase db) {
loadSystemSettings(db);
loadSecureSettings(db);
}
这就是加载默认值的函数,实际上只是按照一些定义和变量来插入数据库记录而已,在里面可以发现有2种加载默认值的方式:
1: loadBooleanSetting(stmt, Settings.System.AIRPLANE_MODE_ON, R.bool.def_airplane_mode_on);
这个函数会去读资源里的默认值,这个资源的定义的路径在下面的文件里:
res/values/defaults.xml
这个比较简单,就不做分析了,其实大部分的默认值都在这个文件里定义了。
2: loadSetting(stmt,Settings.System.SCREEN_OFF_TIMEOUT,SystemProperties.getInt("ro.rk.screenoff_time",
mContext.getResources().getInteger(R.integer.def_screen_off_timeout)));
这个函数首先会去读系统的属性,如果有值则使用这个值,如果没有则使用后面得到的值。后面的值其实就是第1种定义默认值的方式。
系统属性的定义在相关的device的device.mk文件里,下面是代码片段:
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mass_storage,adb \
persist.sys.strictmode.visual=false \
dalvik.vm.jniopts=warnonly \
ro.rksdk.version=RK30_ANDROID$(PLATFORM_VERSION)-SDK-v1.00.00 \
sys.hwc.compose_policy=6 \
ro.sf.fakerotation=true \
ro.sf.hwrotation=270 \
ro.rk.MassStorage=false \
wifi.interface=wlan0 \
ro.sf.lcd_density=120 \
ro.rk.screenoff_time=1800000 \
终上所述,系统设置的打部分默认值都在这2个地方可以更改。注意上面的persist.sys.usb.config=mass_storage,adb 这一行,是更改默认adb是否打开的代码,这在 SettingsProvider里没有定义,但是如果要打开adb,在persist.sys.usb.config=mass_storage,后面加上adb就可以,具体代码实现以后再做分析了。
- 关于android 4.1的设置默认值的一些记录
- Android系统一些默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- Android系统默认值的设置
- android 系统默认值的设置
- Android系统默认值的设置
- android系统默认值的设置
- 关于select2动态设置默认值的问题
- Android中关于Proguard的一些记录
- 关于android输入法的一些记录
- 排序:插入排序
- 配置MyEclipse
- Java文件操作---RandomAccessFile随机读写文件操作
- 多线程GCD的使用
- Windows下node.js+express安装配置教程、构建JavaScript的Web开发环境
- 关于android 4.1的设置默认值的一些记录
- Windows下PHP安装配置
- CoreAnimation-CATransaction
- Windows下安装Node.js+Express出现的错误
- MyEclipse 基于X-File 的Web service及调用实例详解
- android获取APK签名信息及MD5指纹
- hover伪类只有第一次有效的解决方案
- java集合之HashMap
- mac 完全卸载intellij