自動亮度的原理很簡單:手機中有一個光源感應器 , 系統根據光源感應器的感光強度來調整屏幕亮度 。問題的關鍵點在于對于某個感光強度 , 什么屏幕亮度是合適的 。
首先看一下原生系統的實現 , 系統中有一張預設的表(以G7為例)
【手機屏幕亮度自動調節功能是如何實現的】

當感光強度的值位于某個區間的時候 , 屏幕亮度為該區間對應的值 。舉例來說 , 當感光強度為800時 , 查表位于[400, 1000)這個區間 , 相對應的屏幕亮度為70 。
并且在原生系統的實現中 , 屏幕亮度是只變亮不變暗 。系統中維護一個當開啟屏幕后感光強度的最大值 , 屏幕亮度始終保持在這個最大值對應的屏幕亮度 。只有當關閉屏幕后 , 才重新開始計算最大值 。這就是為什么大家發覺到暗處后屏幕并不會自動變暗 , 而是要關閉屏幕后再開啟屏幕才能自動變暗 。
用一句話來總結原生系統的實現 , 就是很黃很暴力 。
接著調查一下CM的實現 , CM的中有很多和自動亮度相關的設置 , 但是最關鍵的一項設置就是允許用戶去定制系統預設的表 。
用戶可以任意去修改感光強度的區間范圍以及個數 , 以及某個區間對應的自動亮度 。以下表為例:

用戶修改[1000, 3000)這一區間對應的屏幕散裂亮度為120.此后當感光強度位于這一區間時 , 屏幕亮度的值始終為120 。
對于屏幕只變量不變暗的問題 , CM也提供了相應的設置 , 使得一段時間內 , 屏幕可以自動變暗 , 這一點我會在下面MIUI的實現中詳細展開 。
用一句話來總結CM系統的實現 , 就是很好很強大 。
最后回歸到MIUI的實現 , 首先必須提到MIUI的一個宗旨“易用 , 人性化" 。在開始設計自動亮度的時候也是圍繞這個宗旨而來的 。CM的確提供了最詳細的設置和最完備的功能 , 一切交給用戶 。但是一般認為絕大多數小白用戶不知道如何去使用這些 , 甚至很難理解這些功能是干嘛的 , 過于復雜 。希望能夠提供一個解決方案 , 即缺省的自動亮度能夠滿足絕大多數用戶的需求 , 同時有一個簡單的方式使得用戶可以調節 。這個簡單的寬睜方式就像用戶調節手動亮度一樣 。實現大略是:
(1)在MIUI中 , 采用了一個理論模型 , 這個模型是感光強度的平方根和屏幕亮度成線性關系 。

如上圖所示 , X軸是亮度 , Y軸是感光強度的平方根 , 其中當感光強度值為10000(平方根值為100)對應的屏幕亮度為255 , 0對應了0 。在這之間的滿足一個線性關系 , 比如說如果感光強度值為6400(平方根值為80) , 計算出的屏幕亮度為200 。在1.14的版本中模型與此稍有出入 , 當時是先獲取光源感應器能感應的最大感光強度 , 這個最大值對應了最高屏幕亮度 。對于N1和G7 , 這個值是10240 。對于MS , 這個值是27000 。這樣對于MS來說 , 缺省的自動亮度會偏暗 。后來查閱相關資料修正為這個模型 , 一般來說在白天日光照射下感光強度為10000左右 , 這個強度應該對應屏幕最亮 , 當超過這個強度后 , 屏幕一直保持最亮 。
猜你喜歡
- 一加7支持屏幕指紋識別嗎
- OPPO手機忘記密碼能刷機嗎?
- 蘋果x換了屏幕還有面容嗎 蘋果x換了屏幕還有沒有面容
- oppo手機忘記密碼怎么恢復出廠設置
- 蘋果xr怎么呼叫siri 蘋果xr如何呼叫siri
- 蘋果手機定位關閉后還能追蹤嗎 了解GPS
- oppo手機忘記密碼還可以開鎖嗎?
- vivox9怎么截屏 vivox9如何截屏
- 華為手機自帶瀏覽器在哪里 華為自帶瀏覽器叫什么
- 蘋果手機iphone 11掉電快正常嗎?
