對 Sony 使用者來說,Android 6.0 的 Doze 模式降低了電池效能

一直以來,對於客制化過的 ROM 和原生 Android 之間的比較,一直都有很大的爭論。就像我一樣,我也偏好原生的系統 (是指 Sony-stock,不是 CM xD)。 Google 一直試著整合使用者在不同裝置上所體驗到的優點,而且通常社群裡大家都會比較喜歡 Google 原生的功能勝過於已經放在 OEM 客製化過的系統裡的功能。

對 Sony 使用者來說,Android 6.0 的 Doze 模式降低了電池效能

一直以來,對於客制化過的 ROM 和原生 Android 之間的比較,一直都有很大的爭論。就像我一樣,我也偏好原生的系統 (是指 Sony-stock,不是 CM xD)。

Google 一直試著整合使用者在不同裝置上所體驗到的優點,而且通常社群裡大家都會比較喜歡 Google 原生的功能勝過於已經放在 OEM 客製化過的系統裡的功能。

以多視窗(Multi-window)來說,Samsung 原本就已經在不少 Galaxy 裝置裡面放了這個功能。當然我個人並沒有擁有任何 Samsung 裝置,所以我也還沒體驗過多視窗的功能。不過之後 Android N 即將提供這個功能,Google 實作的多視窗功能會比 Samsung 做得好嗎?目前的比較顯示,Android N 的多視窗功能還需要一些改進才可以媲美 Samsung 的多視窗,但公平來說,在 Android N 正式發布前還有幾個月,所以我們目前並不能說 Android N 的多視窗功能一定不會比 Samsung 的好。

但如果 Google 的多視窗功能做的並沒有 Samsung 的好,卻又蓋掉 Samsung 原生的功能怎麼辦?對 Samsung 使用者來說,不就得到了一個閹割版的多視窗功能?其實這就是目前 SONY 的 STAMINA 模式所遇到的問題。

STAMINA Mode 沒電了

在 Android Marshmallow (Android 6.0) 推送到 Sony Xperia 裝置之前,就有一些用戶注意到 STAMINA 模式不見了。而 SONY 對此提供的說法是:

Marshmallow 版本的 Android 有它自己的電源管理模式(Doze 和 App Standby)。這些功能被直接整合在 Android 6.0 裡面,也就使得 STAMINA 模式變的冗餘;換句話說,STAMINA Mode 被從 Android M 移除了。

從這段文字並不難看出為什麼 SONY 會拿掉 Android Marshmallow 裡的 STAMINA 功能。Doze 模式使得 SONY STAMINA 模式的存在變得沒有必要,而且 SONY 並沒有其他選擇,因為 Doze 模式是通過 Google CTS 的一個必要項。要是不通過 Google CTS,裝置就不能預載 Google Apps (包括 Play Store)。

8.3. Power-Saving Modes

所有不受 Doze 模式和(或) App Standby 控制的 App 必須讓使用者看的見。此外,省電模式中全域系統設定裡觸發、維護、喚醒的演算法不得偏離 Android Open Source Project。

回到 SONY 的說法好了。SONY 說 Android 6.0 的 Doze 模式和 App Standby 使得 STAMINA 模式變的冗餘,這是一個奇怪的說法。相反的,SONY 從 Android Lollipop(應為 Jellybean) 就有的 STAMINA 模式早就能夠媲美 Android M 的 Doze 模式。事實上,Android M 的 Doze 模式跟 STAMINA 相比還使得電池續航力沒那麼好呢。

電池續航力戰爭

所以 Sony STAMINA 模式有多厲害?根據 SONY,這個功能限制住不必要的背景活動,以在平常節省一堆電量。他們用這張圖解釋了 STAMINA 模式如何省電:

Before STAMINA
↑ STAMINA 前

After STAMINA
↑ STAMINA 後

看起來很眼熟嗎?

Doze Mode

其實從圖上很難看出到底 STAMINA 模式比較強還是 Android Doze 模式比較強。所以接著來看看 Doze 模式和 STAMINA 模式是怎麼運作的吧。

