Android深度探索(卷1)HAL与驱动开发1-4章

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

这一章是学习Linux驱动的第一道门,在这一章中,主要对Android以及Linux驱动做一个总体的介绍,在这一章中,我对开发Linux驱动有了一个更深的认识。Android系统构层一共有4层内容:Linux内核、C/C++代码库、Android SDK API、应用程序。这一章中学会了Android系统移植,Android移植分为2个部分,一个是应用移植,一个是系统移植。Android系统移植是指让Android操作系统在某一个特定硬件平台上运行。本章中介绍了查询Linux系统的内核版本的方法,终端下执行uname -a或cat /proc/version两种方法。如果要学好Linux驱动必须掌握的一个技术就是GNU C,这个技术是对标准 C的扩展。在本章中还介绍了Linux设备驱动,计算机系统的硬件主要是由CPU、存储器和外设组成。

这一章中第7小节中学习了Linux驱动的一个小实例:LED驱动。通过这个实例我知道了任何一个Linux驱动都有一个装载函数和卸载函数即可。装载函数和卸载函数分别通过module-init和module-exit宏指定。其实,学习Android驱动开发,实际上就是学习Linux驱动开发,只不过不一样的是Android增加了一个HAL,这个是Android特有的。HAL的作用是将操作系统的其余部分表示为抽象的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质。

第二章:搭建Android开发环境

这一章主要介绍了如何搭建Android底层开发的环境,主要包括Android应用程序开发环境、Android NDK开发环境和交叉编译环境的搭建。

首先是安装JDK,直接下载JDK的压缩包,并将其解压缩,然后在Linux终端输入#gedit /etc/profile打开profile文件来设置PATH环境变量,打开profile文件后,在文件的最后输入export  PATH=.:/developer/jdk6/bin$PATH。然后是搭建Android应用程序开发环境,先是安装Android SDK,然后是安装Eclipse,  安装ADT(ADT是用于开发Android应用程序的Eclipse插件),ADT安装后还需要对ADT进行配置,配置ADT以便让ADT能找到Android SDK,最后是建立AVD。

安装Android NDK开发环境的步骤:下载Android NDK,安装CDT(CDT是Eclipse中用于开发C/C++程序的插件),命令行方式编译Android NDK程序,倒入Android NDK的例子,配置Android NDK的集成开发环境。

安装交叉编译环境,通常交叉编译器和相关工具包含了很多可执行文件以及大量的共享库及头文件等资源,这些资源的集合称为交叉编译环境。

这一章主要介绍了Ubuntu Linux环境下的Android开发环境的配置,Windows和Mac OS X系统下的配置过程与Linux环境下类似,我们都可以参考着配置Windows或者Mac OS X系统下的Android开发环境。

第三章:Git使用入门

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

安装Git的命令:# apt-get install git和# apt-get install git-doc git-svn git-email git-gui gitk。

这一章中用一个完整的例子演示了如何创建版本库、提交源代码、创建分支、向远程服务器上传源代码,从远程服务器获取源代码等技术。创建版本库:git init;将文本提交到本地版本库:git commit;创建本地分支:git branch;切换本地分支:git checkout;在GitHub上创建开源项目;上传源代码到GitHub:git push;从GitHub下载源代码:git clone。

这一章主要是介绍了Git的基本用法,Git是我们学习过程中必不可少的工具。

第四章:源代码的下载和编译

Android源代码包含了很多东西,有内嵌在Android系统中的应用程序的源代码;Android SDK带的各种工具的源代码;Android NDK的源代码;还有HAL源代码。

配置Android源代码的下载环境:1.创建一个用于存放下载脚本文件的目录。2.下载repo脚本文件(用于下载Android源代码)。3.创建用于存放Android源代码的目录。4.初始化。5.开始下载Android源代码。

