為何安卓的“長截圖”質量不高?谷歌總算說出了原因

為何安卓的“長截圖”質量不高?谷歌總算說出了原因

文章圖片

為何安卓的“長截圖”質量不高?谷歌總算說出了原因

文章圖片

為何安卓的“長截圖”質量不高?谷歌總算說出了原因

文章圖片


在日常使用手機的過程中 , 我們有時可能需要分享一些比較“長”的屏幕截圖 , 比如長文、聊天記錄 , 或是某些軟件的完整界面信息等等 。

【為何安卓的“長截圖”質量不高?谷歌總算說出了原因】這時候大家首先想到的 , 顯然就會是手機上的“長截圖”功能 。 按下快捷鍵或特定的截圖手勢 , 然后等待屏幕自動滾動 , 再在合適的時候停止截圖 , 最終就會得到一張想要的長截圖 。
可為什么大多數時候 , 我們在手機上這樣操作得到的“長截圖” , 要么是有明顯的拼接縫 , 要么就是清晰度難以令人滿意呢?
是因為軟件不支持 , 還是安卓手機的長截圖功能本身就存在BUG呢?

其實 , 這兩個原因同時存在 。 就在不久前 , 谷歌對還處于測試階段的Android 16 QPR3“原生長截圖”功能進行了修正 。 同時谷歌就此也揭開了大部分安卓手機“長截圖”功能不好用 , 會容易降低畫質和出現BUG的原因 。
首先大家要理解一點 , 那就是在原生的、或者說谷歌自己的Android“原版系統”里 , 它的長截圖功能技術原理與大多數手機上廠商“魔改系統”完全不同 。

在原生Android系統上開啟長截屏 , 就會看到整個被渲染好的App界面
在原生Android系統里 , 假設某個App的“完整界面”相當于三個屏幕的高度 。 那么當它啟動時 , 應用其實會完整地渲染它的整個界面 , 只不過用戶只能看到當前設備屏幕所對應的“那一段” , 超出的高度則相當于是“顯示在了屏幕外面” 。

這個邏輯有點像當初錘子手機的“無限屏” , 也就是App的界面可以大于屏幕區域
很顯然 , 這樣的渲染邏輯就會產生兩個好處和一個缺點 。 好處是應用上下滾動時幾乎不會產生重新渲染導致的撕裂 , 同時一旦用戶需要“長截圖” , 那么系統就只需要將整個App的界面渲染信息“復制”一份 , 就能得到完整的、高清的圖像 。 這就避免了大多數手機上“滾動長截圖”時 , 因為分頁拼接而導致的畫面出錯和清晰度壓縮問題 。
它唯一的缺點 , 就是可能會帶來更高的內存開銷 。 不過大家都知道 , 原生Android系統本就比較“干凈” , 所以內存占用問題就相當于被抵消掉了 。
事實上 , 只有嚴格按照谷歌的官方開發規范 , 使用原生Android Webview引擎進行顯示的App才能兼容這種“渲染模式” 。 這也就是為什么會有一些App在原生Android系統下根本無法進行長截圖 , 是因為它們的開發方式“不規范” 。

同時 , 雖然原生Android憑借自身的“簡約優勢” , 能夠允許符合規范的App使用更多內存來實現“屏幕外渲染” , 并以此支撐高清畫質、無拼接痕跡的“長截圖”功能 。 但如果換成國內的那些“巨無霸”App呢?結果想必大家懂的都懂 。

正因如此 , 在大家日常所能接觸到的手機里 , 幾乎無一例外地都拋棄了谷歌倡導的這種本該BUG更少、畫質更高的App渲染和截屏方式 , 轉而用了更“老”、更“笨”的方案 。 也就是系統一邊自動滾動屏幕 , 然后一邊連續截屏 , 再一邊將這些截屏“拼接”起來 。 這種“滾動+拼接”的操作邏輯 , 正是造成大部分安卓手機“長截圖”畫面不正常的根源 。
話雖如此 , 但主流手機廠商又有什么辦法呢?畢竟他們既不能強迫軟件開發者都“按谷歌的規矩來” , 也不可能對用戶說 , “我們為了長截屏的清晰度 , 必須犧牲這一功能的兼容性” 。
【本文圖片來自網絡】

    推薦閱讀