zoukankan      html  css  js  c++  java
  • Android深度探索(卷1)HAL与驱动开发

     第一章 介绍Android驱动开发和移植技术

    主要对androidlinux做了总体的介绍,让我们有了个感性的认识。

    一、Android的四层系统架构:

    a) Linux内核:Android是基于Linux内核的,所以它和linux的其他部分差异非常小,包括Linux的驱动以及内存管理,进程管理,带电源管理等程序。

    b) C/C++的代码库:C/C++编写的代码库,也就是Linux下的.so文件以及dalvik虚拟机的运行时哦!

    c) Android SDK API:用java语言编写的各种Library,而这些library是基于虚拟机格式的呢!

    d) 应用程序:是用户(程序员和非程序员)所接触到的。

    二、Android系统移植的主要工作:应用移植和系统移植。应用程序是将应用程序层的程序移植到某一个特定硬件平台上;系统移植是让Android操作系统在某一个特定硬件平台上运行。

    三、查看Linux内核版本:Linux内核版本包括三个:linux2.4linux2.6linux3.x;查看方法有两个:1.linux终端下执行uname -a命令;2.linux终端下执行cat /proc/version命令。

    四、版本号定义的原则:主要包括主版本号、次版本号、修订版本号、微调版本号、为特定的linux系统特别调校的描述。

    五、学习驱动开发:我们需要搭建一个真正的linux操作系统环境,初学者呢最好还是使用Ubuntu linux的系统。

    六、Linux设备驱动:是直接和硬件交互的一类程序哦,负责对硬件进行抽象的呢,有字符设备、网络设备、块设备。

    七、小实验:利用驱动控制开发板上的3LED灯,实现了对设备驱动的控制。

    第二章 搭建Android开发环境

    本章主要介绍了Ubutn linuxandroid开发环境的配置,具体如下:

     一、Android底层开发需要的工具:JDK6或以上版本、Eclipse3.4或以上版本、ADTCDTAndroid SDKAndroid NDK、交叉编译环境、linux内核源代码、Android源代码、调试串口的开发板工具minicom

    二、安装JDK:下载压缩包、解压、用gedit /etc/profile设置PATH环境变量,设置完成之后保存profile文件后,在终端输入source /etc/profile可重新装载profile,可以利用echo $PATH查看环境变量。

    三、搭建Android应用程序开发环境:安装Android SDK、安装Eclipse、安装ADT、配置ADT、建立AVD

    四、安装Android NDK开发环境:下载Android NDK、安装CDT、命令方式编译Android NDK程序、导入Android NDK的例子、配置Android NDK的集成开发环境。

    五、安装交叉编译环境:X86架构的cpu采用的是复杂指令集计算机,可以直接下载集成好的交叉编译环境,也可以自己制作交叉编译环境。CodeSourcery交叉编译环境就是下载好的交叉编译好的环境,可以直接下载安装使用,安装时使用sh package.bin命令,也可以使用虚拟环境中的交叉编译环境,WindowsMac OSXlinux的交叉编译环境也是大同小异。

               第三章 Git使用入门

    一、内核的很多代码以及很多项目(eclipseandroid等)都使用了linux之父linus编写的git级逆行代码管理,linus独特的设计让git拥有非凡的性能和最为优化的存储能力。安装Git1Ubuntu linux10.10或更新的版本可以使用下面的命令安装Gitapt-get install git;apt-get install git-doc git-svn git-email git-gui gitk;2Ubuntu 10.04或更低的版本可以用下面的命令:apt-get install git-core;apt-get install git-doc git-svn git-email git-gui gitk;3RHELFedoracentOS用户可以使用以下命令安装:yum install git;yum install git-doc git-svn git-email git-gui gitk

    二、查看Git文档:通常使用man命令直接查看帮助文档需要命令:man git-checkout;以文本形式查看需要命令:git help <sub-command>;查看checkout命令的文档需要命令:git help git-checkout;查看HTML格式的文件需要命令:git help -w git-checkout

    三、源代码的提交和获取:任何版本管理软件都有版本库,不同的是要对版本库的管理方式,所以必须创建版本库:git init;需要将文件提交到本地版本库:git commit;创建本地分支:git branch,也可以使用git branch new-branch创建新分支;切换本地分支:git checkout;在GitHub上创建新的开源项目;上传源代码到GitHub:git push;GitHub下载源代码:git clone,可以使用如下命令下载整个工程:git clone git@github.com:androidguy/helloword.git

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

    一、下载、编译和测试源代码,安卓源代码有很多呢,比如:应用程序(QQ、微信、短信、电话、日历等)的源代码和SDK插件(adbaapt等)的源代码、还有NDK的源代码等等。

    操作步骤为:1.首先需要配置android源代码下载环境:(1)创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件放到任何目录中,使用~/bin);(2)下载repo脚本(用于下载源代码);(3)创建用于存放android源代码的目录(可放在其他目录中);(4)初始化;(5)开始下载android源代码;在下载代码的时候git会尽可能的占用宽带网速,所以会做不了其他的事情,如果要备份源代码,则不能删除android代码库(.git目录);2.android源代码目录结构解析,在这儿需要建立保存源代码的目录;3.下载android源代码中的一部分需要我们了解源代码的目录结构,这样就不需要等待很长时间下载android源代码的目录,有两个方法:使用reop sync命令;使用git clone命令;4.编译android源代码时需要调用android.mk文件来编译当前工程:(1)初始化编译环境;(2)选择目标;(3)编译android源代码;5.out目录结构分析;6.将自己的APK作为内置程序发布,这儿将会生成自己的apk程序嵌入到system.img文件中,删除apk程序需要获得root权限并直接删除apk文件;7.用模拟器测试system.img文件,这儿会重新生成system.img文件。

    二、下载和编译linux内核源代码:下载linux内核源代码;这里下载的android代码并没有包含linux内核源代码,需要单独下载,这儿有下载内核源代码的步骤:git clone http://android.googlesource.com.kernel/common.git,执行这个命令可以下载到最新的内核源代码,查看当前的远程版本用git branch -a ,使用git checkout -b android-3.0 remotes/origin/android-3.0到处android3.0的内核;linux内核源代码的目录结构;安装android内核的编译环境:准备工作;解压编译器;验证交叉编译器是否安装成功;安装libncurses5;配置和编译linux内核。现在已经成功的搭建了交叉编译环境,可以尽情使用吧!

  • 相关阅读:
    SCAU 9504 面试
    SCAU 9503 懒人选座位
    SCAU 8628 相亲
    SCAU 10691 ACM 光环
    SCAU 8626 原子量计数
    SCAU 10674 等差对
    HDU ACM 1048 The Hardest Problem Ever (水题)
    SCAU 9502 ARDF
    SCAU 10686 DeathGod不知道的事情
    SCAU 8629 热身游戏(高精度)
  • 原文地址:https://www.cnblogs.com/zhaoruixia/p/5435759.html
Copyright © 2011-2022 走看看