nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
大家一提到嵌入式就是linux、講到android就認為是java,以為android已經不是linux了,各種應用都是android API開發的,而android API基本上是java的。大家這么認為也無可厚非。
其實android是架在linux 上的,無linux android那就是空中樓閣。我們簡單理解這兩個系統都有那些組成
嵌入式linux:大部分人認為是這樣的uboot + kernel + file system + UI(QT、DirectFB)
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
嵌入式android源碼架構:uboot + kernel + android(包含文件系統,虛擬機,UI)
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
當然兩者的linux 內核因為上層UI的不同會稍有差別,不過還是非常接近的,做過linux的人可以無縫切換到android底層開發,所以大家說的學習android系統,其實最重要的就是學習linux驅動,再加一下android下的專門的HAL,JNI,java等等。
底層開發(引導+內核)基本上是相同,更是相通的。那為什么android系統一經推出逐步取代嵌入式linux呢? 同樣是開源,差別就這么大呢? 我們就重以下幾點來聊聊。
一、界面
用戶看到的東西,在程序開發它叫UI,嵌入式linux,都搞了這么些年UI是它的硬傷,你可以用QT我可以用DirectFB或者OpenGL沒有統一,UI體驗好壞直接影響用戶的直觀感受。
二、開發方式
嵌入式linux基本都是芯片廠商給一系統和硬件驅動代碼整合在給你移植一個GUI,你想用什么東西,對不起請google,找開源軟件自己移植,沒有統一開發模式。這樣就會導致我們糾結在用這個GUI或這其它效率更高,開發難度可想而知,我專門負責UI交互的不得不啥都得懂,linux系統我要會用,C/C++我要會寫,剩下的我UI還的學習特定的API。能給我去真正搞用戶體驗功能又有多少時間?android以上這些都不要要的啦!android系統都干好了這些事,你只要懂java,android API分分鐘就懂了的。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
那我們到底該選擇嵌入式linux還是android呢?其實從市場上已經得到了結果,現在都說自己的東西是智能產品,還是原先那套東西不過用上的android系統,能運行各種app,它就是智能產品了,你們覺得呢?
如果內心還有編程的夢想,或者學習過程中遇到的困惑,問問編程到底是咋回事,想深入學習編程,獲取編程里面那點事,可以關注老碼農的微信公眾號:程序員互動聯盟(coder_online),里面集結了眾多的自學編程以及編程高手,問下如何自學。
本文屬原創,禁止轉載,謝謝!