Android底层接口与驱动开发技术详解
上QQ阅读APP看书,第一时间看更新

1.2.1 雾里看花的开源

在Android刚被推出时,只能用Java语言开发应用程序,这就需要所有的应用程序都运行在一个巨大的虚拟机上。2009年6月,Android发布了NDK工具包,可以支持C/C++语言编程,但是性能不如SKD工具包中的Java语言。

2010年2月,在开源界发生了一件大事。Linux Kernel的维护者Greg Kroah-Hartman宣布,将Android代码从Linux kernel代码库中删除,此事对于普通用户可能并没有什么影响,但对于开发者来说,尤其是开源社区的开发者来说,这算是一颗重磅炸弹。消息公布以后,外界普遍觉得惊讶和可惜。好不容易,才有了一个这么受欢迎的开源手机系统,应该齐心协力、共同开发才对,为什么要“窝里斗”呢?到底是什么矛盾,使得Linux Kernel小组剔除Android代码呢?

从Linux 2.6.33版本开始,Google智能手机操作系统Android核心代码全部被删除。这是因为提倡开源的Android在Linux面前使用了雾里看花的把戏,它修改了Kernel内核,但是又不提供修改的细节,这相当于自己搞了一个封闭的系统。尽管Android取得了空前的成功,但是Google也放弃了构建一个真正开源的手机系统的机会,从而也就不能获得由全世界程序员提供智慧、分享代码和推动创新的好处。由此可见,是因为Android的不真正开源,所以才被从Linux体系中删除的。

Android与Ubuntu、Debian、Redhat等传统的Linux发行版本相比,只有系统的底层结构是一样的,而其他东西在Android中都不一样,尤其是程序员的编程接口是完全不同的。所以必须重新写Android应用程序后才能使用,现存的Linux程序无法移植上去。由此可见,Android是一种全新的系统,它与Linux的距离很远。