• Ubuntu环境Android平台源码下载及编译 .


    转载来自:http://blog.csdn.net/songjinshi/article/details/7888428

    [+]

    一、初始环境搭建

    1、安装JDK

    下面是安装Java 6的命令格式,按照顺序在终端中执行:

    Java 6(for android 2.1+):

    $ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"

    $ sudo apt-get update

    $ sudo apt-get install sun-java6-jdk

    假如你想切换JAVA版本(安装多个JAVA版本时),输入如下指令:

    sudo update-alternatives --config java

    sudo update-alternatives --config javac

    使用如下指令查看当前的Java版本号:

    java -version

    2、安装编译工具

    以下命令,一次执行全部需要的编译工具安装

    $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libz-dev libgl1-mesa-dev

    天缘在测试时使用上面的配置,似乎没发现缺少什么,如果缺少某个软件包,可使用命令再单独补充安装,比如安装libc6-dev-i386,命令如下:

    sudo apt-get install libc6-dev-i386

    二、下载Android源码

    3、创建工作目录

    进入工作目录(比如works),创建bin目录:

    mkdir ~/works

    mkdir ~/works/android_dev

    cd ~/works/android_dev

    mkdir bin

    4、安装repo版本管理工具(基于git基础开发,便于git资源管理)

    curl http://android.git.kernel.org/repo > ~/works/android_dev/bin/repo

    cd bin

    chmod a+x repo

    关于repo更多参考:http://source.android.com/source/version-control.html

    5、准备下载Android源码

    cd ~/works/android_dev

    ./bin/repo init -u git://android.git.kernel.org/platform/manifest.git

    这里默认下载最新的的版本(2.3),如果下载其它版本,请使用类似下面命令(后面为版本简称):

    repo init -u git://android.git.kernel.org/platform/manifest.git -b cuccake

    6、配置repo账户

    git config --global user.email "[email=abc@gmail.com]abc@gmail.com[/email]"

    git config --global user.name "ABc"

    7、开始下载android platform的源代码

    ./bin/repo sync

    由于 android 的源码很大,现在新版本的完整源码已经高达 3G 以上,都是从GG官方下载,速度很慢(时间大约要一个晚上),执行后可以回家睡觉或出去通宵均可,有一点需注意在下载之前一定要确保你的磁盘可用空间足够。

    如要下载 kernel(即Linux内核源码):

    $repo sync kernel

    8、添加公钥

    $ gpg --import

    该命令是交互式导入公钥,参照Google官方说明,这个公钥是用来签名TAGS以表明该版本为RELEASE版本(这里翻译似乎有点问题,原话是The key is used to sign annotated tags that represent releases)这一步不执行仍时可以正常编译的,但如编译Release版本时,建议加上,gpg(GNU Privacy Guard)是个开源加解密软件,交互导入密钥参考上文的官方downloading.html这个页面,还可参考文末地址。

    9、选择版本

    $ git tag -v tagname

    只需选择版本就可以了,是普通版还是精简版或是其它,直接敲数字和回车就可以了。

    三、编译Android源码

    10、更新环境变量(选择编译目标)

    source build/envsetup.sh

    11、选择编译目标对象

    命令格式:BUILD-BUILDTYPE,其中BUILD和BUILDTYPE可参考官方网页【编译参考3和编译参考4】。命令如果不支持或打错会有提示信息。比如:

    lunch full-eng

    其它命令如,

    lunch full_crespo-userdebug

    汇总格式如下:

    lunch (generic,full,full_crespo,crespo4g,passion)-(user,userdebug,eng)

    上面是默认的设置,如果需要针对开发用机,可以选择使用source build/envsetup.sh命令查看,Android 2.3代码支持htc,sumsung等三款目标机型。更多请参考上文提及的官方网页,官方提到Nexus S和Nexus s 4G是Android开源项目的推荐用机,而Nexus One只是试验用机且不被支持(何意?原生代码编译后无法烧到Nexus One??)。

    12、编译Android源码

    make -j4

    注意:该指令是带杠的jn(起初天缘总是不能运行,就直接用make了,三天后才发现原来丢了个杠杠*_*),按照官方介绍,后面这个-jn是你机子CPU数*核心数*单CPU线程数*(1或2),编译时间大概40分钟-2个小时,看机子性能了,最终编译结果在:

    ~/works/android_dev/out

    另外,编译之前建议把/works/android_dev整个目录备份一下,下次如果重装系统,可以直接拷贝过来使用,再编译时可能需要设置一下权限(chmod -R 777 android_dev),否则可能错误多多。

    四、运行Android虚拟机

    13、先设置环境变量

    指令如下:

    export ANDROID_PRODUCT_OUT=/works/android_dev/out/target/product/generic

    设置完成后,先logout退出,再login登录进来即可更新环境变量。

    注意,这里的环境变量设置也可以起初放到系统的配置文件里,.bashrc,天缘实测好像就这么一句就OK了,网上有说要设置如下几个(如果运行有问题时可以尝试使用,指令中部分路径可能需替换成你自己的设置):

    export ANDROID_DIR=~/works/android_dev

    export ANDROID_PRODUCT_OUT=${ANDROID_DIR}/out/target/product/generic

    export ANDROID_PRODUCT_OUT_BIN=${ANDROID_DIR}/out/host/linux-x86/bin

    export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

    14、运行编译结果

    进入android_dev/out/host/bin/目录下,然后运行:

    emulator --debug-init -skin QVGA-L

    或:

    ./emulator

  • 相关阅读:
    53. Maximum Subarray
    Search Insert Position
    Single Number II
    260. Single Number III
    136. Single Number
    338. Counting Bits
    axios实现拦截器
    Vuex入门(5)—— 为什么要用Action管理异步操作
    ES6语法(3)—— 用promise()对象优雅的解决异步操作
    Vuex之理解Getters的用法
  • 原文地址:https://www.cnblogs.com/start530/p/3834407.html
Copyright © 2020-2023  润新知