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内核。现在已经成功的搭建了交叉编译环境,可以尽情使用吧!

  • 相关阅读:
    svn自动部署
    【阿里云】Windows2008 FTP配置指南
    thinkphp 3.2多语言设置
    iphone、ipod Touch、ipad触屏时的js事件
    Nginx区分PC或手机访问不同网站
    Nginx Location配置总结及基础最佳实践
    阿里云官方教程 Linux 系统挂载数据盘
    利用php调用so库文件中的代码
    LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)
    Android深入理解Context(三)Context完全解析
  • 原文地址:https://www.cnblogs.com/zhaoruixia/p/5435759.html
Copyright © 2011-2022 走看看