Androoid深度探索HAL与驱动开发

第一章:

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

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

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

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

第二章

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

搭建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开发和内核的移植做了很多基础的工作。一切工作都必须是在环境的基础上发展起来的。

第三章

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

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

时间: 2025-01-15 01:57:04

Androoid深度探索HAL与驱动开发的相关文章

Android深度探索HAL与驱动开发 第四章

Android深度探索HAL与驱动开发 第四章 源代码的下载和编译 读书笔记 一.下载编译和测试Android源代码 1.配置Android源代码下载环境 创建一个用于存放下载脚本文件的目录(可将该文件放到任何一个目录在这里使用-/bin) # mkdir ~/bin # PATH=~/bin:$PATH 2.下载repo脚本文件(用于下载Android源代码) # curl htttps://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/

Android深度探索HAL与驱动开发 第三章

Android深度探索HAL与驱动开发 第三章 Git使用入门 读书笔记 Git是对源代码进行管理的软件. 一.安装Git # apt-get install git # apt-get install git-doc git-emall git-gui gitk 用以下命令控制Git: # apt-get install git-core # apt-get install git-doc git-svn git-email git-gui gitk 二.查看Git文档 查看git-check

Android深度探索HAL与驱动开发 第二章

Android深度探索HAL与驱动开发 第二章 搭建Android开发环境 读书笔记 一.Android底层开发需要的工具 1.JDK6或以上版本 2.Eclipse3.4或以上版本 3.ADT(用于开发Android的应用程序) 4.CDT(用于开发Android NDK程序) 5.Android SDK 6.Android NDK 7.交叉编译环境 8.Linux内核源代码 9.Android源代码 10.用于调试开发板的串口工具:minicom 二.安装JDK 下载JDK后在终端输入 #

Android深度探索HAL与驱动开发 第四章 源代码下载和编译

前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境.Linux内核开发环境的搭建是重点中的重点.下面根据书上的内容和网上的资料写出了步骤: (1)配置Android源代码下载环境: (2)Android源代码目录分别存放了Android源代码的不同子项目 (3)下载Android源代码中的一部分两

Android深度探索HAL与驱动开发 第三章 Git入门

Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的check日期.提交指定代码库需要RSA身份验证,而且需要公钥确定设备能够提交管理代码库. 如果源代码是最能体现软件作者的真正思路的.就像学习Linux内核开发,值找基本所谓的“权威”书籍来看,并不能真正体会Linux内核的核心设计理念.以Andorid源代码的解析和编译测试为基础的驱动开发.要使用内嵌在

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

第一章:Android系统移植与驱动开发概述 第一章其实就是对安卓与Linux驱动做了一个总体的介绍. 现如今,Android已经成为现在智能手机操作系统的老大,市场占有率已经远远超过iOS,主要的原因主要在于Android的可移植,所有人都可以利用Android的源代码制作属于自己的系统,而且Android的体系结构也近乎完美.但在移植过程中进行最多开发的就是支持各种硬件设备Linux的驱动程序,所以讲移植必定先讲Liunx驱动开发. Android的体系结构主要由Linux内核.C/C++代

android深度探索 HAL及驱动开发 第一章

第一章 android系统移植与驱动开发概述对安卓和linux驱动做了一个总体介绍为特定设备定制安卓的过程叫做移植android 系统架构分为四层:1.linux内核 2.C/C++代码库 3.Android SDK API 4.应用程序android移植分为两部分:应用移植:将应用程序移植到某一个特定硬件平台上系统移植:让android操作系统在某一个特定硬件平台上运行android移植主要工作:移植linux驱动移植HAL查看linux内核版本的方法:方法一:在终端中运行 uname -a方

Android深度探索--HAL与驱动开发----第一章读书笔记

1.1   Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:android SDK API 直接面向应用程序的Java APK 第四层:应用程序.直接面向最终用户的Java应用程序 1.2  Android系统移植的主要工作 Android移植可以分为应用移植和系统移植两个部分.(本书对移植没有太多的介绍) Andr

Android深度探索HAL与驱动开发

第五章 开发板是嵌入式开发的前提,我们使用的是三星公司生产的s3c6410开发板.s3c6410开发板是一款低功耗,性价比极高的处理器,也为2.5G和3G通信服务提供了优化的硬件性能以及强大的加速器.包括运动视频处理,音频处理等.接下来安装串口调试工具:minicom.检查当前系统是否支持usb转串口,安装minicom,配置minicom,测试minicom.配置完成后烧写android系统.用串口线或usb转串口线连接开发板与pc启动minicom.进入eboot状态,擦除nandflash