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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM