為什么說Android系統不適合物聯網應用?


在應題之前,有必要先說說何謂“物聯網”。

顧名思義,物聯網相對於互聯網所代表的計算機(包括服務器和PC終端)網絡化而言,是對萬物(非計算機)之間的組網連結。

兩者最核心的差異在於互聯網是人和人之間的聯網,而物聯網是物和物之間的聯網,因此移動計算,比如手機、平板這類終端,也應歸於互聯網范疇。

Android系統,從出生那天起,就是為更好的操作移動通訊設備而設計的。

在其后的發展中,他不斷的在多媒體方向和圖形顯示加速方面增強,比如更多的CPU核,更快的GPU,更高分辨率的Camera和LCD....

其目的在於提高人們播放高清視頻、玩游戲、刷朋友圈、自拍、購物消費、出行導航.....等方面的體驗和快感。

但對於物聯網來說,這些機制和功能完全沒有用處,因此將Android應用在物聯網設備上最大的問題就是其過於臃腫。

以Android 4.4為例(當前最新版為7.0),以下幾組數據可以作為參考:

  • Android的開發包中包含500多個git倉庫,僅framework文件夾內的文件總量就高達6萬個,總大小1.6GB。

  • 可供燒寫的固件總大小超過500MB。

  • Android啟動后,后台的進程總數超過100。

android arch

由於Android是一個開放系統,需要特別考慮對廠商APP的支持,並且對其安全問題大費周章,這些無疑都增加了Android系統的復雜性和冗余度。

從用戶體驗來說,用過Android手機的用戶都有這樣的體會和經歷:Android系統越用越慢和必須定期重啟以消除各種奇怪現象。

Android是為手機專門定制的一套系統,雖然他構建於Linux內核之上,但是他自身擁有龐大的HAL層用以消除不同硬件平台的差異。

因此,如果用戶希望從APP中訪問一些工控接口比如串口、IIC或CAN總線,那么將不得不自行編寫HAL層和JNI與APP交互。

Android出於多種考慮,重寫了C庫和系統初始化啟動過程,其配置非常繁瑣。

用戶將不得不依賴芯片廠商和服務公司提供這些配置和中間層驅動。

而大多數物聯網硬件平台,不具備手機/平板這些平台的功能,比如沒有LCD屏幕,使得Android無用武之地。

更多的硬件處理器連Linux都無法運行,惶論Android?

Android團隊也非常了解這一事實,於2015年推出Android/Brillo。作為一款被閹割的微型Android,Java虛擬機也被裁剪。在Android上運行的APP不得不重寫才能適應Brillo。這使得Brillo優勢盡失,變成了一款食之無味,棄之可惜的雞肋系統。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM