[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 L版本AAL新架构的更多相关文章

  1. 基于MT6752/32平台 Android L版本驱动移植步骤

    基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构 ...

  2. Ubuntu 试用Android L版本

    Android L是最近google一个大更新的版本,目前google开发了android L的开发者预览版本,对于一个android 开发者来说很定是要下载下来体验一把,顺便也要了解一下Androi ...

  3. Android 最新L版本,都更新什么东西了

    Android L版本重大修改 一:New Android Runtime (ART) 新的运行环境,4.4一下的版本ART是可选的运行环境,默认还是Dalvik.但是在Android L版本之后默认 ...

  4. Android L Camera2 API 使用实例程序汇总

    在网上发现几个使用Camera API2开发的实例程序,总结一下方便后续参考: 1.Camera2 Basic : https://github.com/googlesamples/android-C ...

  5. [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)

    温馨提示      建议你先了解一下上一篇博文([Android L]SEAndroid增强Androd安全性背景概要及带来的影响)所讲的内容,先对SEAndroid窥个全貌,然后再继续本节内容.   ...

  6. Android L 之 RecyclerView 、CardView 、Palette

    转: http://blog.csdn.net/xyz_lmn/article/details/38735117 <Material Design>提到,Android L版本中新增了Re ...

  7. Android L中的RecyclerView 、CardView 、Palette的使用

    <Material Design>提到,Android L版本中新增了RecyclerView.CardView .Palette.RecyclerView.CardView为用于显示复杂 ...

  8. Android L新控件RecyclerView简介

    Android L是android进化史上的里程碑,尽管还没有正式发布4.5或者5.0,但预览版也同样精彩. 这篇文章只是另外一篇博客的总结性翻译,能够读懂原文的,可以点开这个链接去阅读精彩的原文:h ...

  9. [Android P] Android P版本 新功能介绍和兼容性处理(一)

    cp from :https://blog.csdn.net/yi_master/article/details/80046696 Android P版本已经到来,首篇我们当然要先看下Android ...

随机推荐

  1. 项目错误提示Multiple markers at this line

    新安装个Myeclipse,导入以前做的程序后程序里好多错,第一行提示: Multiple markers at this line         - The type java.lang.Obje ...

  2. MyBatis -- 必知必会

    MyBatis的前身是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis.201 ...

  3. Android里的 ART、JIT、AOT、Dalvik之间有什么关系?

    ART.JIT.AOT.Dalvik之间有什么关系? JIT与Dalvik JIT是"Just In Time Compiler"的缩写,就是"即时编译技术", ...

  4. PL/SQL学习笔记(三)

    -----创建一个序列,再创建一个表(主键是数字),通过序列生成该表的主键值. create table mytb1( m_id number primary key, m_name ) not nu ...

  5. c++正则表达式模板库GRETA的使用

    GRETA是微软研究院的一位前员工开发并开源的一个C++正则表达式库,兼容perl正则语法 官方介绍:“A fast, flexible, perl-compliant regular express ...

  6. cnbeta新闻资讯第三方客户端应用

    该源码案例是一个cnbeta第三方客户端应用案例,作者ywwxhz,源码cnBeta-reader,cnbeta 的 Android 客户端项目. 源码下载: http://code.662p.com ...

  7. HDU 5414 CRB and String (字符串,模拟)

    题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no.插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可. 思路:特殊的情况就是s和t的最长相同 ...

  8. javaee 第七周作业

    一.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...

  9. H3C S5024P交换机互连实验

    第一次周二网络管理实验报告 交换机互联实验 实验接线图: 交换机全貌: 可以通过超级终端和telnet来配置交换机       控制电缆连交换机console口与计算机主机(只可以传送命令不可以通信, ...

  10. Linux-RedHat7.2 安装.net core2.0

    1.添加dotnet产品Feed sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'ech ...