• Android驱动开发前的准备(四)


    源代码的下载和编译

    4.1 下载、编译和测试Android源代码

    4.2下载和编译linux内核源代码

    4.1.1 配置Android源代码下载环境

    (1) 创建一个用于存放下载脚本文件的目录

    # mkdir -/bin
    
    # PATH=-/bin:$PATH

    (2) 下载repo脚本文件

    # curl https://dl-ssl.google.com/dl/goolesource/git-repo> -/bin/repo
    
    # chmod a+x ~/bin/repo

    (3) 创建用于存放Android源代码的目录

    # mkdir android _source
    
    # cd android_source

    (4) 初始化

    # repo init -u http://android.googlesource.com/platform/manifest

    (5) 开始下载android源代码

    # repo sync

    4.1.2 Android源代码目录结构解析

                     Android源码目录结构

                       

    4.1.3 下载android源代码中的一部分

    法一:使用repo sync命令

    #  repo sync platform/bootable/recovery

    法二:使用git clone 命令

    # git clone https://android.googlesource.com/<project name>

    4.1.4编译android源代码

    (1)初始化编译环境

    # source build/envsetup.sh或#. Build/envsetup.sh

    (2)选择目标

    # lunch full-eng

    (3)编译Android源代码

    # make -jn

    4.1.5 out目录结构分析

      out目录结构

    Out目录是存放Android源代码生成的目标文件的默认目录,out目录里只有两个直接的子目录:host和target

    4.2 下载和编译linux内核源代码

    要想使用linux内核,必须单独下载linux内核源代码

    4.2.1下载linux内核源代码

    # git clone https://android.googlesource.com/kernel/common.git

    4.2.2 linux 内核源代码的目录结构

     Linux内核源代码目录的含义

    4.2.3安装Android内核的编译环境

    (1)准备工作

    将arm-linux-gcc-4.3.2tgz文件和arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录

    (2)解压编译器

    # tar xzvf arm-linux-gcc-4.3.2.tgz -C /
    
    # tarjxvf arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2 -C /

    (3)验证交叉编译器是否安装成功

    # ls /usr/local/arm -l

    (4)安装libncurses5

    # apt-get install libncurses5-dev

    4.2.4  配置和编译linux内核

    可以使用以下命令进行编译

    # export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH
    
    # cd ~/linux_kernel
    
    # make clean
    
    # make

    小结:

      Android移植主要就是linux内核的移植,而linux内核的移植主要是linux驱动的移植,所以为了开发和测试linux驱动需要在Ubuntu linux下搭建两套开发环境:Android应用程序开发环境和linux内核开发环境。

  • 相关阅读:
    RPC学习
    json
    jsf
    ajax分析
    async分析
    web后台
    servlet和CGI区别(转)
    forward和redirect
    (转)jvm
    Async分析
  • 原文地址:https://www.cnblogs.com/wy3983/p/5424806.html
Copyright © 2020-2023  润新知