《Android系统源代码情景分析》——移动开发中的九阳神功

 

Android系统源代码情景分析》——移动开发中的九阳神功

Android系统源代码情景分析》是本很不错的书,为什么这么说呢,这本书刚上市不久,就在几个同搞Android开发的朋友那里看到了了这本书,这绝对不是巧合,而是高质量内容对读者的魅力所在。把书借来读后确实也获益匪浅。

这次的试读章节是第二章,主要讲Android系统的硬件抽象层。以前搞开发只注重应用层编码,没有做更深入的了解,对于“硬件抽象层”也没有很清晰的概念,读了这一章之后,才真正明白“硬件抽象层”在Android系统中存在的必要性。

  Android的硬件抽象层,说白了就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节(就是不想让你知道)。也就是说,把对硬件的支持分成了两层,一层放在用户空间,一层放在内核空间,其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。

看上去把二者放在不同的空间貌似是多此一举,的确,把硬件抽象层和内核驱动整合在一起放在内核空间是可以实现的,但是,考虑到厂家的利益,事情就没这么简单了。

大家都知道Android是基于Linux的,Linux内核源代码版权遵循GNU License,在发布产品时,必须公布源代码。因此,如果Android把硬件抽象层和内核驱动整合在一起放在内核空间,那么Android发布时也要公开驱动程序的源代码,而公开源代码就意味着把硬件的相关参数和实现都公开了,这可是厂家的命根子,如果这种事情发生了,那厂家还靠什么吃饭?可口可乐不会把他的饮料配方告诉大家也是同样的道理。

正是如此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了。What’s moreAndroid源代码版权遵循的是Apache License,在发布产品时无须发布源代码,这样就可以把商业秘密隐藏起来了。

后面的章节还没来得及细读,不过很喜欢这本书的风格,市面上讲Android的书很少有将Android系统源码的,讲的东西大同小异,没有什么特点。而这本书却讲的很深入,很底层,有助于读者对Android系统的深入认识,用江湖上的话说,这本书教你的是“内功”,而不是一些简单的招式,有了深厚的内功,再学其他招式自然易如反掌。正如江湖中所推崇的“九阳神功”——融会贯通武学至理,练成后天下武学俯拾皆可用。

做了一年多的Android开发,感觉自己学的都是一些招式,对于系统级的东西知之甚少,很是惭愧,一些东西在看了本书之后才豁然开朗,所以非常希望能有一本《Android系统源代码情景分析》,有了这本武林秘籍,必定会让我的开发之路如鱼得水,在移动开发的江湖中所向披靡!

你可能感兴趣的:(android)