Android深度探索(卷1)HAL与驱动开发学习笔记(1)

第一章Android系统移植与驱动开发概述

    Android的系统架构分为四层:Linux内核(Android使用Linux2.6作为内核)、C/C++代码库、Android SDK APIJAVA编写的Library、应用程序。

    Android移植分为系统移植和应用移植,Android的系统移植中,Android在不同的cpu架构之间不需要做过多的改动(有时仍需要一些调整),为了可以让Android支持不同的硬件平台,还需要进行Linux驱动移植。Android系统中还增加了一个硬件抽象层HALHardware Abstraction Layer),Android通过HAL访问Linux驱动。如果增加了新的驱动或对原先的驱动进行了更改,则需要对HAL进行更改。在进行Linux驱动移植的时候,主要考虑Linux内核版本,Linux内核版本相同驱动就可以相互替换(驱动与HAL兼容的情况下)。

Linux内核版本的查看

1.手机Android---设备---关于手机

2.Linux内核版本查询

    方法一:uname -a

 

 方法二:cat /proc/version

 

    linux内核版本号由主版本号,次版本号,修订版本号,微调版本号,为特定的Linux 系统特别调校的描述。

     Linux将存储器和外设分为三大类,字符设备、块设备、网络设备。Linux内核与网络设备的通信与字符设备和块设备的通信方式完全不同,网络设备面向数据包的接收和发送而设计。可以将字符设备和块设备归为一类,它们都是可以顺序/随机地进行读取和存储的单元,网络设备是特殊设备的驱动,它负责接收和发送帧数据,可能是物理帧,也可能是ip数据包,这些特性都有网络驱动决定。

原文地址:https://www.cnblogs.com/zhangnene/p/5408677.html