编译Android源代码:1.初始化编译环境(终端执行命令:# source build/envsetup.sh或#. build/envsetup.sh);2.选择目标;3.编译Android源代码(执行命令:# make)。

out目录是存放编译Android源代码声称的目标文件的默认目录。out目录中只有2个直接子目录:host和target。

交叉编译器是指在A架构的CPU上编译在B架构CPU上运行的程序。安装交叉编译器的步骤:1.准备工作;2.解压编译器;3.验证交叉编译器是否安装成功;4.安装libncurses(安装主要市委了配置内核)。

Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动需要在Ubuntu Linux下搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境。

本章中学会了如何搭建上述的两个开发环境。

http://www.cnblogs.com/wang1312/

时间: 2025-01-04 03:13:35

Android深度探索(卷1)HAL与驱动开发1-4章的相关文章

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.Android源代码中包含了HAL(即硬件抽象层) 的代码,并学习了如何搭建这两种开发环境. Android 的移植的本质就是Linux内核的移植,Linux内核的移植主要是Linux驱动的移植.而开发和测试Linux驱动就需要安装以上两个开发环境. 搭建两套环境的具体步骤如下: 一.下载编译和测试A

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记     本章是对Git的一个概述. Linux是一个开源的系统.事实上,在Linux上许多软件都和底层程序以及内核驱动有关,然而Linux内核的版本非常多,如果每个版本上的软件都采用安装包的形式,则匹配这么多版本的安装包将十分庞大.所以有很多软件不是以二进制安装包的形式来安装和使用的.而是将源代码下载下来,并在每个用户自己的Linux中编译并安装,即使用make 和make install 命令.而Linus作为L

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数 统计单词个数的功能是封装在Linux驱动中的. Linux驱动的工作和访问方式是Linux亮点之一,同时受到了业界大防范好评.Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或者驱动文件,都保存在 /dev 目录中.这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易.当然,也比访问Linux API 更容易.由于大多数Linux驱动都有与其对应的设备文件,因此与Li

Android深度探索(卷1)HAL与驱动开发读后感---第一章

第1章  Android系统移植与驱动开发概述 1.1  Android 系统架构 Android是一个非常优秀的嵌入式操作系统.经过几年的发展和演进,Android已经发展形成林非常完善的系统架构. Android的系统架构分为4层:Linux内核.C/C++代码库.Android SDK API.应用程序. 1.2  Android 系统移植的主要工作     Android系统移植可分为两部分:应用移植和系统移植.Android移植的主要工作如下:移植Linux驱动.移植HAL. 1.3

Android深度探索(卷1)HAL与驱动开发第三章总结

Git—由linux之父Linus编写,是进行源代码管理的一种软件.Linus以一个文件系统专家和内核设计者的视角对Git进行了设计,其独特的设计让Git拥有了非凡的性能和最为优化的存储能力,Git在各方面都优于其他同类的的源代码管理软件.在学习Android及linux 内核,驱动开发的过程中会涉及大量的源代码,而这些代码都是由Git 管理的,因此,在学习Android移植与linux驱动开发之前了解Git的理论和基本使用方法.安装Git 以及查看Git 文档并不难,而在源代码的提交与获取的过

Android深度探索(卷1)HAL与驱动开发读后感---第二章

  第2章  搭建Android开发环境 2.1  Android底层开发需要哪些工具 开发.测试和调试Linux驱动.HAL程序库需要哪些工具: JDK6或以上版本: Eclipse3.4或以上版本: ADT: CDT: Android SDK: Android NDK: 交叉编译环境: Linux内核源代码: Android源代码: 用于调试开发板和串口工具:minicom . 2.2  安装JDK     直接下载后进行配置. 2.3  搭建Android应用程序开发环境     通过本节

ANDROID深度探索(卷1)HAL与驱动开发 第六章

Linux系统 将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中. 由于大多数Linux驱动都有与其对应的设备文件, 因此与Linux驱动交换数据就变成了与 设备文件交换数据. 编写Linux驱动程序的步骤: 第 1 步:建立 Linux 驱动骨架 (装载和卸载 Linux 驱动). 第 2 步:注册和注销设备文件. 第 3 步:指定与驱动相关的信息. 第 4 步:指定回调函数. 第 5 步:编写业务逻辑. 第 6 步:编写 Makefile文件. 第 7 步

Android深度探索(卷1)HAL与驱动开发第六章读书笔记

编写Linux驱动程序的步骤 第1步:建立Linux驱动骨架(装载和卸载Linux驱动) 第2步:注册和注销设备文件 第3步:指定于驱动相关的信息 第4步:指定回调函数 第5步:编写业务逻辑 第6步:编写Makefile文件 第7步:编译Linux驱动程序 第8步:安装和卸载Linux驱动 安装Linux驱动: # insmod word_count.ko 查看word_count是否成功安装: # lsmod | grep  word_count 卸载L inux驱动: # rmmod wor

Android深度探索(卷1)HAL与驱动开发第六章总结

操作系统是通过各种驱动程序赖家与硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式.设备驱动程序是操作系统最基本的组成部分之一,在Linux内核源程序中也占有60%以上,因此熟悉驱动的编写很重要. Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都存在/dev目录中.这样,在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作,从而大大方便了对设备的处理. 编写驱动程序的步骤: (1)建

Android深度探索(卷1)HAL与驱动开发 第五章 搭建S3C6410 开发板的测试环境

第五章 搭建S3C6410 开发板的测试环境 心得体会 开始进行安装串口调试工具:minicom  OK6410开发板带了一个串口.可以通过串口线与PC连接.Linux驱动在输出调试信息的同时会通过串口线教调试信息发送到PC上,这样Linux驱动程序员就可以直接在PC上查看调试信息了.(对一些笔记本需要使用USB转RS232串口线) 1.检测当前系统是否支持USB转串口 #lsmod | grep usbserial 2.安装minicom #apt-get install minicom 3.