首先了解到Android系统架构是由四层构成:其中第一层是Linux内核,他的作用是负责Linux的驱动程序以及内存、进程、电源等管理操作;第二层是C/C++代码库,也就是Linux下.so的文件;第三层是Android SDK API,它是由Java编写的;第四层是应用程序,在这层运行系统所有Android应用程序。

  为了实现让Android可以是别平台上的各种硬件设备,就用到了Linux内核,主角就是Linux驱动。系统移植有移植CPU架构和移植Linux驱动,其中移植Linux驱动最为重要。移植工作如果要移植的Android系统提供了驱动源代码,那就好办多了,直接根据移植的目标平台修改驱动代码就可以了,但有时候会出现某些原因,无法驱动程序以及相关的配置文件。Android移植在很大程度上是Linux内核的移植。尽可能多的找到驱动代码直接修改就可以省下很多麻烦。

  第三小节讲了三种查看Linux内核版本的方法,常见的有Linux2.4、Linux2.6和Linux 3.x。Linux内核版本号由下面及部分组成:主板本号、此版本号、修订版本号、微调版本好、为特定的Linux系统特别调试的描述。其中还介绍了一些学习Linux驱动开发的方法,准备好自己熟悉好的Linux操作系统、开发板、学习GNU C、学习相关的硬件知识,并通过不断的实践来熟练掌握Linux驱动。
  最后介绍了LInux设备驱动的发展和作用:通过驱动可以在不同机器上运行,不需要了解该机器的相应的指令,就可以完成相同的任务。
设备分为字符设备、块设备、网络设备。还有一个叫LED的驱动,通过它的例子看到了解到很多系统的函数和结构体,装载函数和卸载函数分别通过mobule_init和module_exit宏指定。

《Android深度探索HAL与驱动开发》第一章阅读心得的更多相关文章

  1. Android深度探索--HAL与驱动开发----第一章读书笔记

    1. Android的系统架构有四层,它的发展目前来说 是比较成熟的,流行于目前的市场.其架构包括四层(linux内核.C/C++代码库.Android SDK API.应用程序). 2. 驱动是直接 ...

  2. Android深度探索HAL与驱动开发 第二章 搭建Android开发环境

    通常以应用移植和系统移植的为Andorid系统移植的主要部分.同时为了适应不同平台硬件设备,对源代码进行相应的修改.除了要移植相适应的CPU架构,最重要是移植Linux驱动. 但是由于一些特别的原因, ...

  3. Android深度探索--HAL与驱动开发----第二章读书笔记

    1. 底层开发工具包括: JDk6或者以上版本:Eclipse3.4或以上版本:ADT(用于开发Android应用程序),CDT(用于开发AndroidNDK程序):Android SDK:Andro ...

  4. Android深度探索--HAL与驱动开发----第九章读书笔记

    Google为Android加入HAL主要有如下的目的. 统一硬件的调用接口.由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂.不统一的接口. 解决了GPL版权问题.由于Lin ...

  5. Android深度探索HAL和驱动开发(卷1) 第一章 Android系统移植和驱动开发

    由于Android是基于Linux内核的,因此,Android和其他Linux系统的核心部分差异非常小.然而不同版本的Android使用的Linux内核的版本有细微的差异,所以不同Android驱动可 ...

  6. Android深度探索HAL与驱动开发 第四章 源代码下载和编译

    前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:A ...

  7. Android深度探索HAL与驱动开发 第三章 Git入门

    Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的che ...

  8. Android深度探索--HAL与驱动开发----第五章读书笔记

    第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...

  9. Android深度探索--HAL与驱动开发----第八章读书笔记

    通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...

随机推荐

  1. codeforces problem 140E New Year Garland

    排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...

  2. Adding a WebPart to a SharePoint 2013 Master Page 分类: Sharepoint 2015-07-08 01:03 7人阅读 评论(0) 收藏

    On SharePoint 2013 you can not add the Web Parts to the master page the same way of 2010. Please use ...

  3. jdbc基本查询方法

    jdbc操作数据库时,最基本的三种接口是Statement PreparedStatment  CallableStatement (1)Statement createStatement() cre ...

  4. Two Sum (c#)

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  5. mac idea快捷键

    新买的mac,如果默认使用idea快捷键,因为用eclipse,完全转不过来,所以荡下别人整理好的资源放在目录下,以备查看 原文:https://my.oschina.net/sunzy/blog/3 ...

  6. 011-Scala中的apply实战详解

    011-Scala中的apply实战详解 object中的apply方法 class中的apply方法 使用方法 apply方法可以应用在类或者Object对象中 class类 必须要创建实例化的类对 ...

  7. iOS开发学习概述及知识整理

    设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用 ...

  8. 设置table距离顶部位置

    //UIEdgeInsetsMake———— UIEdgeInsets insets = {top, left, bottom, right} self.tableView.contentInset ...

  9. Python开发入门与实战18-Windows Azure 虚拟机部署

    18. 微软云虚拟机部署 上一章节我们介绍了如何在新浪云部署我们的在python django应用,本章我们来介绍如何Windows Azure上部署我们的应用. 18.1. 注册Windows Az ...

  10. CSS3的透明度使用

    大家在敲代码的时候总会遇见一个问题.就是透明度opacity 会导致整个元素内全部都会改变,通常的方法是在同级元素后面再加上一个元素标签,但是现在有CSS3 ,我们完全不用这么做了.看代码 <! ...