Androoid深度探索HAL与驱动开发

 第一章:   linux

     随着android原生代码的开放性,出于好奇的每一位学员都想着开发属于本身的嵌入式系统。所以随着智能时代的到来,android已经成为当前智能手机操做系统的老大,市场占有率遥遥领先于ios操做系统。android

     Android 优秀的嵌入式操做系统通过多年的发展已经很是的完善,包括linux内核,才c/c++代码库,Java sdk api,应用程序四层。不一样版本的Android是基于不一样的Linux内核上,因此不一样Android版本的驱动可能并不通用。Android sdk api 是用Java语言编写的也能够成为Java api 层。Java编写的各类library 是基于dalvik虚拟机格式的。应用程序是安卓用户都要接触到的。包括拍照 电话 短信 浏览器 以及游戏。而这一层要依靠第三层来完成各类功能。ios

     移植分为应用移植和系统移植。前者应用程序移植到某一个特定硬件平台。后者android 操做系统在某一特定硬件平台上运行。嵌入式是基于软硬件共同做用的一个方向。c++

     学习linux驱动编程必定要了解linux驱动只与Linux内核有关,无论哪一个Linux系统,只要使用了一样的Linux内核 ,驱动就能通用。这是嵌入式开发的一个基础阶段,同时也了解到整个Linux开发的一个 布局。git

 第二章编程

     搭建Android底层开发环境,主要包括Android应用程序开发环境,Android ndk 开发环境和交叉编译环境搭建。这些都是Android移植及Linux驱动开发的基础,没有环境的搭建就没有开发。Jdk6或以上版本;eclipse3.4或以上版本;adt cdt  android sdk; android ndk; 交叉编译环境;Linux内核源代码;Android源代码;用于调试开发板的串口工具。api

     搭建android 应用程序开发环境,安装Android sdk ;安装eclipse;安装adt;配置adt;创建avd;浏览器

     下载Android ndk 在安装目录中有一个ndk-build脚本文件,该脚本文件用于编译ndk 程序。为了方便,能够将android ndk 安装目录添加到path环境变量中。修改path环境变量的值。安装交叉编译环境 x86架构的cpu采用的是指令集计算机,而arm架构的cpu是用的是精简指令集。因为这俩种架构的cpu是用不一样的指令集,所以在架构开发可运行在arm架构上的程序就必需要使用价差编译器。一般交叉编译器和相关工具包含了不少可执行文件以及大量的共享几头文件等资源,这些资源的集合称为交叉编译环境。架构

     介绍了 linux环境下的Android开发环境的配置。底层环境的开发为Android开发和内核的移植作了不少基础的工做。一切工做都必须是在环境的基础上发展起来的。eclipse

第三章

     Linux与其余系统最大的区别就是开源。资深的Linux用户就是在开源软件的陪伴下长大的。Linux下的软件大多数不直接以二进制的安装包提供,而是直接提供源代码,而后再编译安装。至于源代码管理使用了Linus编写的git进行源代码管理。

     注释:本书执行的linux命令都是在root用户下完成的。若是用其余用户登陆必须使用root权限执行的命令在前面加sudo。这个须要用户输入密码若是密码正确就会切换到root权限来执行这些命令。在没有设置密码的状况下,使用sudo passwd root 命令设置root密码 而后使用root用户来执行本书中Linux命令。

     源代码的提交与获取 建立版本库:git init版本库因版本管理软件的不一样而不一样,都有本身对版本哭的管理方式。Git版本库也有本身的管理软件和本身的管理方式。将文件提交到本地版本库:git commit .建立本地分支:git branch 源代码可能由多人共同完成,参与开发的人员为每一处的修改创建一个分支,这样在修改后提交不会影响主分支。Github上建立开源项目,从这下载源代码 get clone.  Git 的基本用法为之后的移植于应用起了很大的做用 。

第四章

     Git 的使用方法下载源代码。俩套源代码才是重点学习。Android源代码,Linux内核源代码。下载 编译和测试Android源代码,源代码中包含了不少东西多种应用程序的晕源代码,sdk各类工具的源代码以及ndk的源代码,hal的源代码。

     首先Android源代码的下载环境 第一步: 建立一个用于存放下载脚本文件的目录 第二步:下载repo脚本文件。 第三步:建立用于存放Android 源代码的目录 第四步:初始化。 第五步:开始下载Android源代码。下载Android代码的俩种方法 使用repo sync命令  使用git clone命令。

    编译Android源代码的每一个工程都有AndroidMk文件,过程当中会递归调用每个工程目录中的Android.Mk来编译当前工程。初始化编译环境 选择目标 编译Android源代码。与Android源代码同样Linux内核源代码也是同样的方法。

    Android移植主要是Linux内核的移植。Linux内核的移植主要是Linux驱动的移植。在开发和测试的过程当中Linux驱动的移植 显得格外重要。其实前四章就是在为Android移植作一系列的准备工做。包括简单叙述 环境搭建 git 入门 源代码的下载和编译。这些都是最简单基本的前期的工做,要想完成后边的一些列的复杂过程 打下坚实的基础。

相关文章
相关标签/搜索