Android深度探索读书笔记 第一章

第一章首先介绍android系统架构(android是一个非常优秀的嵌入式操作系统),总共分为四层:第一层Linux内核,由于android是基于Linux内核的,所以android跟其他Linux系统没什么差异。这一层这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等。第二层编写的代码库,也包括Dalivk虚拟机的运行时。第三层android SDK 层。第四层应用程序(相当于android的UI)。而这一层主要靠第三层中的Android SDK API 完成各种功能。其次介绍的是android的移植(可分为应用移植和系统移植),其中应用移植是将应用程序一直到某一个特定硬件平台。系统移植是指让android系统在某一个特定平台上运行。使一个系统在特定硬件平台上运行的一个首要条件是该操作系统支持硬件平台的CPU架构。要想android在不同硬件平台上正常运行,只支持cpu构架是不够的,必须要让android可以识别平台的各种硬件。这些工作主要靠Linux内核来完成的,其中主要也会死由Linux驱动,因此,系统移植除了移植cpu架构外,最重要的就是移植Linux驱动。此外还增加了一个硬件抽象层(HAL,hardware abstraction layer).接着讲述了查看linux内核版本的几个方法以及版本号的定义规则。最后介绍了Linux设备驱动。驱动针对的对象是存储器个外设,而不是cpu核,Linux将存储器和外设分为字符设备、块设备、网络设备三大类。

http://www.cnblogs.com/sam0304/

时间: 2024-11-06 19:53:33

Android深度探索读书笔记 第一章的相关文章

Android深度探索读书笔记 第九章

HAL是建立在linux驱动之上的一套程序库,这套程序库属于linux内核层之上的应用层.编写一款支持HAL的linux驱动程序:1.在为linux驱动添加HAL,要想尽量保护敏感数据.Linux驱动的代码就要尽量简洁,尽可能将业务逻辑放到HAL library中.2.HA类就是普通的linux Library文件 ,但这类库文件有一个接口.通过HAL_MODULE_INFO_SYM变量实现.3.service Library也是Linux Library,也就是说service Library

Android深度探索读书笔记 第二章

第二章介绍的是搭建android底层的开发环境 ,主要包括android应用程序开发环境.android NDK开发环境和交叉编译环境的搭建.首先介绍的是开发测试和调试Linux驱动.HAl程序需要的工具:JDK6或以上版本:Eclipse3.4或以上版本:ADT:CDT:androidSDK:Android NDk:交叉编译环境:Linux内核源代码:android源代码:用于调试的串口工具 minicom.接着介绍的是JDK的安装:首先从官方网站(http://www.oracle.com/

《Android深度探索卷一》第一章Android系统移植与驱动开发概述。

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.这一章节将对Android以及Linux驱动做一个总体的介绍. Android是一个非常优秀的的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构.Android的系统架构分为四层,如下图 Android移植可分为两部分:应用移植和系统移植. Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件

Android深度探索读书笔记 第三章

第三章主要介绍的是Git,首先是安装git可以使用这些命令(#apt-get inatall git    #apt-get inatall git-doc git-svn git-email git-gui gitl)来安装git,其中Git包含了大部分git命令是必须安装的软件包.其次是查看git文档:在Linux下可以直接使用man命令查看指定命令的帮助文档.如要查询git-checkout命令的帮助文档,可以使用#man git-checkout 接着是源代码的提交与获取:1创建版本库 

android深度探索读书笔记

第八章 让开发板发出声音:蜂鸣器驱动 蜂鸣器是S3C6410 开发板上带的个硬件设备.可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声.介绍蜂鸣器的实现原犁,并实现完整的蜂呜器驱动,可以打开和关闭蜂鸣器时驱动的实现方式不同于LED PWM 驱动将由多个文件组成.这也是大多Linux 驱动的标准实现方式也就是说个复杂的驱动不太可能将所有的代码都放在个文件中.最好将关的代码放在相应文件中.在编译 Linux 驱动时将这些文件进行联合编译.本节将介绍把Linux 驱动分成多个文件的方式.这些文件中的

Android深度探索-卷1第一章心得体会

本章介绍了安卓系统移植与驱动开发的概述,安卓的系统架构有四层:1 Linux内核,2 c/c++代码库, 3 Android SDK API, 4 应用程序 在读的过程中看到了专业名词,查了查,长点见识 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.安卓在移植的时候很大程度上市Linux内核的移植,安卓版本的不同是L

Android深度探索读书笔记 第十章

对于复杂的linux驱动及HAL等程序库,需要使用各种方法对其进行调试.首先接介绍使用printk函数,该函数与printf函数类似,printk函数运行在内核空间,printf函数运行在用户空间.Printk函数的原型:asmlinkage int printk(const char *fmt, ...)第一个参数表示个格式字符串,后面是可变参数,也就是说,printk函数至少要有1个参数,如果格式字符串包含有占位符,后面必须跟与占位符相等数量的参数,以便一一对应传入 printk函数.使用p

Android深度探索-卷1 第一章

Android是一个非常优秀的嵌入式操作系统,android的系统架构分为4层,第一层为Linux内核,这一层主要包括Linux驱动程序以及内存管理.进程管理.电源管理的等程序.并且不同的Android的版本的驱动可能并不通用.第二层为C/C++代码库,这一层主要包括使用C/C++编写的代码库(Linux下的.so文件),也包括.Dalivak虚拟机的运行时(Runtime).第三层为Android SDK API,这一层也可称java API,这一层是用JAVA编写的各种Library,这些l

Android深度探索读书笔记 第八章

代码的重用分为静态重用跟动态重用.静态重用:采用标准的c程序的方式,将要重用的代码放在其他的文件中,如果要使用相应的某些功能,include相应头文件即可.动态重用:也就是一个linux驱动可以使用另外一个linux驱动中的资源.还有另外一种代码共享的方式:,模块依赖,也称为导出符号.在一个驱动模块里使用另外一个驱动模块里的被导出的符号(常量.变量.函数等).编译是由多个文件组成的linux驱动,如果linux驱动代码不多,可以将所有的代码放在一个文件中,如果linux驱动代码比较复杂,就需要使