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

飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿結(jié)束

飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」議程公布

嵌入式主板的概述與發(fā)展

新手怎么學(xué)嵌入式?
什么是嵌入式人工智能

飛凌嵌入式RK3576核心板已適配Android 14系統(tǒng)

飛凌嵌入式FET527N-C核心板現(xiàn)已適配Android 13

什么是嵌入式?一文讀懂嵌入式主板
AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列
嵌入式主板是什么意思?嵌入式主板全面解析
如何從模擬輸入設(shè)備切換到數(shù)字輸入設(shè)備

何時(shí)切換到集成負(fù)載開關(guān)

評(píng)論