L版本AAL

[DESCRIPTION]
            和之前KK版本相比,在L版本上面AAL的架构也有发生一些改变。
拿掉了之前KK平台上使用的MTK LABC,使用Android原生的自动背光功能。
AALService内部只保留QPPS(CABC)和DRE两个功能,并新增了一个Ultra Dimming功能。
 
(如何开启AAL功能请参考:FAQ13618 L版本之后如何开启AAL功能)
 
[SOLUTION]
              L版本AAL架构如下图所示,可以参考架构图阅读代码。
    
              有几个比较重要的地方需要注意。
             (1)由于自动背光功能是使用的Android原生的LABC功能,所以LABC相关的客制化部分
都是按照Android原生的走。
                第一是,config.xml文件的客制化。MTK默认Release出去的codebase里面的config.xml中
有default的table值。如下图所示,客户可以根据需求进行Turing和修改,一般情况下都不会去动它。
                路径是alps/frameworks/base/core/res/res/values/config.xml
              
                
 
                第二是,LABC从亮到暗的速度,LABC从暗到亮的速度的调整,修改两个变量就可以了,如下图所示:
          (2)说完LABC,再来看看AALService中的CABC和DRE功能。和KK相比
客制化部分仍然在cust_aal.cpp中,只是文件的路径发生了改变,文件中的一些
变量发生了改变。
              路径在alps/vendor/mediatek/proprietary/custom/$Project/hal/aal/cust_aal.cpp
 由于把MTK LABC给Phased out掉了,所以与MTK LABC相关的变量也Phased out了。
 DRE功能增加了一个变量,LowBLReadabilityLevel。CABC功能相应的客制化变量
没有发生改变。这里其实用MTK的default value就好了。
              增加了一个变量,InitFunction,这个变量是说AAL启动默认开启哪些功能,
如果不配置,InitFunction默认值为6,开启CABC和DRE功能。
如果InitFunction=6,CABC和DRE都开启。如果InitFunction=2,只有CABC有开启。
如果InitFunction=4,只有DRE有开启。如果InitFunction=0,CABC和DRE都不开启。
 
(3)打开/关闭AAL功能的函数接口:
private static native void nativeSetAALFunction(int func);
参数func设置可以参数(2)中InitFunction的说明。
 
(4)打开/关闭AAL功能的adb 命令:
FAQ12836 如何用CMD 去开关AAL 各个子feature
 
(5)Ultra Dimming打开后,没有接口和命令关闭。如果要关闭,只有去掉Ultra Dimming的配置。
 
         (6)还有一个地方需要注意的是,Lightsensor的驱动代码。由于DRE功能需要从LightSensor
驱动中去获取环境光的一些资料。所以需要在Lightsensor的驱动中实现一个Ioctl的接口。举例如
下所示,比如stk3x1x的lightsensor,要确保在其stk3x1x_unlocked_ioctl函数中可以通过ALSPS_GET_ALS_DATA命令,获取相应的als值。(AAL中只有DRE功能会用到light sensor,其他功能都不会用到。LABC功能属于Android 原生架构
        
                 

2

0

订阅

下载FAQ

评论与反馈
评论仅限于对本条FAQ的疑问,更具体的开发疑问,请通过eservice提交.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值