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值。

时间: 2024-10-31 01:02:39

android L版本AAL新架构的相关文章

Ubuntu 试用Android L版本

Android L是最近google一个大更新的版本,目前google开发了android L的开发者预览版本,对于一个android 开发者来说很定是要下载下来体验一把,顺便也要了解一下Android L的新功能嘛, 我这里使用的是ubuntu13.10更新的,在更新的过程中出现很多问题: 想着ubuntu中更新SDK,我们可以在sdk目录下的tools文件夹中有一个android的命令,我们可以在终端下在这个tools目录下运行./android这个命令,正常情况下你运行这个命令就会出现如下

Android 最新L版本,更新内容

Android L版本重大修改 一:New Android Runtime (ART) 新的运行环境,4.4一下的版本ART是可选的运行环境,默认还是Dalvik.但是在Android L版本之后默认环境就是ART了. 新的特性如下: 1.Ahead-of-Time (AOT).提前预编译,在运行时之前将代码编译成可执行的文件,并保存起来. 2.改进了垃圾回收功能. 3.改进了bug调试功能. 大多数应用不需要更改便可以运行在ART环境下,但是一下的情况你需要注意一下: 1.使用了Java Na

Android L 5.0版本获取topActivity的方法

Android L版本中getRunningTasks已经失效 需要添加权限: <uses-permission android:name="android.permission.GET_TASKS"/> public static String getTopPkgName(Context context) { ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_

Chromium on Android: Android L平台上WebView的变化及其对浏览器厂商的影响分析

摘要:Android L平台在图形渲染方面有一项重要的改进,它引入了一个专门的线程用于执行渲染工作,UI线程负责生成的显示列表(DisplayList),渲染线程负责重放(playback)这个显示列表绘制最终的内容,因此Chromium WebView在图形栈的实现方面也作了相应的调整,以支持Android L系统上新的渲染线程模型.本文将深度分析Chromium WebView的渲染流水线是如何无缝整合到Android L系统的渲染模型中,以及对目前市场主流浏览器厂商将会产生什么样影响等问题

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

在网上发现几个使用Camera API2开发的实例程序,总结一下方便后续参考: 1.Camera2 Basic : https://github.com/googlesamples/android-Camera2Basic This sample demonstrates how to use basic functionalities of Camera2 API. You can learn how to iterate through characteristics of all the

ANDROID L——Material Design详解(主题和布局)

Android L: Android L可能就是Android Lollipop或者Lemon Pie(4.5或者5.0),因为Google一直以来都是用甜点为版本命名. Google之前就已经提前推出了Android L Developer Preview(开发者预览版)来帮助开发者更快的了解Android特性,而不久前也推出了64位的模拟器镜像.相信Android L正式版也不远了,所以是时候开始学习Android L了. 关于Android L如何配置模拟器和创建项目,如果大家有兴趣的话可

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

温馨提示 建议你先了解一下上一篇博文([Android L]SEAndroid增强Androd安全性背景概要及带来的影响)所讲的内容,先对SEAndroid窥个全貌,然后再继续本节内容. 1 现象描述 基于Android L版本源码环境进行开发时,根据项目需求,APP层需要操作sys/xxx 或 proc/xxx下面的文件结点,但是会报出以下权限异常,无法直接操作这些结点 LedLightFileUtil( 4671): java.io.FileNotFoundException: /sys/c

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

<Material Design>提到,Android L版本中新增了RecyclerView.CardView .Palette.RecyclerView.CardView为用于显示复杂视图的新增Widget.Palette作为调色板类,可以让你从图像中提取突出的颜色. RecyclerView RecyclerView作为替代ListView使用,RecyclerView标准化了ViewHolder,ListView中convertView是复用的,在RecyclerView中,是把Vie

Android L 之 RecyclerView 、CardView 、Palette

转: http://blog.csdn.net/xyz_lmn/article/details/38735117 <Material Design>提到,Android L版本中新增了RecyclerView.CardView .Palette.RecyclerView.CardView为用于显示复杂视图的新增Widget.Palette作为调色板类,可以让你从图像中提取突出的颜色. RecyclerView RecyclerView作为替代ListView使用,RecyclerView标准化