码迷,mamicode.com
首页 > 移动开发 > 详细

Android深度探索第一章心得

时间:2016-04-28 22:41:51      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

本章主要是对Android和Linux驱动做一个简单的介绍

第一节介绍Android 系统架构,一共分为四层,从下到上依次为:

1.第一层:linux内核,主要包括驱动程序以及管理内存、进程、电源等资源的程序。

2.第二层:C/C++代码库,主要包括Linux的.so文件以及嵌入到APK程序中的NDK代码。

3.第三层:Android SDK API,直接面向应用程序的JAVA APK

4.第四层:应用程序,直接面向最终用户的JAVA应用程序(APK程序)

第二节介绍Android移植的主要工作

Android移植可以分成两个部分:应用移植和系统移植。这本书中主要讲的是系统的移植。Android系统移植最主要实现的目标是让Android系统能够在一个特定的硬件平台上运行。Linux内核对于大多数常用的CPU架构都是支持的。Android对于平台上的各种硬件的支持工作也是由Linux内核来完成的,也就是用到了Linux驱动。所以对于系统移植来说除了移植CPU架构外,最主要的也就是要完成Linux驱动的移植。

抽象硬件层HAL(Hardware Abstraction Layer)是一个Android系统特有,用来使Android SDK通过HAL来直接访问Linux驱动。对Android进行增加或修改驱动的话,HAL的代码也必须进行更改。

但是不同版本的Linux内核的驱动不可以通用,必须修改源代码,并且在新的Linux内核下重新编译后才可以用在新的Linux内核上。所以在进行Linux驱动移植时,主要应该考虑的是Linux内核的版本,对于Android版本的话可以不予考虑。只要Linux内核版本相同,就可以在不同的Android上互相替换(有时也需要考虑HAL是否和Linux驱动容)。

第三节介绍查看linux系统的内核版本有两种方法,如下:

在 Linux 终端执行下面的命令  uname –a

在 Linux终端执行下面的命令  cat /proc/version

/proc:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 

第四节介绍 Linux内核版本号的定义规则

linux内核版本号由五部分组成:主版本号,次版本号,修订版本号,微调版本号及为特定的Linux系统特别调校的描述。

第六节介绍设备的分类以及特点

计算机系统的硬件主要由CPU,存储器和外设组成。驱动针对的是存储器和外设(包括CPU内部集成的存储器和外设)

Linux将存储器和外设分为三类,分别为字符设备(Character devices),块设备(Block devices),网络设备(Network devices)。

第七节介绍了Linux驱动:LED

任何的 Linux 驱动都有一个装载函数〈装载驱动时调用〉和一个卸载函数(卸 载驱动时调用〉即可。装载函数和卸载函数分别通过 mobule_init和 module exit宏指定。

Android深度探索第一章心得

标签:

原文地址:http://www.cnblogs.com/heluyuan/p/5444485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!