当前位置: 网学 > 编程文档 > Android > 正文

ubuntu-android-download

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: myeducs.cn 发布时间: 13/03/17

【网学网提醒】:网学会员为大家收集整理了ubuntu-android-download提供大家参考,希望对大家有所帮助!


    作为开源手机操作系统,android一经推出,便引来业界极大的关注。Google现在的android源码的版本号已经是1.50r1的。越来越多的爱好者开始加入到android源码的研究中,下面就ubuntu9.04上如果去获得android最新源码。
    1.安装git和gnupg。输入
    $sudoapt-getinstallgit-coregnupg
    2.安装其它工具
    $sudoapt-getinstallflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-devbuild-essentialzipcurllibncurses5-devzlib1g-dev
    3.安装valgrind工具
    $sudoapt-getinstallvalgrind
    4.安装javasdk
    $sudoapt-getinstallsun-java6-jdk
    $sudoapt-getinstallsun-java5-jdk
    $cd/etc/alternatives
    $sudormjavadoc.1.gzjavadoc
    $sudoln-s/usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gzjavadoc.1.gz
    $sudoln-s/usr/lib/jvm/java-1.5.0-sun/bin/javadocjavadoc
    android仅支持1.5以上版本的javasdk,且1.6版本的javasdk在进行androidsdk编译时会出现javadoc错误,在这里我的解决办法时先安装javasdk1.6,接着安装javasdk1.5,然后将系统的javasdk链接到javasdk1.6上,仅是将javadoc和javadoc.1.gz链接到javasdk1.5上,这样做的好处是在编译android源码和进行android应用开发时,使用的是javasdk1.6,仅在编译androidsdk的doc时,使用的是javasdk1.5版本的javadoc和javadoc.1gz。
    5.下载repo工具
    $mkdir$HOME/bin
    $vi.bashrc
    加入
    exportPATH=$HOME/bin:$PATH
    $source.bashrc
    $curlandroid.git.kernel.org/repo>$HOME/bin/repo
    $cd$HOME/bin
    $chmod+xrepo
    6.导出android项目
    $cd
    $mkdirAndroid
    $cdAndroid
    $repoinit-ugit://android.git.kernel.org/platform/manifest.git
    并完成提示的配置,这样我们建立的目录就已经和Google的android源码库建立了链接。
    7.开始下载androidplatform的源代码
    $reposync
    由于android的源码很大,现在完整的代码已经高达3G以上,所以最分文件夹进行同步下载。如要下载kernel:
    $reposynckernel
    现在,就可以做别的事,让电脑自动完成源码的下载工作。
    这个操作就是下载整个Android的源码到本地,具体花费时间和网速有关,cupcake版本源码大概1.3G左右。进入$HOME/Android/可以看到Android的源码目录如下:
    --repo--主要是同步管理所用到的一系列文件
    --bionic--Android编译过程所需要的一些库
    --bootable--负责启动和备份的一些文件
    --build--最主要的一些makefile和编译配置文件
    --dalvik--经过Google优化了的java虚拟机
    --development--开发用的一些文件夹,包括模拟器和工具等
    --external--Android工程中引入的外部功能库
    --frameworks--中间件部分
    --hardware--和硬件有关的一些支持文件,包括wifi,电信模块等
    --kernel--经过了优化和修改的linux内核
    --packages--所有的上层应用包
    --prebuild--Android编译工具所
    在目录
    --system--一些系统级文件
    @@@
    kernel是要单独repoinit;reposync的。地址不一样。
    apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
    sudoapt-getinstallgit-corecurl
    这条命令会从互联网的软件仓库中安装git-core和curl。
    其中curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持很多协议,包括FTP、FTPS、HTTP、HTTPS、TELENT等,我们需要安装它从网络上获取Repo脚本文件。
    curlandroid.git.kernel.org/repo>~/bin/repo
    这句命令会下载repo脚本文件到当前主目录的/bin目录下,并保存在文件repo中。
    最后我们需要给repo文件可执行权限
    chmoda+x~/bin/repo
    接下来我们就可以利用repo脚本和Git、curl软件获取Android的源代码了:)
    首先建一个目录,比如~/android。
    然后使用下面命令获取源码:
    repoinit–ugit://android.git.kernel.org/platform/manifest.git
    这个过程会持续很长的时间(笔者下载了一天),下载完毕后会看到repoinitializedin/android这样的提示,说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。
    如果我们想拿某个分支版本的代码,而不是主线代码,需要使用-b参数指定branch的名字,比如:
    repoinit–ugit://android.git.kernel.org/platform/manifest.git–bcupcake
    如果我们只是想获取某一个project的代码,比如kernel/common,就不需要repo脚本了,直接使用Git工具即可,如果仔细研究repo脚本会发现,repo脚本其实就是组织Git工具去获取各个Project并把它们组织到同一个项目Android内。
    gitclonegit://android.git.kernel.org/kernel/common.git
    我们上面使用repo脚本获取了各个项目,那么接下来就需要把整个Android代码树同步到本地,如下:
    reposyncproject1project2…
    笔者使用reposync命令直接同步全部项目到本地。
    二、源码编译
    全部同步完毕后,进入到Android目录下,使用make命令编译,你会发现出现如下错误提示:
    hostC:libneo_cgi<=external/clearsilver/cgi/cgi.c
    external/clearsilver/cgi/cgi.c:22:18:error:zlib.h:Nosuchfileordirectory
    这个错误是因为我们缺少zlib1g-dev,需要使用apt-get命令从软件仓库中安装,如下:
    sudoapt-getinstallzlib1g-dev
    同理,我们还需要依次安装如下软件
    sudoapt-getinstallflex
    sudoapt-getinstallbison
    sudoapt-getinstallgperf
    sudoapt-getinstalllibsdl-dev
    sudoapt-getinstalllibesd0-dev
    sudoapt-getinstalllibncurses5-dev
    sudoapt-getinstalllibx11-dev
    以上软件全部安装完毕后,运行make命令
    再次编译Android源码。
    这个时候你会发现出现很多java文件无法编译的错误,打开Android的源码我们可以看到在android/dalvik/libcore/dom/src/test/java/org/w3c/domts下有很多java源文件,这意味着编译Android之前需要先安装JDK。
    首先从sun官方网站下载jdk-6u16-linux-i586.bin文件并安装它。
    在Ubuntu8.04中,/etc/profile文件是全局的环境变量配置文件,它适用于所有的shell。在我们登陆Linux系统时,首先启动/etc/profile文件,然后再启动用户目录下的~/.bash_profile、~/.bash_login或~/.profile文件中的其中一个,执行的顺序和上面的排序一样。如果~/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。
    所以我们只需要把JDK的目录放到/etc/profile里即可,如下:
    JAVA_HOME=/usr/local/src/jdk1.6.0_16
    PATH=$PATH:$JAVA_HOME/bin:/usr/local/src/android-sdk-linux_x86-1.1_r1/tools:~/bin
    然后重新启动一下机器,输入java–version命令,提示如下信息代表配置成功:
    javaversion"1.6.0_16"
    Java(TM)SERuntimeEnvironment(build1.6.0_16-b01)
    JavaHotSpot(TM)ClientVM(build14.2-b01,mixedmode,sharing)
    在编译完整个项目后,终端会出现如下提示:
    Targetsystemfsimage:out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
    Installsystemfsimage:out/target/product/generic/system.img
    Targetramdisk:out/target/product/generic/ramdisk.img
    Targetuserdatafsimage:out/target/product/generic/userdata.img
    Installedfilelist:out/target/product/generic/installed-files.txt
    root@dfsun2009-desktop:/bin/android#
    三、源码运行
    在编译完整个项目后,如果我们需要观看编译后的运行效果,那么就需要在系统中安装模拟器android-sdk-linux_x86-1.1_r1,这个SDK的下载地址为:
    linux:dl.google/android/android-sdk-linux_x86-1.1_r1.zip
    mac:dl.google/android/android-sdk-mac_x86-1.1_r1.zip
    windows:dl.google/android/android-sdk-windows-1.1_r1.zip
    解压后需要把/usr/local/src/android-sdk-linux_x86-1.1_r1/tools目录加入到系统环境变量/etc/profile中。
    然后找到编译后android的目录文件out,我们发现在android/out/host/linux-x86/bin下多了很多应用程序,这些应用程序就是android得以运行的基础,所以我们需要把这个目录也添加到系统PATH下,在$HOME/.profile文件中加入如下内容:
    PATH=”$PATH:$HOME/android/out/host/linux-x86/bin”
    接下来我们需要把android的镜像文件加载到emulator中,使得emulator可以看到android运行的实际效果,在$HOME/.profile文件中加入如下内容:
    ANDROID_PRODUCT_OUT=$HOME/android/out/target/product/generic
    
    exportANDROID_PRODUCT_OUT
    然后重新启动机器。
    下面就可以进入到模拟器目录中并启动模拟器
    cd$HOME/android/out/target/product/generic
    emulator-imagesystem.img-datauserdata.img-ramdiskramdisk.img
    总结一下安装过程中的关键点:
    1:JDK版本必须安装
    2:利用下面的命令确保所需软件都被正确安装
    sudoapt-getinstallflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-devbuild-essentialpythonvalgrindcurlgit
    3:内存及虚拟内存保证在2GB以上,可以采用命令行free-m查看内存是否足够,如果内存不够终端停滞
    @@@
    编译环境
    Ubuntu9.04Desktop
    下载和编译流程
    根据source.android/download的说明,成功的下载了所有源代码,整个目录文件接近2G
    前期准备:
    安装git工具内核,命令sudoapt-getinstallgit-core
    1.下载repo工具
    curlandroid.git.kernel.org/repo>$HOME/bin/repo
    cd$HOME/bin
    chmod+xrepo
    2.导出android项目
    mkdirandroid
    cdandroid
    repoinit-ugit://android.git.kernel.org/platform/manifest.git-bcupcake(如果不出错的话,5分钟内应提示成功,跟网络速度有关)
    3.开始下载androidplatform的源代码
    reposync(这个操作会持续一段时间,与你自己的网速有关)
    4.编译前,建议装的软件包如下(使用apt-get安装)
    flexbisongperflibsdl-devlibesd0-devcurllibncurses5-devzlib1g-devlibx11-dev
    5.编译
    make(非常漫长的等待,与你的CPU速度有一定关系,建议是睡觉前编译)
    编译时,以下源代码需要加入相应的头文件(include)
    /android/cupcake/frameworks/base/tools/aidl/aidl.cppstring.h,stdlib.h
    /android/cupcake/frameworks/base/tools/aidl/options.cppstring.h
    /android/cupcake/frameworks/base/tools/aidl/search_path.hstring,string.h
    /android/cupcake/frameworks/base/tools/aidl/generate_javastring.h
    /android/cupcake/external/srec/tools/thirdparty/OpenFst/fst/lib/vector-fst.hstring.h
    /android/cupcake/external/srec/tools/thirdparty/OpenFst/fst/lib/symbol-table.cppstring.h
    /android/cupcake/build/tools/atree/files.cppstring.h,stdlib.h
    /android/cupcake/build/tools/atree/fs.cppstring.h
    /android/cupcake/frameworks/base/tools/localize/file_utils.cppstring.h,stdlib.h
    /android/cupcake/frameworks/base/tools/localize/localize.cppstring.h,stdlib.h
    /android/cupcake/frameworks/base/tools/localize/Perforce.cppstring.h,stdlib.h
    /android/cupcake/frameworks/base/tools/localize/XLIFFFile.cppiostream,algorithm
    /android/cupcake/frameworks/base/tools/localize/XMLHandler.cppiostream,algorithm
    /android/cupcake/development/emulator/qtools/dmtrace.cppunistd.h
    编译完毕以后,会发现在代码目录下多了一个out目录
    6.设置运行环境(修改$HOME/.profile文件),加入以下内容
    #Android
    PATH=”$PATH:$HOME/android/out/host/linux-x86/bin
    ”
    ANDROID_PRODUCT_OUT=$HOME/android/out/target/product/generic
    exportANDROID_PRODUCT_OUT
    设置完毕后,退出并重新登录
    7.使用虚拟机运行
    cd$HOME/android/out/target/product/generic
    emulator-imagesystem.img-datauserdata.img-ramdiskramdisk.img
    应该看到以下的画面(第一次开启的时候,应该还有一个向google反馈的一个对话框,按下确定即可)
    
  • 上一篇资讯: VPN学习
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号