zoukankan      html  css  js  c++  java
  • 学习源代码的下载和编译心得

    这一部分主要介绍了下载和编译Android源代码和Linux内核源代码,以及如何搭建这两种开发环境。

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

    (1)配置Android源代码下载环境

    1.创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件一放到任何目录中,在这里使用~/bin)

    #mkdir ~/bin

    #PATH=~/bin:$PATH

    2.下载repo脚本文件(用于下载Android源代码)

    #curl https://dl-ssl.google.com/dl/googlesourse/git-repo/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接下来就是漫长的等待

    Android源代码目录结构解析

    (2)下载Android源代码中一部分

    有2种方法:

    方法1.使用repo sync命令(执行repo sync命令前仍然需要使用repo init初始化)

    方法2.使用git clone命令下载指定工程源代码

    (3)编译Android源代码

    1.初始化编译环境

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

    envsetup.sh脚本文件主要用来初始化一些编译命令,如mm、mmm等。其中mm、mmm是两个很重要的命令,它们都可以编译Android源代码中指定的工程。

    2.选择目标,使用lunch命令设置编译目标

    #lunch full-eng

    3.编译Android源代码

    #make -j4(如果在多核的PC上不加-jn命令行参数,make命令只会利用一个CPU核进行编译)

    二.下载和编译Linux内核源代码

    (1)下载Linux内核源代码。执行下面的命令下载最新的Linux内核源代码:

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

    下载完成后,在当前目录下会有一个common目录,进入该目录,执行下面的命令查看当前有哪些远程版本库。

    #git branch -a

    我们可以根据版本库情况从版本库导出最新Linux内核,如:#git checkout -b android-3.0 remotes/origin/android-3.0

    (2)安装Android内核的编译环境

    (3)配置和编译Linux内核(假设Linux内核源代码目录是/root/linux_kernel)

    1.使用下面的命令编译Linux内核:

    #export PATH=/root/compliers/arm-none-linux-gnueabi/bin:$PATH

    #cd ~/linux _kernel

    #make clean,用于清除大多数由编译生成的文件(.o、.ko等文件),但保留配置文件。

    #make

    2.一般新下载的Linux源代码根目录没有.config文件。然而这个文件决定了编译生成的Linux内核由哪些功能和模块组成。因此,第一次拿到Linux内核时应先配置linux内核。

    #make menuconfig,以界面风格的菜单形式配置Linux 内核

    进入“General setup”菜单项的子菜单。选择“Cross-compiler tool prefix”菜单项,按回车键后,要求输入交叉编译器的前缀,输入arm-none-linux-gnueabi-,退出保存设置即可。

    在结束所有的设置后,执行make命令编译Linux内核。

    成功编译Linux内核后,会在<LInux内核源代码根目录>/arch/arm/boot目录生成一个zImage文件,它就是Linux内核 二进制版本。

    三.使用下面的命令在Android模拟器中测试Linux内核(需要使用由goldfish编译而成的zImage文件)

    #emulator -avd myavd -kernel /root/kernel/goldfish/arch/arm/boot/zImage

    其中myavd是一个AVD名称。

  • 相关阅读:
    【Scrum】2.18
    【scrum】2.22
    绿色软件 Vs 安装软件
    【Scrum】2.21
    【scrum】2.15
    读《design pattern》有感
    让广告再播一会儿~
    Qt::日志处理
    终于在博客园开通了
    惹毛程序员的十件事
  • 原文地址:https://www.cnblogs.com/zhanghui4521/p/zhanghui.html
Copyright © 2011-2022 走看看