← 技術文章
Android BSP · 系統精簡 · 工業 IoT
系統優化三部曲 · 第一部

移除 Android 預載 App,工業設備實際省下什麼?

常見的 Android BSP 為了讓 reference board 能完整驗證功能,常以手機或車載場景為基礎,為泛用驗證場景保留了較完整的預載套件。對沒有操作員、沒有螢幕互動的工業無人值守設備來說,這些幾乎用不到,卻佔空間、佔記憶體、拉高 OTA。但精簡的重點從來不是「砍越多越好」——而是砍對地方、用對方法,並用數據證明沒有弄壞任何東西。

重點摘要
  • 這些預載 App 多半是為「有人在用的消費裝置」設計,工業設備用不到。
  • 關鍵不是砍多少,而是用平台正規機制、只拔互動 UI、保留底層服務,且全程可逆。
  • 我們量了四個面向:分區體積、OTA、記憶體、開機,誠實區分哪些有效、哪些沒效。
  • 分區與 OTA 明顯縮小、常駐行程與可用記憶體改善;開機時間幾乎不變——我們照實寫出來。

這些預載 App,大多是為「消費裝置」設計的

許多工業 Android 專案的起點,是 SoC 原廠、模組廠或 ODM 提供的 BSP。為了能在 reference board 上展示完整功能,這套 image 通常以手機或車載為基礎,預載了瀏覽器、相簿、音樂、行事曆、語音助理,以及各式各樣的測試與診斷 App。

這在開發階段沒問題。但工業 IoT gateway、Edge AI box、HMI 或強固型設備,常常被放在機櫃、工廠牆上或偏遠站點,現場沒有人、也沒有人會去點這些 App。它們不會被用到,卻持續佔用儲存空間、常駐在背景吃記憶體,並讓每次 OTA 更新包變得更大、更慢。

精簡的關鍵不是「砍多少」,而是「怎麼砍」

把預載 App 拿掉聽起來很簡單,但隨便砍很容易把設備弄壞。我們的做法有三個原則。

1. 只拔互動 UI,保留底層服務

很多 App 其實分成「使用者介面」與「背後的系統服務/資料提供者」兩層。例如電話撥號介面可以拿掉,但通訊的底層堆疊要留;聯絡人 App 可以拿掉,但聯絡人資料庫服務不能動。砍錯層,就會連帶讓其他功能失效。

2. 用平台正規的移除機制

Android 建置系統有正規的套件移除機制。用對它,移除才會在正確的階段生效;若只手動調整清單、或用非建置系統預期的方式,反而會踩到建置系統「延遲合併」與「唯讀變數」之類的雷——看起來改了,實際上沒生效,甚至把該保留的也一起拔掉。把機制用對,是這類工作能不能可靠、可維護的關鍵。

3. 全程可逆

每一項移除都應該可以還原。不同產品線、不同客戶、不同版本,對「哪些該留、哪些該砍」的取捨不一樣;可逆的設計讓同一套基線能安全地長出多個版本。

我們量了四個面向,而不是只喊「更輕量」

優化最怕只報漂亮數字。我們把精簡前後實際拿到設備上量了四個面向,用相對幅度來看。

儲存空間

系統分區明顯縮小,整體約少一成。對儲存吃緊、或想保留更多空間給資料與日誌的設備來說,這是實打實的回收。

OTA 更新包

壓縮後的 OTA 包也明顯變小(約一成多)。對要透過 LTE 或受限頻寬遠端更新一整批現場設備的場景,更新包越小,下載越快、失敗率越低、頻寬成本越省。

記憶體

移除那些會在背景常駐的服務後,背景常駐行程數明顯下降(約三分之一),可用記憶體也跟著上升。值得一提的是:因為作業系統會把釋放出來的記憶體拿去當快取,「已用記憶體」這個表面數字幾乎不動——要看「可用記憶體」與「常駐行程數」才看得出真正的差別。

開機時間

這一項我們要誠實講:穩態冷開機時間幾乎沒有改變。冷開機主要由 kernel、周邊 HAL、系統服務的啟動序主導,移掉那些非開機關鍵的 App,對開機速度的影響很小。這不是失敗,而是代表瓶頸不在這一層。如果有人告訴你「移除 App 就能大幅縮短開機」,那通常需要更仔細地分清楚是哪一段時間被優化到。

為什麼「誠實量測」比「漂亮數字」重要

工業客戶要的是一個可預期、可驗證的平台,不是行銷話術。把沒效的項目(開機)也照實寫出來,反而更能說明這是工程,而不是包裝。

同樣重要的是:每一輪移除之後,一定要把映像燒回真實設備驗收——開機正常、關鍵功能(定位、遠端連線、核心服務)全部保留,沒有任何回歸,這次精簡才算數。砍得乾淨但功能壞掉,不是優化,是事故。

結論:精簡是「減法工程」,重點在判斷與驗證

系統精簡不是炫技,而是把不屬於這個產品的東西安全拿掉,並用數據證明沒有弄壞任何東西。難的地方不在「會不會砍」,而在於判斷什麼能拔、什麼不能拔,用對機制,並在真機上量化驗證。

這正是 App 底下那層平台工程的價值所在。對量不大但技術需求深的工業 Android 團隊,CoreEdge Lab 就是把這層「減法工程」做得乾淨、可量測、可還原的技術夥伴。

如果你的工業 Android 專案需要把泛用 BSP 轉成可量產、可維護的產品基線,CoreEdge Lab 可以協助做系統精簡、驗證與 OTA 風險控管。