android setting 开发者模式,Android 设置 Setting --->开发者选项 中选项为默认配置

在调试Android4.2.2   10.1寸LCD驱动时无意发现4.2.2有闪屏的bug(其实也不能称它为bug,个人认为应该是系统两种不同的图像混叠策略导致在不同硬件平台优化不匹配)。

现象:在开启应用程序或者在应用程序退出时,快速闪过HOME图像。 后来看到很多Android用户在升级到4.2.2是都出现了闪屏。而解决办法网上也搜得到。

勾选Setting ---->developer options------->Disable HW overlays (选项勾选后所有的图像混叠都由GPU实现) 。对于一般用户这样做就可以了。 但是这种闪屏现象很容易让人感觉系统不稳定,或是lcd驱动有什么问题。这就要求在Android源码编译时就完成Disable HW overlays选项的配置。

而开发者选项位于Setting中,很容易让人想到,去修改Setting的默认配置,方法如下:

如果想修改系统启动后加载的默认值,修改SettingsProvider默认值,Settings能够配置Android系统的各种设置,这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的,那么第一次开机的时候这些数据都是从哪儿来的呢?frameworks/base/packages/SettingsProvider/res/values/defaults.xml这个文件就是用来存储Android系统的默认设置例如:600000设置关屏超时时间的默认值102设置亮度的默认值false设置是否允许安装非Market应用程序的默认值如果想定义defaults.xml中没有的,在这里添加后,需修改frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加入自己的存储代码。

但是在Setting中找不到Disable HW overlays有关的选项。 还好有aSysBang的指导:

HWC这个东西不是用settingsprovider存储的。

那你往database里面怎么写也不会被调用到的。

frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp中有跟显示相关的配置,只需修改下面红字部分即可。

SurfaceFlinger::SurfaceFlinger()

:   BnSurfaceComposer(), Thread(false),

mTransactionFlags(0),

mTransactionPending(false),

mAnimTransactionPending(false),

mLayersRemoved(false),

mRepaintEverything(0),

mBootTime(systemTime()),

mVisibleRegionsDirty(false),

mHwWorkListDirty(false),

mDebugRegion(0),

mDebugDDMS(0),mDebugDisableHWC(1),

mDebugDisableTransformHint(0),

mDebugInSwapBuffers(0),

mLastSwapBufferTime(0),

mDebugInTransaction(0),

mLastTransactionTime(0),

mBootFinished(false)

修改后,编译源码,烧写system.img 。启动后,Setting ---->developer options------->Disable HW overlays 选项就被默认勾选了。闪屏现象消失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值