android深度探索第一章

Android深度探索HAL与驱动开发的第一章学习了android系统移植与系统开发详述。

正如书上的导言所说,,android已经成为当前智能手机操作系统的老大。所以其重要性可想而知,其学习的意义非比寻常。其发展的迅速,很大程度上取决于任何人都可以利用android的源代码定制完全属于自己的嵌入式系统,而不需要向Google交钱。而由于android原生的代码支持的设备不多,因此,要想在自己的设备(包括手机、智能电视、平板等)上完美运行android,就需要另外一些开发程序,使得android可以表示相应设备的硬件(显示器、蓝牙、音频等)。这个为特定设备定制android的过程被称为“移植”。同时在移植的过程中开发的最多的就是支持各种硬件设备的linux驱动程序。而第一张就是学习驱动的第一道门。

首先是android系统架构,包括四层架构,第一层是linux内核,它与其他linux系统的核心部分差异很小。这一层主要包括linux驱动程序以及内存管理、进程管理、电源管理等程序。第二层是C/C++代码库,这一层主要包括使用C/C++编写的代码库,也包括dalivk虚拟机运行时(Runtime)。第三层是Android SDK API,这一层是用java编写的各种library。第四层是应用程序层,这一层是所有的android用户都要接触到的,因此这一层相当于android的ui,所有的android应用程序都属于这一层,而这一层主要依靠第三次来完成各种功能。

Android移植的主要工作分为系统移植和应用移植。除了linux驱动需要移植外,android系统中还增加了一个硬件抽象层。移植的工作如果要移植的android系统提供了驱动源代码,就很简单,反之会比较麻烦。

Linux内核版本主要有三个可以通过两种方法识别。版本号的组成由主版本号,次版本号,修订版本号,微调版本号,特别的描述组成。由于内核版本更新较快,要想学会linux驱动开发,不但需要掌握可靠的知识,还应该不断的学习不断的努力。

Linux设备驱动分为字符设备,块设备,网络设备。

我的博客园地址

http://www.cnblogs.com/liang0202/

时间: 2024-10-18 18:25:32

android深度探索第一章的相关文章

Android深度探索第一章总结

Android深度探索第一章主要是Android系统移植与驱动开发概述.要想进行系统移植就必须先了解Android的系统架构,Android的系统架构主要是:第一层,Linux内核,主要包括驱动程序以及管理内存.进程.电源等资源的程序:第二层,C/C++代码库,主要包括Linux的.so文件以及嵌入到APK程序中的NDK代码:第三层,Android SDK API,直接面向应用程序的Java APK:第四层,应用程序,直接面向最终用户的Java应用程序(APK程序).接下来是Android移植的

Android深度探索--第一章读后感

第一章主要讲了Linux驱动和AndroidHAl的基础知识.首先介绍了Android系统构架分为四层,Linux内核.C/C++代码库.Android SDK API.应用程序.了解这四层是Android系统移植的前提,Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.并且Linux有一个很大的好处,就是Linux内核本身支持很多常用的CPU构架,因此,将Android在不同的CPU构架之间移植并不用做过多的改动.在移植的过程中,除了要移植CPU构架以外,最重要的还

Android深度探索第一章心得

本章主要是对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开发环境.首先我们要准备好开发工具,有:JDK.Eclipse.ADT.CDT.Android SDK.Android NDK.交叉编译环境.Linux内核源代码.用于调试开发板的串口工具minicom.1.安装JDK.将下载好的JDK解压,在终端输入gedit  /etc/profile打开profile文件后输入export PATH=.:/developer/jdk6/bin:$PATH然后保存,再在终端中输入source /etc/pr

android深度探索1-4章心得体会

第一章 Android系统本身是一个庞大的系统,移植并不需要精通Android的每一个部分,需要考虑的是Android系统的硬件抽象层(HAL)和Linux中的相关设备驱动程序. Android系统的移植工作的目的是为了在特定的硬件上运行Android系统.在移植的过程中,把握关键要点,减少工作量是一个重要的方面.从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中.为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调

android深度探索第九章心得体会

本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库.刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口.二,解决了GPL版权问题.三,针对一些特殊的要求.可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作. 编写HAL模块的步骤和原理如下. 第一步:定义结构体和宏编写HAL模块需要使用到3个非常重要的结构体,在第一步需要定义两个新的结构体. 第二步:编写HAL模块的open函数 open函数是HAL模块的入口点.本例中使用的是l

android深度探索第二章

Android底层开发中首先要开发测试和调试Linux驱动,HAL程序库需要(1)JDK6或以上版本(2)Eclipse3.4或以上版本(3)ADT(4)CDT(5)Android SDK(6)Android NDK(7)交叉编译环境(8)Linux内核源代码(9)Android源代码(10)用于调试开发板的串口工具:minicom..第一步配置jdk环境,设置path变量,打开profile文件后输入 export PATH=.:/developer/jdk6/bin:$PATH,保存文件后在

Android深度探索第二章心得

本章主要介绍如何搭建Android底层开发的环境,主要包括Android应用程序开发环境,和交叉编译环境的搭建. 其中开发.测试和调试Linux驱动.HAL程序库需要的工具包括: 1. JDK6或以上版本 2. Eclipse3.4或以上版本 3. ADT(用于开发Android应用程序) 4. CDT(用于开发Android NDK程序) 5. Android SDK 6. Android NDK 7. 交叉编译环境 8. Linux 内核源代码 9. Android 源代码 10.用于调试开

Android深度探索——第九章读书笔记及心得

HAL模块 ——第9章读书笔记及心得 通过本章学习学会了Android中特有的与linux驱动交互的方法,即通过HAL模块.HAL模块本质上就是通过linux共享库(.so)与linux交互驱动,然后利用应用程序再访问linux共享库.每一个HAL共享库指定一个ID,在利用这个ID配合一定的规则找到linux共享库.知道了HAL对于Android的意义.知道了Android HAL的架构. HAL是建立在linux驱动之上的一套不属于linux内核的程序库.它属于linux内核层之上的应用层.H