21. 修改声音(来电、短信、通知、音乐、通话、蓝牙、FM等)的默认大小
修改frameworks/base/media/java/android/media/
public
};
Tip:
在AudioService.java中设置了各个音源的最大值。
22. 修改锁屏提示音大小
请修改framework/base/core/res/res/values/config.xml
-6
可修改为-6~0之间,默认值为-6,0为最大音量,通过修改此值可以达到调节锁屏音量目的。
Tip:
要注意Keyguard中是否用了此值,如果没有用此值的话,就需要修改音源文件的音量。
23. 修改状态栏透明
在Android
1.修改frameworks/base/packages/systemui/src/com/android/systemui/statusbar/phone/
public
}
强制HIGH_END为true,才能使用透明效果(如果应用要求Status透明的话),可实现Google默认的透明效果(有从上到下的灰色阴影渐变效果)。
2.如果有客户要求状态栏完全透明,则继续修改
frameworks/base/packages/systemui/src/com/android/systemui/statusbar/phone/
}
取消状态栏的渐变效果。
3.
法一:
1.如果希望维持ActionBar的存在,那么需要Style.xml中定义Theme继承一般的主题并加入下面两个属性:
true
@android:color/transparent
@null
true
true
2.AndroidManifest.xml中对Activity设置Theme节点
法二:
packages/apps/launcher2/src/com/android/launcher2/
//
if(Build.VERSION.SDK_INT
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
//
window.setFlags(
}
法三:
Style.xml中自定义主题,并设置父类为
Theme.Holo.Light.NoActionBar.TranslucentDecor
Theme.Holo.NoActionBar.TranslucentDecor
这两种主题都能实现app全屏的效果,前提是Device支持状态栏透明。
Tip:
对于其他apk,如果要在应用中设置状态栏透明,以达到所谓的沉浸式状态栏,那么推荐的方法是在Java代码中去写。
如果设置了StatusBar透明时,App的内容会被上拉到从StatusBar开始,这时候需要在Layout(XML)中最最外边那一层的布局加上一个属性android:fitsSystemWindows="true"在界面的根层加入了这个属性,app的内容就可以从ActionBar的下方开始展现了。
24. 修改关机时的振动时长
修改frameworks/base/services/java/com/android/server/power/
private
25. 修改Launcher的应用菜单的背景
修改Google原生Launcher2的app
packages/apps/launcher2/res/layout/
android:background="#00000000”
26. 修改Launcher应用菜单背景透明
请修改Launcher.java
//
}
或者在所有调用updateWallpaperVisibilit
27. 默认关闭GPS(比较省电)
在做Qualcomm
只需要在device下覆盖属性:
frameworks/base/packages/SettingsProvider/res/values/defaults.xml下的节点:
gps
将gps去掉就行,
Tip:
28. 修改截屏保存位置、截屏声音、图片的命名
Android
修改截屏声音:
frameworks/base/packages/systemui/src/com/android/systemui/screenshot/GlobalScreenshot.java
请修改构造函数中的
不要直接修改frameworks/base/media/java/android/media/MediaActionSound.java
修改截屏保存路径与命名:
frameworks/base/packages/systemui/src/com/android/systemui/screenshot/GlobalScreenshot.java::SaveImageInBackgroundTas
请修改构造函数中的下面代码:
mImageTime
String
.format(new
mImageFileName
mScreenshotDir
Environment.DIRECTORY_PICTURES),SCREENSHOTS_DIR_NAME);
29. 修改字体大小默认为最大
请修改
frameworks/base/core/java/android/content/res/Configuration.java::
//fontScale
fontScale
}
需要检查设置—显示—字体大小
与设置—显示—字体大小—最大
Tip:
要整体修改字体大小则需要考虑三方面的一致:
1.
2.
3.
30. 设置中默认打开未知来源
请修改frameworks/base/packages/SettingsProvider/res/values/defaults.xml
true
有两种方法:
1.
2.
在.mk中添加ADDITIONAL_BUILD_PROPERTIE
在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中
loadBooleanSetting(stmt,Settings.Global.INSTALL_NON_MARKET_APPS,
R.bool.def_install_non_market_apps);
修改为
int
=
方法二的好处是,做差分时不用每次都去overlay,而是用过property控制,这样比较省资源,推荐第二种方法。
31. 默认使用24小时制
请在frameworks/base/packages/SettingsProvider/res/values/defaults.xml中添加节点
12
请添加DatabaseHelper.java::
//
loadSetting(stmt,
mContext.getResources().getString(R.string.def_hour_format));
//
}
32. 修改默认蓝牙名称
请修改external/Bluetooth/bluedroid/btif/src/btit_dm.c::
static
修改为
static
33. Launcher让应用程序列表背景透明或半透明
请修改packages/apps/Launcher2/res/layout/apps_customize_pane.xml
1.
android:background="@android:color/transparent"
2.id为android:id="@+id/animation_buffer”的
FrameLayout节点中android:background="@android:color/transparent"
3.
visible
//
}
如果以上设置不成功,或者效果不好,还要继续check
setWorkspaceBackground(boolean
为
34. 默认显示“开发者选项”
请修改packages/apps/Settings/src/com/android/settings/Settings.java
private
修改为
35. 修改日历的默认提醒时间
请修改packages/apps/calendar/res/xml/
android:defaultValue="@string/preferences_default_reminder_default"
36. 提高输入法、虚拟按键的振动效果
1、首先,确认震动器是否是好的。如:
2、如果如上都没效果,说明振动器问题,需要驱动查下
3、如果如上有效果,那么就很可能是设置的震动效果太弱了,可以跟随代码查下最终调用vibrator.vibrate(200)的地方括号中的值是多少,适当加大即可
输入法键盘的值(其他类型的也有)定义在config.xml中,可以看到是40,如下:
37. 显示虚拟按键
请修改frameworks/base/core/res/res/values/config.xml文件中
true
如果开不了机,就需要判断底层是否支持了;
100%有效果的方法是修改
frameworks/base/packages/systemui/src/com/android/systemui/statusbar/phone/
protected
//boolean
boolean
Tip:
虚拟按键目前我们做的项目还没有使用过,上面两种方法都是我自己在ho9021的marvell项目中亲测通过的。
PhoneWindowManager.java中:
mHasNavigationBar
res.getBoolean(com.android.internal.R.bool.config_showNavigationBar);
38. 修改USB默认选中PTP
请修改device/marvell/common/common.mk中
persist.sys.usb.config=rndis,acm,marvell_diag
修改为
persist.sys.usb.config=ptp
Tip:
修改此需求,请务必与驱动工程师沟通。
39. 默认关闭数据连接
请查看下面代码
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中
public
//
String
sim1Default
sim2Default
loadSetting(stmt,
"true".equalsIgnoreCase(
?
loadSetting(stmt,
"true".equalsIgnoreCase(
SystemProperties.get("ro.com.android.mobiledata2",sim2Default))
?
}
所以需要在device下覆盖这两个property:
ADDITIONAL_BUILD_PROPERTIES
ro.com.android.mobiledata2
40. 插入耳机时禁止状态栏显示图标
请修改
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java的updateHeadSet方法中,
修改前:
mService.setIconVisibility("headset",
修改后:
mService.setIconVisibility("headset",
41. 选择USB大容量存储模式时,直接挂载t卡到PC
第一、首先检查SystemUIService.java
com.android.systemui.usb.StorageNotification.class
如果有,则去掉;