Android深度探索HAL与驱动开发的第一章学习了android系统移植与系统开发详述。
正如书上的导言所说,,android已经成为当前智能手机操作系统的老大。所以其重要性可想而知,其学习的意义非比寻常。其发展的迅速,很大程度上取决于任何人都可以利用android的源代码定制完全属于自己的嵌入式系统,而不需要向Google交钱。而由于android原生的代码支持的设备不多,因此,要想在自己的设备(包括手机、智能电视、平板等)上完美运行android,就需要另外一些开发程序,使得android可以表示相应设备的硬件(显示器、蓝牙、音频等)。这个为特定设备定制android的过程被称为“移植”。同时在移植的过程中开发的最多的就是支持各种硬件设备的linux驱动程序。而第一张就是学习驱动的第一道门。
首先是android系统架构,包括四层架构,第一层是linux内核,它与其他linux系统的核心部分差异很小。这一层主要包括linux驱动程序以及内存管理、进程管理、电源管理等程序。第二层是C/C++代码库,这一层主要包括使用C/C++编写的代码库,也包括dalivk虚拟机运行时(Runtime)。第三层是Android SDK API,这一层是用java编写的各种library。第四层是应用程序层,这一层是所有的android用户都要接触到的,因此这一层相当于android的ui,所有的android应用程序都属于这一层,而这一层主要依靠第三次来完成各种功能。
Android移植的主要工作分为系统移植和应用移植。除了linux驱动需要移植外,android系统中还增加了一个硬件抽象层。移植的工作如果要移植的android系统提供了驱动源代码,就很简单,反之会比较麻烦。
Linux内核版本主要有三个可以通过两种方法识别。版本号的组成由主版本号,次版本号,修订版本号,微调版本号,特别的描述组成。由于内核版本更新较快,要想学会linux驱动开发,不但需要掌握可靠的知识,还应该不断的学习不断的努力。
Linux设备驱动分为字符设备,块设备,网络设备。
我的博客园地址
http://www.cnblogs.com/liang0202/