• android L版本AAL新架构


    [DESCRIPTION]
    和之前KK版本相比,在L版本上面AAL的架构也有发生一些改变。
    拿掉了之前KK平台上使用的MTK LABC,使用Android原生的自动背光功能。
    AALService内部只保留CABC和DRE两个功能。
     
     
    [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=2,只有CABC有开启。
    如果InitFunction=4,只有DRE有开启。如果InitFunction=0,CABC和DRE都不开启。
     
     
    (3)还有一个地方需要注意的是,Lightsensor的驱动代码。由于DRE功能需要从LightSensor
    驱动中去获取环境光的一些资料。所以需要在Lightsensor的驱动中实现一个Ioctl的接口。举例如
    下所示,比如stk3x1x的lightsensor,要确保在其stk3x1x_unlocked_ioctl函数中可以通过ALSPS_GET_ALS_DATA命令,获取相应的als值。
     
     
     
  • 相关阅读:
    android中Canvas使用drawBitmap绘制图片
    Java Metrics
    HDU 1051:Wooden Sticks
    APK ubuntu下 数字签名
    Qt计算器开发(二):信号槽实现数学表达式合法性检查
    session销毁
    C#多线程编程实例 螺纹与窗口交互
    POJ 1176 Party Lamps (DFS)
    Oracle 六闪回技术,flashback
    can't connect to mysql server on localhost <10061>
  • 原文地址:https://www.cnblogs.com/lexuele/p/5131396.html
Copyright © 2020-2023  润新知