【移动应用开发技术】Android L系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方_第1页
【移动应用开发技术】Android L系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方_第2页
【移动应用开发技术】Android L系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】AndroidL系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方

如果你想修改MTK的AAL自动背光调整相关的内容,那么根据情况,可能需要涉及如下文件:这是AndroidL版本的,对于新的版本文件名字,mtk可能作调整。主要涉及的文件是:1)cust_aal.cpp2)DisplayPowerController.java3)AutomaticBrightnessController.java4)libaal.soMTK的AAL自动背光调整服务用到的库5)具体硬件driver的pwmled。6)另外,除了cust_aal.cpp和als驱动的实现getals的方法,可以通过als转换来影响亮度外,即alsrawdata改为alsvalue,16段折线拟合。参见代码cm36652.c的cm36652_read_als()获取rawalsdata,然后cm36652_get_als_value()根据cust_aal.cpp的.als_level[],.als_value[],来返回als转换后的alssensor值,进而影响AALservice的背光走向。新的驱动架构中,.als_level[],.als_value[]是在.dts文件中描述。请注意,原来的驱动,对als_level和als_value只是区间内的值都是als_value[i]这种固定值,而不是区间内做线性拟合值,所以需要修改,参见我在mt6753中的cm3232.c中对cm3232_get_als_value()函数的修改。另外setting的亮度条的亮度设置也可以影响AALservice设置背光的亮度。从而达到提高亮度、降低亮度等目的。应用接口是Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);和Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,systemBrightness);所以MTK的AALservice的根据环境光亮度调节还是很丰富的,满足大部分需求。即als_level和als_value描述的是raw_als到als的映射曲线,进而影响亮度调节。而setting影响此映射曲线的倍数系数(当然最小值仍然是0亮度,最大值仍然是亮度255(8bit)/1023(10bit)),即相当于选择了不同的映射曲线,即曲线偏亮还是偏暗。floatvalue=Settings.System.getFloatForUser(mContext.getContentResolver(),Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ,0,UserHandle.USER_CURRENT);Settings.System.putFloatForUser(mContext.getContentResolver(),Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ,adj,UserHandle.USER_CURRENT);adj的值从-1到1的取值范围。以及:PowerManagerpm=(PowerManager)context.getSystemService(Context.POWER_SERVICE);mPower=IPowerManager.Stub.asInterface(ServiceManager.getService(“power”));mPower.setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(adj);实现。具体参考代码BrightnessController.java8)关于als调节背光的响应速度:其实,另外从代码DisplayPowerController.java的构造函数的代码实现来看,可以看出,几个config.xml配置值也影响相应的亮度。例如:config_autoBrightnessLevels[]和config_autoBrightnessLcdBacklightValues[],影响的是lightsensor上报的.als_value(注意不是.als_level)时,对应的lux,与level[n]和value[m]之间的关系。即也是lux和亮度值之间的曲线范围。另外注意screenBrightne***angeMinimum值的取值。config_screenBrightnessSettingDefault值另外还有一些scale计算。另外注意config_autoBrightnessLightSensorRate值。涉及的主要参数是:BRIGHTNESS_RAMP_RATE_BRIGHTEN从BRIGHTNESS_RAMP_RATE_SLOW调为fast,即从40变为200。目前使用150BRIGHTNESS_RAMP_RATE_DARKEN从BRIGHTNESS_RAMP_RATE_SLOW调为fast,即从40变为200。目前使用150选为fastAMBIENT_LIGHT_HORIZON从10000,调为1000即alssensor的稳定系数。BRIGHTENING_LIGHT_DEBOUNCE从4000,调为500,新代码改为mBrighteningLightDebounceConfig,此值参见DisplayPowerController.java中ernal.R.integer.config_autoBrightnessBrighteningLightDebounce。即config.xml的值。DARKENING_LIGHT_DEBOUNCE从8000,调为500,新代码改为mDarkeningLightDebounceConfigBRIGHTENING_LIGHT_DEBOUNCE和DARKENING_LIGHT_DEBOUNCE这两个变量表示,framework发现als亮度发生变化后,需要多久才会启动AAL去做PWM调节。值越低,表示亮度越敏感。SCREEN_DIM_MINIMUM_REDUCTION从10变为2,减少最小步幅,可以减少跳变的感觉。新版本代码还有一个BRIGHTNESS_ADJUSTMENT_SAMPLE_DEBOUNCE_MILLIS,从10000ms改为1000。那么结果是,从探测到要变到变完,1.5秒以内就完成。所以还是比较快的。另外AALservice往下设置的初始值在cust_aal.cpp中的InitBrightness中设置。这个值从0到1023,即8bit的255变为10bit的10239)由于CABC还会影响到背光的变化,所以调整亮度曲线时,可以根据需求关闭CABC、CABL。在project的cust_aal.cpp中,添加intInitFuncti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论