赞
踩
一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置,通常这些属性都是通过build.prop、settings.db
、default.xml、一些功能package下的 config.xml 等来进行初始化配置的。 那么,要满足客户的定制需求,对于我们开发者来说,修改SettingsProvider默认值,而第一次开机时,用来填充settings.db的数据都是从frameworks/base/packages/SettingsProvider/res/values/defaults.xml
这个文件来读取的。所以大部分的系统属性都是通过修改此处的xml节点来修改的。当然有一些属性是在device下的project.mk中去修改使其编译时添加到build.prop中去。 接下来,我将从我所参与过的项目中,去一点点的记录需要修改的属性都怎么设置。
对于Android手机ODM界的朋友,通读这篇文章后,基本上能完成项目前期70%的适配工作(如果是做MTK平台的话,那更好,可以用来控制的宏变量更加丰富)。
1.
去掉“亮度”中的自动调节 第一步、修改frameworks/base/core/res/res/values/config.xml中的
false
第二步、在Marvell1908平台中,没有根据此property来确定“自动”按钮的显示还是隐藏,所以还需在SystemUI中动态确定该CheckBox的显示与否:
BrightnessController.java中添加如下方法
private void updateAutomaticButton(boolean automatic) {
android.util.Log.d(TAG, " Automatic button aviliable: " + automatic);
if(null != mControl) {
mControl.setAutomaticAvailable(automatic);
}
} 在updateMode()中调用该方法:
private
void updateMode() { //
… … }
else {
mControl.setChecked(false);
updateIcon(false );
} updateAutomaticButton(mAutomaticAvailable);
}
在ToggleSlider.java中添加接口:
public void setAutomaticAvailable(boolean autoBrightness) {
if(null != mToggle) {
//mToggle.setWidth(autoBrightness ? 48: 0);
mToggle.getLayoutParams().width = autoBrightness ? 48: 0;
mToggle.setOnCheckedChangeListen er(autoBrightness ? this : null);
}
} Tip:
不支持光感设备去掉“自动调节亮度”需要考虑
桌面小部件、下拉状态栏、亮度调节Dialog以及第三方apk这四个方面的Icon的显示问题。如果修改boolean property还不能达到效果,就需要考虑第二步。
2.
修改“亮度”的最值、默认值、半暗值 修改frameworks/base/core/res/res/values/config.xml中的
10
255
102
10
3.
修改开机时的默认亮度 修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml中的
51 4.
修改开关机铃声 开关机动画相关所在路径是在frameworks/base/cmds/bootanimation/中去操作的(不同平台略有不同);
Android设备的铃声资源都是在frameworks/base/data/sounds中
Marvell
平台是在frameworks/base/cmds/bootanimation/BootAudio.cpp #define
USER_BOOTMUSIC_FILE "/data/local/bootupmusic.mp3" #define
SYSTEM_BOOTMUSIC_FILE "/system/media/bootupmusic.mp3"
#define
USER_SHUTDOWNMUSIC_FILE "/data/local/shutdownmusic.mp3" #define
SYSTEM_SHUTDOWNMUSIC_FILE "/system/media/shutdownmusic.mp3" 用需要替换的开关机铃声overlay
对应的文件 /system/media/bootupmusic.mp3 和 /system/media/shutdownmusic.mp3 即可,注意资源名称要一致,改为对应的bootupmusic.mp3 或者 shutdownmusic.mp3 Qualcomm平台是在frameworks/base/cmds/bootanimation/
bootanimation_main.cpp中 void
BootAnimation::playBackgroundMusic(void) {
char bootAudioFile[] = "/system/media/boot.wav";
char shutdownAudioFile[] = "/system/media/shutdown.wav"; //
… … }
需要将替换的资源overlay下boot.wav
shutdown.wav 注意名称一致,格式也必须一致。或者直接修改这里的cpp代码。
5.
修改Android默认壁纸 Overlay掉frameworks/base/core/res/res/drawable-nodpi/
default_wallpaper.jpg即可 6.
编译版本时不生成odex 一般odex化是在4.0以后的版本中有的功能,odex化可以使系统的启动和程序运行速度大大提高,稳定性不变。但是编译时生成odex包会大大增加system.img的体积,不利于ota升级,t卡升级,所以在编译时可以去odex。
需要在.mk文件中添加属性:
#remove
odex DISABLE_DEXPREOPT:=true
7.
修改默认来电铃声、通知铃声
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。