• Android探索与驱动开发学与思(4)


    涉及到源代码,及上一章所学的git下载的两套源代码,一套是Android源代码,全部下载将近4GB大小,其含金量可想而知。另一套是Android核心部分的linux内核源代码,解压之后几百MB。
     首先我们学习下载、编译、和测试Android源代码。
     1.配置Android源代码下载环境
      (1)创建一个用于存放下载脚本文件(repo)的目录
      (2)下载repo脚本文件
      (3)创建用于存放Android源代码的目录
      (4)初始化
      (5)开始下载Android源代码
    Android源代码目录结构分析
    下载Android源代码中的一部分
      下载Android源代码中的某个项目有两种方法:方法一、使用repo sync命令  方法二、使用git clone 命令
    编译Android源代码
     第一步:初始化编译环境 第二步:选择目标  第三步:编译Android源代码
    Out目录结构分析
    将自己的APK作为Android内置程序发布
    用模拟器测试System.img文件
    第二部分我们学下载和编译linux内核源代码
    下载linux内核源代码
    Linux内核源代码的目录结构
    安装Android内核的编译环境
      第一步:准备工作 第二步:解压编译器 第三步:验证交叉编译器是否安装成功  第四步:安装libncurses5
    配置和编译linux内核
    下载、编译linux内核源代码
        在此之前,我们已经接触过linux内核:尤其是内核编译,因此此处相对于我们而言是容易理解的。
        内核编译:1.下载linux内核源代码:git clone https://android.goolesource.com/kernel/common.git;2.在当前目录进入common目录:git branch -a【查看当前有哪些远程版本库】;3.导出最新的linux内核:git checkout -b android-3.0 remotes/origin/android-3.0;4.下载相应的内核:git clone               http://android.goolesource.com/kernel/goldfish.git;5.进入goldfish目录,导出goldfish:git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29.
                    2.了解linux内核源代码的目录结构:详见【《嵌入式linux应用程序开发》或者《android深度探索 卷1》】其中:arch目录:与CPU架构相关的源代码和配置文件。init:初始化内核程序的实现代码。samples:一些内核编程的实例等等。
                    3.安装内核编译环境:交叉编译环境,最开始老师亲自带我们安装过交叉编译环境,但是我仍然失败了,主要原因就是对于其中的很多知识或者代码的应用并不是很熟练。此前,第二章已经介绍过如何安装交叉编译环境,此处,我们需要了解,在编译linux内核之前,需要配置linux的Makefile文件:ARCH    ?=arm[以便于在ARM结构上运行]以及CROSS_COMPILE【交叉编译器前缀】?=arm-none-linux-guneabi-.
                    4.配置和编译linux内核:假设linux内核目录:/root/linux_kernel,那么我们使用如下命令:
                    export PATH=/root/complilers/arm-none-linx-guneabi/bin:$PATH
                     cd ~/linux_kernel
                     make clean【清除大多数由编译生成的文件.ko等,但保留配置文件】
                     make
                     除了make clean外,还有两个清除命令:make mrproper【清除所有由编译所产生的文件+配置文件】;make distclean【make mrporper+删除编辑器留下的备份文件+补丁文件】。
                      除此之外,以下四个命令必须在根目录中执行:make config【文本形式配置】、make menuconfig【字符界面风格的菜单形式】、make oldconfig【字符界面逐项要求用户配置,但是要比make menuconfig少】、make xconfig【以图形化界面形式配置】。
                       最后,成功编译linux后,会在<内核源代码根目录>/arch/arm/boot目录生成一个zImage文件。

    本章的内容基本就是如何搭建这两种开发环境,其中linux内核开发环境是重点。

  • 相关阅读:
    Visual Studio 中创建带有向导的项目模板
    通过.NET Remoting调用CCNET接口的方法
    django单元测试历险记
    我的测试生活感悟3 淘宝的接口测试白皮书
    期待《 Beautiful Testing 》( 测试之美 )
    我的测试生活感悟4 谈谈面试
    NancyBlog 我的Google App Engine Blog
    我的测试生活感悟1
    我的测试生活感悟2 Art Of Unit Testing
    《微软的软件测试之道》(How We Test Software at Microsoft)
  • 原文地址:https://www.cnblogs.com/wstone/p/5442092.html
Copyright © 2020-2023  润新知