zoukankan      html  css  js  c++  java
  • Android深度探索读后感 第四章

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

        Android源代码包含的东西:内嵌在android系统中的应用程序:拍照,计算器,日历,相册,拨号器等的源代码;android SDK带的各种工具:如:adb,  emulator  mksdcard  apt等的源代码,android ndk的源代码。Hal源代码。

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

    1.配置android源代码下载环境:

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

    #madir  ~/bin

    #path  ~/bin :$path

    (2)下载repo脚本(用于下载源代码);

    # curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

    #chmod a+x ~/bin/repo

    (3)创建用于存放android源代码的目录(可放在其他目录中);

    # mkdir android_reource

    # cd android_source

    4)初始化;# repo init -u https://android.googlesource.com/platform/manifest 

    5)开始下载android源代码;# repo sync

    2.android源代码目录结构解析;

    android部分源代码的含义:

    abi:应用程序二进制接口;

    Device:与设备相关的代码;

    Hardware:硬件层和库。

    Sdk:在开发环境中使用的工具。

     3.下载android源代码中的一部分,

    下载android源代码的子项目的方法:

    使用reop sync命令# repo sync platform/bootable/recovery

    或是使用git clone命令:# git clone http://android.googlesourse.com/<project name>

     4.编译android源代码的步骤:第一步:初始化编译环境:

    # source build/envsetup.sh# . build/envsetup.sh 第二步;选择目标:# lunch full-eng 第三步:编译android源代码:# make   

     5.out目录结构分析;out目录是存放编译andriod源代码生成的目标文件的默认目录。镜像文件可以使用android模拟器或真机中测试。

     6.将自己的APK作为内置程序发布;为了测试文件,可以将一个自己生成的apk程序嵌入到文件中。

     7.用模拟器测试system.img文件。

    二、下载和编译linux内核源代码:

    下载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的内核;# git clone http://android,googlesourse.com/kernel/goldfish.git  

    # git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29   //导出goldfish

    安装android内核的编译环境有4个步骤:1.准备工作

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

    2.解压

    3.验证交叉编译器是否安装成功# ls /user/local/arm -1

    4.安装libncurses5# apt-get install libncurses5-dev

    5.配置和编译linux内核。

  • 相关阅读:
    websocket协议
    vue组件之间的传值
    vue中非父子组件的传值bus的使用
    $.proxy的使用
    弹性盒模型display:flex
    箭头函数与普通函数的区别
    粘贴到Excel的图片总是有些轻微变形
    centos rhel 中文输入法的安装
    vi ,默认为 .asm .inc 采用nasm的语法高亮
    how-to-convert-ppk-key-to-openssh-key-under-linux
  • 原文地址:https://www.cnblogs.com/chen06/p/5438099.html
Copyright © 2011-2022 走看看