Android深度探索--HAL与驱动开发----第一章读书笔记
1、 Android的系统架构有四层,它的发展目前来说 是比较成熟的,流行于目前的市场。其架构包括四层(linux内核、C/C++代码库、Android SDK API、应用程序)。
2、 驱动是直接和硬件交互的一类程序,设备驱动对于系统的运行,硬件的使用是很关键的一部分。
3、 Android系统移植可分为两部分:应用移植和系统移植。Android移植的主要工作如下:移植Linux驱动、移植HAL。
应用移植:是将应用程序移植到某一特定硬件平台上,为了弥补硬件间的差异,我们需要对源码进行修改。系统移植:是指让Android操作系统在某一个特定的硬件平台上运行,系统移植除了移植CPU架构外,最重要的就是移植linux驱动。
4、 Linux将存储器和外设分为3大类:字符设备、块设备和网络设备。Linux内核与网络设备的通信与字符设备和块设备的通信方式完全不同,网络设备面向数据包的接收和发送而设计。可以将字符设备和块设备归为一类,它们都是可以顺序/随机地进行读取和存储的单元,网络设备是特殊设备的驱动,它负责接收和发送帧数据,可能是物理帧,也可能是ip数据包,这些特性都有网络驱动决定。
5、 Linux驱动只和内核有关,与系统无关,linux内核的判断方法是看其内核版本号,比如Linux2.4,Linux2.6和Linux3.x{方法:uname –a或者cat /proc/version}。
6、 一般的Android驱动都会有相对应的HAL,但不是必须的。
7、 HAL 位于代码库是.os文件,只是可以通过HAL直接访问linux驱动。
http://www.cnblogs.com/caoyutao/
Android深度探索--HAL与驱动开发----第一章读书笔记的更多相关文章
- Android深度探索--HAL与驱动开发----第二章读书笔记
1. 底层开发工具包括: JDk6或者以上版本:Eclipse3.4或以上版本:ADT(用于开发Android应用程序),CDT(用于开发AndroidNDK程序):Android SDK:Andro ...
- Android深度探索--HAL与驱动开发----第九章读书笔记
Google为Android加入HAL主要有如下的目的. 统一硬件的调用接口.由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂.不统一的接口. 解决了GPL版权问题.由于Lin ...
- Android深度探索--HAL与驱动开发----第八章读书笔记
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...
- Android深度探索--HAL与驱动开发----第十章读书笔记
printk函数的用法于-printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间.也就是说,像Linux 驱动这样的Linux内核程序只能使用printk 函数 ...
- Android深度探索HAL与驱动开发 第二章 搭建Android开发环境
通常以应用移植和系统移植的为Andorid系统移植的主要部分.同时为了适应不同平台硬件设备,对源代码进行相应的修改.除了要移植相适应的CPU架构,最重要是移植Linux驱动. 但是由于一些特别的原因, ...
- 《Android深度探索HAL与驱动开发》第一章阅读心得
首先了解到Android系统架构是由四层构成:其中第一层是Linux内核,他的作用是负责Linux的驱动程序以及内存.进程.电源等管理操作:第二层是C/C++代码库,也就是Linux下.so的文件:第 ...
- Android深度探索HAL和驱动开发(卷1) 第一章 Android系统移植和驱动开发
由于Android是基于Linux内核的,因此,Android和其他Linux系统的核心部分差异非常小.然而不同版本的Android使用的Linux内核的版本有细微的差异,所以不同Android驱动可 ...
- Android深度探索HAL与驱动开发 第四章 源代码下载和编译
前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:A ...
- Android深度探索HAL与驱动开发 第三章 Git入门
Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的che ...
随机推荐
- Excel数据批量导入到数据库
1.今天做批量导入网上找了个例子,改了改,运行起来了.用POI实现Excel的读取,需要jar包. 2.ReadExcel.java读取数据 /** * */ package com.b510.exc ...
- ThinkPHP3.2.3使用cli命令行模式
使用tp3.2.3的cli模式时,报错.加上绝对路径还是报错.所以采用普通模式 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require ...
- Linux下配置IP及安装vmware tool
=======================CentOS 7以下======================= 配置IP: 1.获得mac地址 2.编辑ifcfg-eth0文件:vi /etc/sy ...
- 1028作业:Java语法基础
//1.输入长与宽计算长方形面积与周长.(用精度类型计算) package com.lovo.J133; import java.util.Scanner; public class Homework ...
- mysql 查询数据库表结构
1. mysql> describe tmp_log; +----------+------------------+------+-----+---------+--------------- ...
- JavaScript的面向对象编程(OOP)(三)——聚合
之前写过了类和原型,这里再说聚合,在写关于聚合之前,对与继承我再总结一下.JavaScript中关于继承的方式一共有三种,之前写了两种,但是没有说明,这里补充说明一下. 1.类式继承:通过在函数对象内 ...
- ajax无刷新删除、复制 THINKPHP
一.jquery 代码: <SCRIPT LANGUAGE=javascript> function delGoods(goodsID) { if(confirm( " ...
- sphinx索引分析续
4.10 同义词文件/Synonym 同义词文件格式 from => to AT &T => AT&T AT & T => AT & T standa ...
- oracle initialization or shutdown in progress解决方法
[解决方法] SQL> connect sys/hope as sysdba 已连接. SQL> shutdown normal ORA-01109: 数据库未打开 已经卸载数 ...
- Swift 07.关键字
每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: class, deinit, enum, extension, func, import, ...