android froro 编译

本文详细介绍了从安装环境、配置变量到编译Android源码、运行模拟器的完整步骤,包括安装Java环境、设置环境变量、编译模块、编译SDK等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

本次编译过程主要参考官方文档(http://source.Android.com/download)

 

1、安装一些环境

  1. sudo apt-get install build-essential  
  2.  sudo apt-get install make  
  3.  sudo apt-get install gcc  
  4.  sudo apt-get install g++  
  5.  sudo apt-get install libc6-dev  
  6.    
  7.  sudo apt-get install patch  
  8.  sudo apt-get install texinfo  
  9.  sudo apt-get install libncurses-dev  
  10.    
  11.  sudo apt-get install git-core gnupg  
  12.  sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl  
  13.  sudo apt-get install ncurses-dev   
  14.  sudo apt-get install zlib1g-dev  
  15.  sudo apt-get install valgrind  
  16.  sudo apt-get install python2.5 

安装java环境

  • sudo apt-get install sun-java5-jre sun-java5-plugin sun-java5-fonts sun-java5-jdk 
  • 如果安装失败,可以去JAVA官网下载JDK1.5的安装包(http://java.sun.com/javase/downloads/5u22/jdk
    )

     

    2、设置环境变量 (如果是安装JAVA官网的JDK,可以跳过了)

    vim ~/.bashrc 

    在.bashrc中新增或整合PATH变量,如下

    1. #java 程序开发/运行的一些环境变量 
    2. JAVA_HOME=/usr/lib/jvm/java-5-sun  
    3. JRE_HOME=${JAVA_HOME}/jre  
    4. export Android_JAVA_HOME=$JAVA_HOME  
    5. export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH  
    6. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
    7. export JAVA_HOME;  
    8. export JRE_HOME;  
    9. export CLASSPATH;  
    10. HOME_BIN=~/bin/  
    11. export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};  
    12. #echo $PATH; 

    最后,同步这些变化:

    source ~/.bashrc

     

    3、编译Android源码,并得到~/project/Android/cupcake/out 目录

    进入Android源码目录:

    make

    这一过程很久(2个多小时)

     

     

    4、在模拟器上运行编译好Android

     

         Android SDK的emulator程序在Android-sdk-linux_x86-1.0_r2/tools/下,emulator是需要加载一些image的,默认加载Android-sdk-linux_x86-1.0_r2/tools/lib/images下的kernel-qemu(内核) ramdisk.img  system.img  userdata.img

     

        编译好Android之后,emulator在~/project/Android/cupcake/out/host/linux-x86/bin下, ramdisk.img  system.img  userdata.img则在~/project/Android/cupcake/out/target/product/generic下

    cd ~/project/Android/cupcake/out/host/linux-x86/bin

     

    增加环境变量

    vim ~/.bashrc

     

    在.bashrc中新增环境变量,如下

    直接make Android源码时,并没有make linux kernel。因此是在运行模拟器,所以不用编译 linux kernel。如果要移值Android,或增删驱动,则需要编译 linux kernel

    linux kernel的编译将在以后的文章中介绍。

     

    6、编译模块

    Android中的一个应用程序可以单独编译,编译后要重新生成system.img

    在源码目录下执行

    . build/envsetup.sh (.后面有空格)

     

    就多出一些命令:

  • - croot:   Changes directory to the top of the tree.  
  • - m:       Makes from the top of the tree.  
  • - mm:      Builds all of the modules in the current directory.  
  • - mmm:     Builds all of the modules in the supplied directories.  
  • - cgrep:   Greps on all local C/C++ files.  
  • - jgrep:   Greps on all local Java files.  
  • - resgrep: Greps on all local res/*.xml files.  
  • - godir:   Go to the directory containing a file.

    可以加—help查看用法

    我们可以使用mmm来编译指定目录的模块,如编译联系人:

     

     

    mmm packages/apps/Contacts/

     

    编完之后生成两个文件:

  • out/target/product/generic/data/app/ContactsTests.apk  
  • out/target/product/generic/system/app/ Contacts.apk 

     

    可以使用make snod重新生成system.img

    再运行模拟器

     

    make sdk

     

     

    7、编译SDK(我是使用JAVA JDk 安装包)

    1. #java 程序开发/运行的一些环境变量  
    2. export Android_PRODUCT_OUT=~/project/Android/cupcake2/out/target/product/generic  
    3. Android_PRODUCT_OUT_BIN=~/project/Android/cupcake2/out/host/linux-x86/bin  
    4. export PATH=${PATH}:${Android_PRODUCT_OUT_BIN}; 

    最后,同步这些变化:

    1. source ~/.bashrc  
    2. emulator -image system.img -data userdata.img -ramdisk ramdisk.img 

    最后进入Android桌面,就说明成功了。

    out/host/linux-x86/bin下生成许多有用工具(包括Android SDK/tools的所有工具),因此,可以把eclipse中Android SDK的路径指定到out/host/linux-x86/bin进行开发

     

    补充:如果在windows下使用SDK,则需要在windows中转变原有的SDK数据。详细请查考。

     http://blog.youkuaiyun.com/happyhell/archive/2010/07/13/5732062.aspx

     

     

     

    8、编译linux kernel --- 正在进行中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值