tft每日頭條

 > 科技

 > 安卓有哪些鮮豔的壁紙

安卓有哪些鮮豔的壁紙

科技 更新时间:2024-09-18 23:02:38

無論是 Android 還是 iOS 系統,每隔一段時間就會出現奇怪的 Bug 導緻手機卡死甚至不斷重啟無法開機。Bug 的元兇有時候是奇怪的 Emoji,有時候是其他國家比較少見的文字導緻的排版問題,而最近 Android 系統碰上了新「玩法」:隻要你把這張圖片設為壁紙,手機就會不斷重啟,甚至會清空手機數據(所以千萬不要嘗試)!

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)1

這張圖片已經過處理,不會導緻死機

Bug 症狀

就是上面這張圖片最近在推特、微博等平台廣為流傳,最初人們都把它當做是玩笑,但部分不信邪的用戶「作死」後紛紛發出自己手機的慘狀。他們中有屏幕不斷閃爍的,有直接進入 Recovery 恢複模式的,甚至有直接清空數據恢複出廠的,後果可謂非常嚴重。這其中又以谷歌和三星手機數量最多,詳細的原因後面我們會談到。

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)2

中招的手機

這張壁紙是裁剪成手機比例的圖片,分辨率為 1440*2560。我們用谷歌搜索這張圖片,會發現相似圖片裡面有橫屏的原圖,再次搜索這張原圖則隻有 4 個結果,對比可以發現這張圖最早由 hdqwallpaper 上的一位攝影師拍攝上傳。我們把原圖下載下來之後查看 EXIF 信息,可以看到這隻是張普通的風景照。

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)3

攝影師拍攝的原圖

非常神奇的地方在于,把這張原圖設為手機壁紙也會導緻手機屏幕閃爍重啟,這樣排除了有人在裁剪後的手機比例圖片上做手腳的可能,是圖片本身的問題。但在相冊裡查看圖片,把圖片截圖後再設為壁紙都不會有任何不好的後果。

Bug 原因

那麼這個奇怪的壁紙 Bug 是怎麼産生的呢?著名 YouTuber Mrwhosetheboss 花了三天時間找到了答案:照片上的一個像素令 Android 顔色管理庫壓縮色域時産生了錯誤,從而導緻 SystemUI 崩潰。Mrwhosetheboss 甚至還找到了這個像素:

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)4

導緻錯誤的像素,來源:Mrwhosetheboss

Android 原生自帶的顔色管理庫隻支持 sRGB 色域(Android 8.0 之後支持廣色域管理,但必須開發者手動給應用 Activity 啟用才行),而通過圖片查看軟件我們可以看到這次産生 Bug 的照片本身是 ProPhoto RGB 色域,兩個色域的關系可以看下面這個圖:

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)5

兩個色域的對比,來源:維基百科

我在《顯示器完全指南》的第一章(可免費試讀)中有講解過色域,簡單來說就是色域表示顯示設備能顯示的顔色範圍,采用相同色域的顯示器能夠比較好地顯示 / 打印相同的效果,避免同一張圖片在不同顯示設備中顔色不同。

這樣 Android 手機想要把圖片正常顯示就必須把比較廣的 ProPhoto RGB 色域通過算法壓縮到 sRGB 色域,因此會導緻圖片顔色變淡,我們可以通過微博上傳剛剛下載的原始圖片來查看轉換效果(因為微博也不支持 ProPhoto RGB 圖片),正因為如此微博上下載的這張圖一般也搞壞不了你的 Android 手機。

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)6

微博上傳效果

當壓縮到上面提到的那一個像素時問題就出現了,按照系統自帶轉換像素亮度的算法,像素亮度共有(0-255)256 個階級,這個像素轉換之後像素亮度應該是 254:

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)7

轉換算法與轉換後的像素亮度

但為了避免最後的數字是浮點數(小數),這個算法好死不死有個取整數步驟,把紅綠藍三個子像素取整到下一個整數,這樣加起來最後得到了 256 這個并不存在的像素亮度:

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)8

取整後的像素亮度

于是系統就不知道該怎麼應對這種沒見過的情況,加上谷歌本身并沒有為這種情況寫好解決方法,所以程序就會抛出(try)錯誤,同時由于沒有捕捉(catch)到錯誤于是顔色管理部庫在的 SystemUI 系統界面便會崩潰,便産生了我們看到的不斷閃屏和系統自救進入的 Recovery 模式。

這個 Bug 的産生,隻是因為一張圖片上一個像素與算法的「巧妙結合」。其實手機系統異常複雜,總有些邊邊角角會導緻各種奇怪的問題,但發現問題後修複也很簡單,我和 Mrwhosetheboss 還有其它知道原因的人,第一反應就能得出解決方法,隻要給轉換後的像素亮度加一個 if 判斷,大于 255 就設置為 255 就可以了。

這也解釋了為什麼很多國産手機和魔改了 Android 系統的手機能夠「免疫」這個問題,他們的程序員或是因為要實現廣色域管理等原因重寫了顔色管理庫,也有可能順手加上了一個 if 判斷,從而避免了錯誤的發生。

解決方法

很多「手賤」的用戶最後不得不舍棄自己手機上的數據恢複出廠設置,或者直接送去手機店修理,但其實我們還有方法可以拯救中招的手機。

開機後趁屏幕黑屏時雙擊電源鍵打開相機,接着長按開機鍵出現電源菜單,長按關機 / 重啟會彈出安全模式提示,确認後手機會自動重啟進入安全模式。

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)9

進入安全模式

如果手機沒有電源鍵雙擊打開相機功能或者開機後無法操作,可以開機時一直按住音量鍵(上 / 下,有些手機需要按特定次數,可以用搜索引擎搜索「機型 安全模式」),這樣手機便會進入安全模式。

進入安全模式之後壁紙會變成默認的,這個時候手機便可以正常操作。我們解鎖手機,打開系統設置 → 應用 → 應用管理,在應用列表中找到我們的默認桌面和鎖屏(如果有的話,有些手機需要在右上角選擇「顯示系統應用」),把它們的應用數據清除。

安卓有哪些鮮豔的壁紙(這張壁紙可能會導緻你的)10

清除相關應用數據

這樣我們會丢失掉桌面布局等桌面數據,但正常重啟之後壁紙會變成手機默認壁紙,這樣一台中招的手機就搶救回來了。

小結

手機系統是非凡軟件工程成就,裡面錯綜複雜,即使大公司擁有千千萬萬的工程師也無法面面俱到。每隔一段時間肯定會有新的奇怪玩意導緻我們手機出問題,所以平時我們在上網的時候要注意管住自己的好奇心,不要輕易嘗試轉發、複制、下載各種奇怪的字符 / Emoji / 圖片,不然很可能就要和自己愛機上的數據說拜拜了。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved