代码改变世界

Android深度探索第一章的一点体验

2016-04-24 19:26  1010101010  阅读(108)  评论(0编辑  收藏  举报

  Android是当今智能手机操作系统的主流,这取决于任何人都可以免费利用Andorid的源代码定制嵌入式系统。而它支持的设备并不多,所以就要移植。本书第一章主要介绍了关于Android系统移植和驱动开发的相关内容。

  Android系统构架主要包括四个层次,从下而上为:Linux内核,C/C++代码库,Android  SDK API,应用程序。其中在第二层有一个硬件抽象层(HAL)的概念,是普通的Linux程序库(.so文件),只是Android SDK通过HAL直接访问Linux驱动,这也是Android和其它Linux系统不一样的地方。

  Android移植可分为应用移植和系统移植,本书讲的是系统移植。首先是要移植CPU架构,还有就是移植Linux驱动。值得注意的是:在移植Linux驱动时,主要考虑Linux内核版本,就算Android版本不同,只要Linux内核版本相同,Linux驱动就可以相互替换。唯一可以判断Linux内核是否相同的方法就是Linux内核版本号。那内核版本号表示什么呢?

以2.6.29.7-flykernel-12a为例:

  2是主版本号,6是次版本号,29是修订版本号,7是2.6.29的微调,称为微调版本号,而flykernel-12a是该Linux内核专门为flykernel调校。

  任何的Linux驱动都有一个装在函数和一个卸载函数,为别通过mobule_init和module_exit宏指定。