大家一提到嵌入式就是linux、讲到android就认为是java,以为android已经不是linux了,各种应用都是android API开发的,而android API基本上是java的。大家这么认为也无可厚非。
其实android是架在linux 上的,无linux android那就是空中楼阁。我们简单理解这两个系统都有那些组成
嵌入式linux:大部分人认为是这样的uboot + kernel + file system + UI(QT、DirectFB)
嵌入式android源码架构:uboot + kernel + android(包含文件系统,虚拟机,UI)
当然两者的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分分钟就懂了的。
那我们到底该选择嵌入式linux还是android呢?其实从市场上已经得到了结果,现在都说自己的东西是智能产品,还是原先那套东西不过用上的android系统,能运行各种app,它就是智能产品了,你们觉得呢?