[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. qconbeijing2015

    http://2015.qconbeijing.com/schedule 大会日程 2015年4月23日,星期四 地点 2号厅 203AB 201AB 9:15 开场致辞 专题 主题演讲 互联网金融背 ...

  2. .net服务端生成二维码

    mvc4   net4.0 1.引用附件的DLL文件 2.两个函数即可 #region 生成二维码 public ActionResult getQrCode() { using (var ms = ...

  3. asp.net 线程批量导入数据,ajax获取执行状态

    最近做了一个批量导入功能,长时间运行,没个反馈状态,很容易让人看了心急,产生各种臆想!为了解决心里障碍,写了这么个功能. 通过线程执行导入,并把正在执行的状态存入session,既共享执行状态,通过a ...

  4. 滚动字幕Marquee

    基本语法  <marquee>滚动文字 </marquee> 文字移动属性的设置  方向 <direction=#> #=left, right,up,down 方 ...

  5. 第一次向nodeclub提交修改

    今天第一次向nodeclub提交了两个修改,两个修改都是涉及部分浏览器的兼容性的. Manager很快合并了我的修改,好开森.晚上又重新回炉了一下git的日常操作,将git部分操作整理了一下写于此博. ...

  6. 汇编2.汇编版本的helloworld

    寻址方式 立即数寻址 寄存器寻址 存储器寻址 直接寻址 : mov ax, [ 01000h ]; 直接在[]内给出一个内存地址 寄存器间接寻址: mov ax ,[si]; 在[]以寄存器的值给出内 ...

  7. 字符串翻转(java)

    1 递归,二分 private static String reverse(String s) { int N = s.length(); if(N <= 1) return s; String ...

  8. 1.1 Qt入门

    学习Qt的前提是学好C++. 我刚入门Qt,打算趁着暑假2个月时间来学习<C++ GUI Qt 4>这本书. 现在有Qt4和Qt5,似乎很多公司都还是在使用Qt4,所以我也就选择了学习Qt ...

  9. Hibernate中tx.commit()

    hibernate.cfg,xml文件中的自动提交事务是false.主键生成策略是native. 在表的映射继承是手动提交事务(即:tx.commit())无法发出sql语句,把数据插入到数据库的表中 ...

  10. OpenCV2:第三章 读取图像

    一.简介 将图像文件读入内存,可以用cv::imread()函数 二.读取图像 Mat imread(const string& filename,int flags=1); Mat: 如果读 ...