一次Android操作系统源码的编译经验

2768阅读 0评论2012-10-09 fjzhuozl
分类:

    最近根据看到的资料编译了一遍Android操作系统的源码,结果是成功的,但过程是曲折,首先要说的是前提条件,这个很重要,我开始就是因为没有满足前提条件而多走了许多弯路。
    1、从获取最新的Android源码编译资料,这个不是下面编译必须用到的,
但确是所有有关Android操作系统源码的编译资料中较为准确的。

    2、使用ubuntu linux 12.04 LTS,如果你要按照我写的尝试一下就选这个,这样可以节省你的时间;

    3、安装相关软件包

点击(此处)折叠或打开

  1. sudo apt-get install git-core
  2. sudo apt-get install gnupg
  3. sudo apt-get install flex
  4. sudo apt-get install bison
  5. sudo apt-get install gperf
  6. sudo apt-get install libsdl-dev
  7. sudo apt-get install libesd0-dev
  8. sudo apt-get install build-essential
  9. sudo apt-get install zip
  10. sudo apt-get install curl
  11. sudo apt-get install libncurses5-dev
  12. sudo apt-get install zlib1g-dev
      在我写这篇文章时,上述安装都是成功的,但到您看到时是否成功就不敢保证了,因为有可能有些软件源
已经发生变化了,如果出现这种情况可以根据安装中出现的提示中的关键词上网上查查最新的解决方案,一般都
是更新软件源,下面是更新软件源的一般方法:
    【备份软件源】
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    (如果想恢复原来的软件源执行:sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list)
    【编辑软件源】
    sudo gedit /etc/apt/sources.list
    将更新的软件源在文件尾部添加并保存退出
    【更新软件源】
    sudo apt-get update

    4、安装java jdk
    (1)如果系统已经安装了jdk和jre最好先卸载掉;(apt-get remove jdk软件名)
    (2)更新jdk软件源
     sudo add-apt-repository " deb hardy multiverse"
     sudo apt-get update
    (3)安装java jdk6
     sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk
     (4)安装java jdk5
     sudo apt-get install sun-java5-jdk
     (5)修改javadoc的link

点击(此处)折叠或打开

  1. cd /etc/alternatives
  2. sudo rm javadoc.1.gz
  3. sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
  4. sudo rm javadoc
  5. sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
   
    5、设置环境变量
    sudo gedit ~/.bashrc
    在文件尾部添加

点击(此处)折叠或打开

  1. JAVA_HOME=/usr/lib/jvm/java-6-sun
  2. JRE_HOME=${JAVA_HOME}/jre
  3. export ANDROID_JAVA_HOME=$JAVA_HOME
  4. export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
  5. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  6. export JRE_PATH=$JAVA_PATH
  7. export JAVA_HOME;
  8. export JRE_HOME;
  9. export CLASSPATH;
  10. HOME_LIB=~/bin/
  11. export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};
  12. #echo $PATH
     执行:source ~/.bashrc
     建议:干到这里最好重启一下ubuntu。

     6、安装编译工具
    【先解决一个android官网下载不了的问题】
      sudo gedit /etc/hosts
      在文件尾部追加一句:74.125.237.1 dl-ssl.google.com

     cd ~
     mkdir bin
     以下命令用/source/downloading.html上的
     curl > ~/bin/repo
     chmod a+x ~/bin/repo

     7、安装gcc4.4  

点击(此处)折叠或打开

  1. sudo apt-get install gcc-4.4
  2. sudo apt-get install g++-4.4
  3. sudo apt-get install g++-4.4-multilib
  4. sudo rm -rf /usr/bin/gcc /usr/bin/g++
  5. sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
  6. sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
     
      8、安装python
       sudo apt-get install python
     
      9、下载Android源代码

点击(此处)折叠或打开

  1. mkdir ~/work/android-cts-2.2_r8
  2. cd ~/work/android-cts-2.2_r8
  3. repo init -u -b android-cts-2.2_r8
  4. repo sync
       这是一个漫长的过程,最好在个假期中进行。、

     10、将源代码中有关java版本校验的信息注释掉
      cd ~/work/android-cts-2.2_r8
      gedit ./build/core/main.mk

点击(此处)折叠或打开

  1. # Check for the correct version of java
  2. #java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
  3. #ifeq ($(strip $(java_version)),)
  4. #$(info ************************************************************)
  5. #$(info You are attempting to build with the incorrect version)
  6. #$(info of java.)
  7. #$(info $(space))
  8. #$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
  9. #$(info The correct version is: 1.5.)
  10. #$(info $(space))
  11. #$(info Please follow the machine setup instructions at)
  12. #$(info $(space)$(space)$(space)$(space)/download)
  13. #$(info ************************************************************)
  14. #$(error stop)
  15. #endif

  16. # Check for the correct version of javac
  17. #javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
  18. #ifeq ($(strip $(javac_version)),)
  19. #$(info ************************************************************)
  20. #$(info You are attempting to build with the incorrect version)
  21. #$(info of javac.)
  22. #$(info $(space))
  23. #$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
  24. #$(info The correct version is: 1.5.)
  25. #$(info $(space))
  26. #$(info Please follow the machine setup instructions at)
  27. #$(info $(space)$(space)$(space)$(space)/download)
  28. #$(info ************************************************************)
  29. #$(error stop)
  30. #endif
      11、编译前的最后一次准备

点击(此处)折叠或打开

  1. cd ~/work/android-cts-2.2_r8
  2. source ./build/envsetup.sh
  3. lunch full-eng
      12、编译源代码
      好了经过漫长的准备终于可以编译了。

点击(此处)折叠或打开

  1. cd ~/work/android-cts-2.2_r8
  2. make
     这个也是个漫长的过程,在假期中耐心等待吧。

      13、运行编译察看结果
      如果上面编译成功的话我们就可以进行这一步用虚拟机看看结果了。
      (1)到Android官网下载SDK,http://developer.android.com/sdk/index.html
       (2)将下载的SDK解压缩到主文件夹,并改名为android-sdk-linux。
       (3)sudo gedit /etc/profile
                将
                export PATH="$PATH:~/android-sdk-linux/tools"
                写入文件最后
        (4)sudo gedit ~/.profile
                 将

点击(此处)折叠或打开

  1. export PATH="$PATH:$HOME/work/android-cts-2.2_r8/out/host/linux-x86/bin"

  2. ANDROID_PRODUCT_OUT=$HOME/work/android-cts-2.2_r8/out/target/product/generic
  3. export ANDROID_PRODUCT_OUT
                 写入文件结尾。
          (5)用android 命令打开Android SDK Manager界面,下载安装android2.2的SDK Platform。
          (6)终于可以看结果了

点击(此处)折叠或打开

  1. cd ~/work/android-cts-2.2_r8/out/target/product/generic
  2. 创建一个avd用于测试, android create avd -n a_avd -t 1
  3. emulator -image system.img -data userdata.img -ramdisk ramdisk.img -avd a_avd&




    
    



上一篇:Mysql编码转换实践总结
下一篇:Spring @Transactional