• (转)编译Android源码的全过程


    在网上看到一篇编译android源码的文章,照着做挺行的, 

    通过参考网上的相关资料,我编译Android源码的步骤如下: 

        * 1 我的系统是Ubuntu 8.04 
        * 2 系统上必须安装以下工具(摘自网上的资料): 
          
           sudo apt-get install build-essential 
           sudo apt-get install make 
           sudo apt-get install gcc 
           sudo apt-get install g++ 
           sudo apt-get install libc6-dev 
          
           sudo apt-get install flex 
           sudo apt-get install bison 
           sudo apt-get install patch 
           sudo apt-get install texinfo 
           sudo apt-get install libncurses-dev 
          
           sudo apt-get install git-core gnupg  //(gnupg系统可能已自带) 
           sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl 
           sudo apt-get install ncurses-dev 
           sudo apt-get install zlib1g-dev 
           sudo apt-get install valgrind(可选,有21M大,我觉得一般人是用不到的) 
           sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.04 已经自带) 
           sudo apt-get install sun-java5-jdk 
          
           注意: 
           a. 不要用 sun-java6-jdk, 不然在make sdk, 具体来说是make doc这一步中, 遇到这个错误: 
             Docs droiddoc: out/target/common/docs/dx 
             javadoc: error - In doclet class DroidDoc, method start has thrown an 
             exception java.lang.reflect.InvocationTargetException 
             com.sun.tools.javac.code.Symbol$CompletionFailure: class file for 
             sun.util.resources.OpenListResourceBundle not found 
           b. 网上资料说需要设置环境变量, 但我并没有设置: 
            export ANDROID_JAVA_HOME=$JAVA_HOME 
           
           c. 网上并没有提及要安装ncurses-dev, 但安装之前我编译过程中会出现编译错误. 
          
        * 3 建立android源码的存放目录 
           $ mkdir ~/open_src 
           $ mkdir ~/open_src/android 
           $ cd ~/open_src/android 
           $ mkdir bi 
        * 4 下载repo脚本,放到~/open_src/android/bin目录下,加上可执行权 

              $ curl http://android.git.kernel.org/repo > repo 
              $ sudo mv repo ~/open_src/android/bin 
              $ sudo chmod a+x ~/open_src/android/bin/repo 

        * 5 在源码存放目录android中执行 
           $ ~/open_src/android/bin/repo init -u git://android.git.kernel.org/platform/manifest.git 
           //中间会提示输入电子邮件什么的,如果你打算要提交patch的话,用google accounts注册过的邮箱 
          
        * 6 在android目录中执行repo sync就可以开始下载源码了. 
           我们也可以从其他地方把源码复制到android目录, 而我正是这么做的. 
        * 7 编译源码, 并得到~/open_src/android/out 目录 
           在命令行执行make命令: 
           $make 
           这是一个很漫长的过程, 等吧...... 
        * 8 测试运行 
           8.1 先设置环境变量: 
            打开~/.bashrc文件, 并在最后添加下面两行: 
            export PATH=$PATH:~/open_src/android/out/host/linux-x86/bin 
            export ANDROID_PRODUCT_OUT=~/open_src/android/out/target/product/generic 
          
           8.2 运行模拟器: 
            emulator --debug-init -skin QVGA-L  //可能会提示unknown option: --debug-init, 去掉--debug-init即可 
            或者直接执行emulator, 这样使用的是默认的皮肤 
          
           如果最后能进入到系统并看到一个大时钟, 说明就大功告成了. 
          
          
        * 9 后续编译: 

               先在android目录下执行 
               $ . build/envsetup.sh 
               然后你就会多出几个可用的命令。在改了Contacts联系人项目后,可以简单的执行一下命令来单独编译这个部分: 
               $mmm packages/apps/Contacts/ 
              为了可以直接测试改动,需要生成新的system.img,在android目录下执行: 
               $ make snod 
              当然,如果你改动的是emulator或者其它外围相关的,而非系统内部的东西,就不只是要重新生成system.img了 
    http://blog.csdn.net/liaoshengjiong/archive/2009/03/04/3957749.aspx 
    http://hi.baidu.com/garnetttt/blog/item/13426d222f72b3ae4623e8f3.html

  • 相关阅读:
    ASP.NET常见安全缺陷集锦[转]
    林黛玉出家:给予中国给予我们的警示![摘]
    关于管理 关于经营 还有很多东西都无从做好
    ASP.NET 2.0的新增服务、控件与功能
    将可视的DataGrid、DataList等的规范表数据导出并写入xls或doc格式保存
    2006全球最具影响力品牌
    .NET环境下水晶报表使用总结[转]
    Asp.net(C#)分层——基础类
    Asp.Net传参方式小结
    MSN签名都成了广告位
  • 原文地址:https://www.cnblogs.com/greywolf/p/3031184.html
Copyright © 2020-2023  润新知