STAMINA 模式

STAMINA 模式是這樣運作的:當你關掉螢幕的一分鐘後,系統會阻止所有網路資料傳輸,並避免背景活動喚醒系統。當你打開螢幕,所有活動會繼續運作。系統沒有停用網路傳輸,所以你打開螢幕的當下你就會收到所有剛剛被攔截的通知。特別的活動像是電話、簡訊、日曆通知和鬧鐘一樣會通知(因為他們呼叫了 Android 標準的 AlarmManager)。

但如果有一些重要的 App 你也想要即時收到他的通知怎麼辦?這種情況,你可以把它加入 STAMINA 模式的白名單裡,如此系統就不會去限制它。此外,要是你對 STAMINA 模式沒興趣,你也可以直接把它關掉。

STAMINA

Doze 模式

那 Doze 模式又是怎麼做的:

當螢幕關掉後,如果電量正在流失,而且手機是靜止的,那裝置就會進入 Doze 模式。當裝置進到 Doze 模式後,所有沒有被使用者加入電池最佳化白名單的 App 的網路存取、喚醒(wakelock)、標準 AlarmManager alarm、WiFi 掃描、同步 adapters 等都會被延遲,直到下一次系統喚醒手機(Maintenance Window)並允許這些動作跑一段時間。

聽起來跟 STAMINA 模式很像?以下是主要的不同:

  • Doze 模式只有在靜止的時候才會啟動(例如放在桌上,放口袋不算)
  • Doze 模式只有遇到高優先的 GCM 訊息(通知)才會被中斷。如果你喜歡的 App 的通知不是高優先的 GCM 怎麼辦?可惜,你得等下次的 Maintenence Window 了。
  • Doze 模式的白名單並不會真的排除該 App 的所有限制
  • Doze 模式不能停用。在 Android 6.0 上你的通知遇到問題嗎?可惜。

STAMINA 模式曾經有很棒的功能,甚至還被移植到各個裝置上(有個 Xposed 模組叫 Power Nap)。STAMINA 模式可以透過調整白名單而更積極或保守,然而 Doze 模式讓開發者只能碰運氣去嘗試什麼情況下它的 App 能夠正常運作。

STAMINA 模式回來了?

約一個禮拜前,有使用者回報說他們在 beta 版的 Marshmallow 更新看到了 STAMINA 模式。有部分網站把這些截圖拿起來並寫成文章。有些使用者發現 STAMINA 模式的效用減少很多。

STAMINA 2STAMINA 1STAMINA 3

STAMINA 4

以上是來自 Reddit 的部分截圖。但事實上,它幾乎只是從 Android Lollipop 就存在的省電模式,並不是跟 Doze 模式競爭的那個 STAMINA 模式。為了讓所有 OEM 廠商都有這個 Doze 模式,Google 事實上強迫了 SONY 去改變 STAMINA 的運作模式。就作者的觀點,他認為 Android N 的 Doze 模式會比 Sony 的 STAMINA 模式還要猛;然而 Android M 的 Doze 模式的確是還差 Sony 一步。

Android N Progress

不幸的是,Xperia 用戶要等到 Android N 還有一大段路呢。等到 Android N 正式發布,至少還要等到第三季。

再看看 SONY 花了四個月才把 Marshmallow 放到 Xperia 旗艦機上 (Xperia Z5),我們是不是在 2017 才看的到 Android N?那只能升級到 Android M 的裝置怎麼辦?

原文為 For Sony, Android 6.0’s Doze Mode Marks a Battery Life Regression | Mishaal Rahman@xda,此文僅翻譯並加上個人觀點。

我們正降低廣告比例以提升閱讀體驗。如果你喜歡這篇文章,不妨按下 Like 按鈕分享到社群,以行動支持我寫更多文章。 當然,你也可以 點此用新臺幣支持我,或 點此透過 BTC、ETH、USDC 等加密貨幣支持我
分享到: