想象一下:您所在的公司剛剛為一系列觸摸屏設備投入了大量資金用于定制 Linux 操作系統,因為該設備不存在硬件驅動程序支持。除了產品開發成本外,該公司還因必須自行管理操作系統并提供定期安全更新而產生了未來成本。
不幸的是,該項目最終以財務失敗告終。原因如下:
為自定義 Linux 操作系統提供更新是一項艱巨且成本高昂的任務。它需要深入的 Linux 知識才能將外部補丁與自定義更改合并,而不會破壞整個系統。然后,在構建操作系統之后,需要一個復雜的基礎架構來以安全可靠的方式分發這些更新。最后,設備端需要一個軟件組件來下載和安裝這些更新,這樣設備就不會變磚。所有這些都會在原始投資之上引入大量的經常性成本。
制造商可能很想完全跳過無線 (OTA) 更新功能,因為它實施起來太復雜了。但一項新的德國/歐盟法律現在要求對消費設備進行定期操作系統更新,否則公司可能會面臨違反保修的風險。Android 設備因不及時接收更新而臭名昭著,有時甚至根本不接收更新。
不幸的是,面對這些新法律,跳過 OTA 將不再是一種選擇。
然后是質量問題:在一個由 Android 和 iOS 主導的世界中,用戶期望設備具有一定程度的響應能力、對圖形的流暢感以及用于導航、打開應用程序和更改設置的標準化方法。正如全世界在開發第一臺 Mac 時從史蒂夫·喬布斯那里了解到的那樣,如果不大幅提高處理能力,就很難實現軟件的美感。而且,在嵌入式世界中,處理能力是有限的。
令人驚嘆的軟件還需要在可用性案例研究、開發工具、UI 標準、常見 UI 元素等方面進行大量投資。
對于三星這樣僅在 2020 年就售出 2.66 億臺智能手機設備,并且擁有龐大開發團隊的公司來說,上述成本是可以承受的。但對于一家只有 100,000 臺設備的小公司來說,這種類型的財務負擔可能會使整個產品無法生存。
但是,有一個選項可以使小型車隊的項目更可行:嵌入式 Android。
是什么讓嵌入式 Android 變得更好(或更糟)?
Android 基于經過修改的 Linux 內核,其中添加了許多功能,例如 WakeLocks 和 Early Suspend 等電源管理功能。
添加的一項改變游戲規則的功能稱為“Binder IPC”或“Binder 進程間通信”,有時被稱為 Android 的核心。與 Linux 發行版中使用的資源密集型方法(管道、套接字、內存隊列、共享內存等)相比,Binder IPC 是一種輕量級的進程間通信方法。
從開發人員的角度來看,Binder IPC 允許所有應用程序和系統組件擁有一個簡單的通信渠道。有時,開發人員甚至不必知道哪個應用程序將執行特定操作(例如打開相機或發送電子郵件)——Android 將負責將用戶請求從一個應用程序傳遞到另一個能夠滿足它的應用程序.
Android 還具有應用程序沙盒和SELinux以提高安全性,更不用說一組豐富的包含組件,可以更輕松地處理圖形、資源、通知、網絡、位置、電話等。
對于具有觸摸屏和 GUI 功能的設備,Android 顯然是 Linux 的贏家。
但是,使用 Android 作為嵌入式操作系統也有其自身的挑戰。
在專業嵌入式應用程序中使用標準 Android 的挑戰
想要將 Android 移植到嵌入式系統時會遇到一些挑戰。
Android 的 C 庫(仿生)并非 100% 符合 POSIX。這有時會使引入外部代碼變得困難。而且 Android 的文件布局也不符合 Linux 的文件系統層次標準。
Android 不能在開箱即用的自定義嵌入式系統上運行。大型手機制造商可以負擔得起大型軟件開發團隊,他們從 Android 開源項目 (AOSP) 分支出來并根據自己的需要對其進行定制。
AOSP 很大。它有800多個項目。下載代碼需要250GB 的硬件空間。構建一個操作系統版本需要另外 150GB。構建過程可以運行數小時。
即使對于經驗豐富的 Android 開發人員來說,這個過程也是緩慢而復雜的。對于 Android 技能為零的團隊來說,這幾乎是不可能的。
因此,對于希望從 Linux 轉向嵌入式 Android 的公司來說,這是一條捷徑。很多這些公司可能坐擁數十年的內部開發的定制嵌入式 Linux 庫。
但對此有新的認識是,如果公司計劃將 OTA 更新功能出售給歐盟消費者,則必須將其包含在未來的物聯網設備中。這已經成為整個歐盟新車的強制性要求。構建有效的 OTA 和 FOTA(Firmware Over The Air)基礎設施需要巨大的初始工作負載,以促進自動構建、代碼簽名、上傳和未來的更新管理。對于能夠通過 OTA 更新的設備,需要構建設備配置系統以及安全的固件安裝引擎。當發現漏洞時,必須盡快提供安全補丁。
公司還需要為硬件故障、更新回滾和軟件錯誤做好準備。
遺憾的是,谷歌官方將 Android 移植到嵌入式的 Android Things 已被關閉。這進一步加劇了嵌入式 Android 缺乏硬件支持的情況。
在某些情況下,Linux 硬件支持可以說被認為更好。但是Android是建立在Linux之上的,也就是說,如果Linux支持的東西,原則上Android也可以支持。但是,由于應用程序接口的抽象級別很高,可能很難將硬件支持應用到實際應用程序中。
此外,Android 最初是為具有固定設置(小屏幕、預定義的連接模塊、硬件按鈕、WiFi 等)的設備設計的。將此配置更改為不同的配置是可能的,但如果產品的硬件發生變化,則可能需要恢復以前的更改并從頭開始開發。
從本質上講,如果嵌入式 Android 是由經驗豐富的 Android 開發人員團隊構建的,那么它比 Linux 具有許多優勢。當然,從理論上講,開始使用 Android 就像選擇一個好的原型設計套件來學習一樣簡單——比如 RockPi、Raspberry Pi 或 i.MX8 SBC 之一。但是,需要一支經驗豐富的 Android 開發人員團隊來大規模構建任何設備規模的東西,其中還包括更新新推出的操作系統所需的 OTA 基礎設施。
為任何機隊規模構建可擴展的嵌入式 Android 操作系統
嵌入式 Android 挑戰的更有效解決方案通過提供可根據底層硬件要求輕松修改的可定制 Android 發行版來應對這些挑戰。例如,emteria.OS是完整形式的 Android。開發人員會收到 AOSP 的擴展版本,但帶有額外的接口、組件和應用程序,可提供許多開箱即用的企業級元素,例如:
OTA更新申請
發布版本控制
操作系統和應用程序的簽名,包括自定義密鑰
私人應用商店
遠程訪問
信息亭模式
移動設備管理 (MDM)
根訪問權限
下圖中可以看到其中的一些功能。
emteria.OS 堆棧的簡化示意圖。(來源:emteria GmbH)
雖然是emteria。操作系統根據任何給定的BSP或OEM的要求進行修改,處理MDM、OTA和FOTA的底層基礎設施不需要修改。因此,該操作系統與數百萬現有應用程序和庫保持兼容,而更新在emteria的服務器上處理,并由fleet manager按自己的時間表推送到設備上,通過web瀏覽器控制。
盡管安卓作為嵌入式系統越來越受歡迎,但由于缺乏面向小型車隊的專用操作系統供應商,該行業仍然支離破碎,并為有缺陷的軟件打開了大門,這些軟件可能會在新的歐盟制度下引發保修條款。
從更大的角度來看,缺乏適合中型嵌入式設備的高度可定制、開發人員友好和用戶友好的操作系統,已成為物聯網領域不斷增長的需求中創新的主要障礙。嵌入式安卓的更新版本,如emteria。操作系統是向嵌入式安卓領域標準化邁進的一步,將安卓的功能以很低的成本提供給原始設備制造商。通過減少現有的創新障礙,更有效的嵌入式安卓版本使解決方案構建者能夠專注于增加客戶價值,而不是解決操作系統挑戰。
審核編輯 黃昊宇
-
嵌入式
+關注
關注
5096文章
19208瀏覽量
308460 -
Android
+關注
關注
12文章
3946瀏覽量
128119
發布評論請先 登錄
相關推薦
嵌入式主板的概述與發展

新手怎么學嵌入式?
什么是嵌入式人工智能

飛凌嵌入式RK3576核心板已適配Android 14系統

飛凌嵌入式FET527N-C核心板現已適配Android 13

評論