标签:
《Android深度探索》(卷1)HAL与驱动开发读后感:
第一章:安卓系统移植与驱动开发概述
这一章主要概括的介绍了安卓驱动开发和系统移植的主要内容,对安卓与Linux驱动做了一个总体的介绍。通过对第一章的学习,使我对Linux驱动开发有了一个感性的认识。在学习过程中,首先,我通过以往上课时学习到的知识和查阅资料了解了一些专业词汇的含义(例如:.so文件:共享库,是shared object,用于动态连接;SDK:软件开发工具包;API:应用程序编程接口;HAL:硬件抽象层等),并在文中做了相应的标注,为以后更好的学习安卓驱动开发打下了基础。
其次在了解了一些专业基础的前提下,通过对第一章的学习我了解到,目前,安卓系统已经形成了非常完善的架构,主要包括Linux内核、核心库及环境(C/C++代码库和Runtime)、安卓软件开发工具包(应用框架)和应用程序。而Android移植可分为两部分:分别是应用移植与系统移植。本书主要介绍的是系统移植,是指让Android操作系统在某一个特定硬件平台上运行。这么做要求该操作系统支持硬件平台的CPU架构,还要让Android可以识别平台上的各种硬件。因此,系统移植除了移植CPU架构外,最重要的就是移植Linux驱动。除了Linux驱动移植外,安卓系统还独有HAL硬件抽象层,它位于安卓系统与Linux系统之间,在安卓访问Linux时起到作用。以此,安卓移植就分成了Linux驱动移植和HAL移植。
另外,通过对本章的学习我还了解到了一些设备驱动的发展。其实在软件发展的初期并没有驱动的概念,软件一般通过计算机上的各种元器件接口直接访问计算机,这样使得软件程序员必须掌握一定的计算机硬件基础及外部设备与计算机之间的通信协议。这样会造成软件与硬件耦合度过高。因此,提供抽象的应用程序编程接口的驱动被人们发明,他可以解决上述问题。实现软件与硬件的链接通信就由应用程序和驱动程序两部分完成了。
那么我们怎样才能学好Linux开发呢?作者提到,只要掌握一个Linux内核版本的驱动开发,而且建议是2.6或3.0x这类使用最广泛的,并且学好GNU C语言,其他版本的Linux内核也就容易学习了。
标签:
原文地址:http://www.cnblogs.com/Abagnale/p/5406627.html