您的位置:首页 > 移动开发 > Android开发

Android系统修改

2017-10-11 11:26 120 查看
在Android系统定制过程中,经常需要修改一些属性、功能,重新定制一些系统应用,下面记录一些基于4.4.2版本源码修改过的问题,以备忘。

修改导航栏是否可移动

framework\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java

setInitialDisplaySize()中

mNavigationBarCanMove = shortSizeDp < 600 // 在最小分辨率是600dp时可以移动

导航栏宽度和高度

frameworks\base\core\res\res\values\dimens

<dimen name="navigation_bar_height">600dp</dimen>
<dimen name="navigation_bar_width">76dp</dimen>


默认输入法设置

frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java

final String DEFAULT_IME_ID = "com.android.inputmethod.pinyin/.PinyinIME"; //Google输入
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.default_input_method );
frameworks\base\packages\SettingsProvider\res\values\defaults.xml
<string name="def_input_methods">com.baidu.input/.ImeService</string><!--百度输入法-->


默认屏幕旋转方向

frameworks\base\packages\SettingsProvider\res\values

<bool name="def_accelerometer_rotation">false</bool>


禁止屏幕旋转

frameworks\base\services\java\com\android\server\wm\WindowManagerService.java

boolean updateOrientationFromAppTokensLocked(boolean inTransaction) {
long ident = Binder.clearCallingIdentity();
try {
int req = getOrientationFromWindowsLocked();
if (req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
req = getOrientationFromAppTokensLocked();
}
req = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;//禁止旋转,横屏设置
if (req != mForcedAppOrientation) {
mForcedAppOrientation = req;
// send a message to Policy indicating orientation change to take
// action like disabling/enabling sensors etc.,
mPolicy.setCurrentOrientationLw(req);
if (updateRotationUncheckedLocked(inTransaction)) {
// changed
return true;
}
}
return false;
} finally {
Binder.restoreCallingIdentity(ident);
}
}


屏幕密度

/system/build.prop

lcd_density值越大,同样分辨率图片显示越越小

接入电脑后显示的磁盘名称

system\vold\Fat.cpp

编译:*** mm system/vold

生成:bin\vold

系统默认时区和语言

方法一:out/target/product/***/system/build.prop

persist.sys.timezone=Asia/Shanghai
ro.product.locale.language=zh
ro.product.locale.region=CN
方法二:build/tools/buildinfo.sh
echo "persist.sys.language=zh"
echo "persist.sys.country=CN"
echo "persist.sys.localevar="
echo "persist.sys.timezone=Asia/Shanghai"
echo "ro.product.locale.language=zh"
echo "ro.product.locale.region=CN"


机器型号

out/target/product/***/system/build.prop

ro.product.model=h552c

设置中Location的默认定位精确度

system/build.prop:
ro.custom.gps.open=network,gps #高精确度
ro.custom.wifi.open=0
ro.custom.bt.open=0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息