關於這個工具
用 USB 把 Android 手機接上 Chromium 系瀏覽器,這頁就會讀出設定 app 不會給你看的電池數字:電池出廠的設計容量、電量計目前量到的容量、已經數到的充放電循環次數,以及每秒更新一次的電壓、電流、由此算出的功率,還有電池自己的溫度。什麼都不會上傳。這頁是一個背後沒有伺服器的靜態檔案,數值從手機沿著 USB 線進到這個分頁,關掉分頁就不存在了。
為什麼 Android 沒有電池健康度畫面
iOS 從 iOS 11 就有「電池健康度」。Android 一直沒有對應的東西,原因是結構性的,不是忘了做:那個畫面要用的數字來自電量計晶片的驅動程式,而平台把它們當成選配。charge_full、charge_full_design、cycle_count 是核心 power-supply class 的屬性,驅動程式想公開就公開,不公開也可以——三個都沒有的手機,依然是完全合規的 Android 裝置。所以 Google 沒辦法把健康度放進設定裡,那會在相當比例的出貨機種上開天窗;公開 API 就停在電量、狀態、溫度與電壓。Android 14 總算加了官方的循環次數欄位,但要不要填仍然由廠商決定。
charge_full 到底量的是什麼
charge_full_design 是編進驅動程式裡的常數:電芯規格上的容量,也就是印在電池上的那個數字。charge_full 就不是常數了——它是電量計對「這顆電池從空到滿能吃進多少電荷」的當下估計值,會隨著它觀察完整充放電而重新學習。後者除以前者,就是任何一個 app 顯示的電池健康度,這頁也一樣。它兩個常見的行為也是這樣來的:深度放電之後跳個一兩個百分點,是電量計重新校正,電池本身沒變;有些裝置甚至會超過 100%,是電量計從一個保守的設計值往上學。這兩件事都是估計值的性質,不是電芯的性質,所以這頁選擇標示它,而不是抹平它。
為什麼兩支手機能顯示的細節差這麼多
有哪些屬性存在,取決於電量計晶片、它的驅動程式,以及廠商決定把驅動裡的多少東西露給使用者空間。高通平台和三星自家的電量計通常會給出那兩個容量欄位;不少聯發科機種則兩個都沒有。有些廠商把重要屬性放在叫 bms 或 battery_ext 的節點而不是 battery,這頁也會跟著找過去。三者之中,循環次數是罕見程度遙遙領先的一個。拿不到的時候,這頁會說是哪個來源沒有給——不會退而求其次去估,也不會把裝置沒回答的欄位寫成 0 mAh 或 0%,因為捏造出來的 0 跟一顆沒電的電池長得一模一樣。
百分比該怎麼讀,又不該怎麼讀
把它當成粗略的區間,不是量測值。設計容量的 80% 以上,對買了兩三年的手機來說很正常。60%–80% 之間你會感覺到續航變短,天冷或持續重負載時特別明顯。低於 60% 以後,手機會在需要瞬間大電流的場合——閃光燈、寒冷的早晨——明明還顯示有電卻直接關機,這個症狀才是真正該換電池的理由。這個數字沒辦法告訴你的是「從現在起還能撐多久」,那取決於你怎麼充電、手機多熱,而不是今天的比值落在哪。單一次讀值也看不出趨勢,一個月後再看一次。
你能控制的變數是溫度
鋰電池的老化來自兩件事:循環次數,以及在高溫且滿電狀態下待了多久。循環次數躲不掉,溫度則大半操之在你。即時面板把 40 °C 標成橘色、45 °C 標成紅色就是為此——持續在 45 °C 以上充電,容量掉得快到量得出來,這也是手機一熱就限制充電的原因。快充本身不如它產生的熱來得傷,所以一支戴著保護殼、放在溫暖窗邊充電的手機,比同一顆充電器放在涼快桌上傷得更多。一邊充電一邊看這裡的溫度曲線,光是拿掉保護殼的差別就看得出來。接下來:Web ADB 首頁有整台裝置的儀表板,精簡工具可以移掉在背景耗電的預載 app,儲存空間分析則處理另一個大家都會用完的東西。