• Ubuntu上编译Android过程


    android的源代码下载的官方网站是:http://source.android.com
    源代码的下载说明页面是:http://source.android.com/download

    其实英文好的朋友大可不必看偶在此罗嗦,直接follow google的说明就行了,一切都很简单。

    下面就把android platform在slackware 12.0上面的下载、编译过程汇总一下:

    (1)当然了,需要安装slackware 12.0或者更高版本的linux发行版,直接选择“full”模式,完全安装

    (2)确认环境是否达到了要求,你可以在linux下面建立一个账户,然后在账户的目录下面查看是否满足如下的要求:
    a)git (1.5.4或者以上版本,slackware 12.0本身就是1.5.5的)
    b)python (2.4或者以上的版本,slackware 12.0本身应该是2.5的)
    c)jdk5.0以上的版本,这个slackware 12.0没有,slackware只有java的运行环境而已,于是登录:
    http://java.sun.com/javase/downloads
    下载一个即可,我下载的是jdk5.0 update 10的版本,理论上应该越高越好吧。
    然后,就用chmod a+x jdkxxxxxxx.bin,然后运行,安装到你的机器上即可。
    (注:当然了,也可以直接su成root把安装包弄到/usr/local目录下面去)

    然后有一个网络方面的设置需要注意,运行如下程序:
    /usr/local/jdk-xxxxxxx/bin/ControlPanel
    选择在network里面选择setting,然后把连接类型设置为Direct Connection。

    (3)创建工作目录,进入工作目录,创建bin目录:
    mkdir ~/works
    mkdir ~/works/android_dev
    cd ~/works/android_dev

    mkdir bin

    (4)下载安装repo版本管理工具
    curl http://android.git.kernel.org/repo > ~/works/android_dev/bin/repo
    cd bin
    chmod a+x repo

    (5)开始准备下载android
    cd ~/works/android_dev
    ./bin/repo init -u git://android.git.kernel.org/platform/manifest.git
    通常情况下会出现error提示(如果是以前没有创建过repo账户的话),这个不要紧,忽略掉它好了。

    (6)配置repo账户
    git config --global user.email "[email=xxxxx@xxxxxxx]xxxxx@xxxxxxx[/email]"
    git config --global user.name "xxxxxx"

    (7)开始下载android platform的源代码
    repo sync
    这个操作会持续一段时间,看网速了;google上面说的源代码占用2.1G的硬盘空间,但似乎没有那么大,只有900M左右。

    (8)好了,现在准备一下环境变量
    最好在.bashrc或者在/etc/profile文件中添加环境变量定义:
    export ANDROID_JAVA_HOME=$JAVA_HOME
    需要logout,再login一下,然后用:
    echo $ANDROID_JAVA_HOME
    命令来确认一下环境变量是否已经生效

    (9)修改一个小“bug”
    理论上在ubuntu上面可以直接开始编译了,但是在slackware上似乎还需要手工修改一个编译脚本上的bug,找到如下文件:
    ~/works/android_dev/external/sqlite/dist/Android.mk
    找到下面这一行:

    ifneq ($(strip $(have_readline)),)
    LOCAL_LDLIBS += -lreadline
    endif

    这里只有一个-lreadline,对于slackware来说就不够了,编译的时候会出现libreadline.so:undefinedreference 'PC'之类的错误。修正的方法很简单,就是直接在这一句的后面加上-lncurses,改正后应该是这个样子的:
    LOCAL_LDLIBS += -lreadline -lncurses
    好了,然后就可以开始放手编译了。
    (10)编译
    make
    好了,然后就可以出去晃晃,喝杯咖啡了(足够你喝很多很多杯的咖啡)。
    编译完毕以后,会发现在代码目录下多了一个目录:
    ~/works/android_dev/out
    这就是生成的结果了,此时不要着急,需要先再设置一下环境变量方法同(8):
    export ANDROID_PRODUCT_OUT=/home/wayne/works/android_dev/out/target/product/generic
    设置完了以后,需要logout,再login一次才可以喔,更新环境变量。
    (11)开始验证生成的结果
    进入android_dev/out/host/bin/目录下,然后运行:
    emulator --debug-init -skin QVGA-L [回车]
    应该看到以下的画面(第一次开启的时候,应该还有一个向google反馈的一个对话框,按下确定即可):
     



    到了这一步,恭喜恭喜!呵呵,基本上已经编译通过了,要想编译成arm板子上可以跑的版本还需要进一步修嘎android的编译脚本才可以。具体的操作,就不在这里罗嗦了。

  • 相关阅读:
    ios开源项目2
    Cocoa 框架 For iOS(一) 框架的介绍
    iPhone开源项目大全
    8款iOS的日历开源代码
    二维码扫描工具和开发包 ZBar
    图文解释XCode常用快捷键的使用
    常用的iOS高效开源类库
    static_cast
    [转]SecureCRT rz 上传文件失败问题
    Linux中的EAGAIN含义
  • 原文地址:https://www.cnblogs.com/shenhaocn/p/1709750.html
Copyright © 2020-2023  润新知