收藏 分销(赏)

android编译.doc

上传人:xrp****65 文档编号:7038762 上传时间:2024-12-25 格式:DOC 页数:7 大小:22.47KB 下载积分:10 金币
下载 相关 举报
android编译.doc_第1页
第1页 / 共7页
android编译.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
用虚拟机来创建一个Ubuntu环境,在这里虚拟机用的是VMware,Ubuntu选择的是10.04版本,Android下载的是4.0.3编译时要确保系统的内存在1.2GM以上,且有足够的硬盘可用空间,否则会编译失败终止。Android官方提示:  Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.(如果用虚拟机,要保证16G的swap空间和30G的硬盘空间)  一、获取Android源代码      因为Android是由Kernel、Dalvik、Bionic、Prebuilt、build等多个项目组成,如果我们分别使用Git来逐个获取显得很麻烦,    所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,repo用Python脚本写的调用git的一个脚本,主要功能是下载、管理Android项目的软件仓库。使得项目的获取更加简单。在Ubuntu 8.04上安装Git只需要设定正确的更新源,然后使用apt-get就可以了,apt-get是一条Linux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。  1、安装git和curl  进入Linux ,打开终端,在终端窗口敲下面的命令:  sudo apt-get install git-core curl  2、安装repo脚本  首先安装repo。在当前用户:~目录下新建一个bin目录。在终端中执行:  cd ~  mkdir bin  然后,向PATH中添加bin路径:  export PATH=$PATH:~/bin  然后执行下面两行指令,下载repo脚本并修改可执行属性:  curl https://android.git.kernel.org/repo>~/bin/repo  是通过cURL来下载Repo脚本,保存到~/bin/repo文件中  chmod a+x ~/bin/repo  给~/bin/repo赋给repo执行权限  3、初始化repo  首先建立一个目录用来存放Android源代码:  mkdir mydroid  cd mydroid  repo init -u git://android.git.kernel.org/platform/manifest.git  把Android当前主线上最新版本的所有的sourcecode拿下来  如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:  repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake  4、同步版本  使用repo sync命令,就可以把整个Android代码树做同步到本地  能还有经历下载中断的情况,这时只要重新执行repo sync就可以了。  如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。 如果不是第一次运行 repo sync , 则相当于 git remote update ;  git rebase origin/branch .  repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突,这需要手动运行  git  rebase --continue  二、编译Android源代码  1、安装java  jdk6是通过手动解压安装的。先到官方网站下载一个jdk6的安装包,url如下:    1)下载完成后即安装  sudo chmod +x jdk-6u30-linux-i586.bin  sudo ./jdk-6u30-linux-i586.bin  2)设置java环境  #set java environment  export JAVA_HOME=/home/mfcai/jdk1.5.0_22  export JRE_HOME=$JAVA_HOME/jre  export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  3)设置完成后重启  2、编译源码     切换到android源码根目录下,执行$sudo make即可。首次编译非常耗时,取决于机器配置,但这个过程真的很漫长。编译成功后,终端会如下提示:  Generated: (out/target/product/generic/android-info.txt)  Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img  Install system fs image: out/target/product/generic/system.img  Target ram disk: out/target/product/generic/ramdisk.img  Target userdata fs image: out/target/product/generic/userdata.img  Installed file list: out/target/product/generic/installed-files.txt  完成后镜像生成在/mfcai/mydroid/out/target/product/generic下  编译完成后会生成了一个out 目录,编译成功会会再源码目录下生成一个out文件夹,大小有12G,所有所在的挂载区剩余空间最好大于20G。  主要的两个目录为host 和target  1)前者表示在主机(x86)生成的工具  2)后者表示目标机(模认为ARMv5)运行的内容。  镜像文件生成在/home/mfcai/mydroid/out/target/product/generic下:android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,  ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,  会把system和userdata分别加载到ramdisk文件系统中的system和userdata目录下  make编译的并不是所有内容,不包含内核和SDK。  三、编译、配置Android SDK  make PRODUCT-sdk-sdk  编译完成后会在/home/mfcai/mydroid/out/host/linux-x86/sdk/目录生成sdk  问题1  有可能会出现:“Permission denied (权限拒绝的提示)”异常。 请命令  解决办法:赋予权限  $sudo chmod -R a+rwx *  四、运行android模拟器  1、在 ~/.bashrc 加环境变量。  gedit ~/.bashrc  打开.bashrc,在.bashrc文件的最后面加入如下3行(Android工具的路径)    export PATH=/home/mfcai/myandroid/out/host/linux-x86/bin :$PATH    export ANDROID_PRODUCT_OUT=/archer/external/android/out/target/product/generic    export ANDROID_SWT=/android/out/host/linux-x86/framework  2.创建Android虚拟设备  ./android create avd -t 15 -n g15  -t 指定TargetID (Android 4.0.3 SDK的ID为15),-n指定创建的Android虚拟设备名字。  3.运行emulator  ./emulator -avd g15                    进入模拟器程序所在目录,我的模拟器所在目录是:/home/mfcai/myandroid/out/host/linux-x86/bin  cd  ~/myandroid/out/host/linux-x86/bin  使用android list targets命令来查看当前系统中的android模拟器,  ./android list target  问题1:  有可能会出现如下异常:SWT folder '/root/dsk/android/out/host/linux-x86/framework/x86' does not exist.  Please export ANDROID_SWT to point to the folder containing swt.jar for your platform.  意思是需要指向SWT.jar所在的目录。  解决办法:在.bashrc文件中加入下面一行:  export ANDROID_SWT=/home/mfcai/icecreamsu/out/host/linux-x86/framework  方法二   Android源代码编译过程 2010-12-22 16:01 536人阅读 评论(0) 收藏 举报 前几天安装了Ubuntu10.10 64位server版本,主要就是为了编译Android系统用的。昨天下班时,开始顺利编译,今天早上上班后,发现编译完成。然后下载Android SDK,用emulator加载编译后的内核,成功。现在将整个过程总结一下,以便以后参考。 准备阶段: 安装Ubuntu Linux。 1. 安装git与curl: sudo apt-get install git-core sudo apt-get install curl 2. 用curl取repo脚本 curl http://android.git.kernel.org/repo >/usr/bin/repo 根据自己的网络,可能需要设置代理才可以访问repo。 3. 修改repo权限,让repo有运行权限 chmod +x /usr/bin/repo 4. 建立一个目录 /home/android 5. 到android目录下,取主干源代码manifest文件 repo init -u git://android.git.kernel.org/platform/manifest.git 如果想取某个项目的源代码的manifest文件,用参数-b 例如repo init -u git://android.git.kernel.org/platform/manifest.git -b xxxbranch 6. 获取源代码 repo sync 7. 安装一些软件 sudo apt-get install gunpg sudo apt-get install flex sudo apt-get install bison sudo apt-get install gperf sudo apt-get install build-essential sudo apt-get install zlib1g-dev sudo apt-get install gcc-multilib sudo apt-get install g++-multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev sudo apt-get install ia32-libs sudo apt-get install libx11-dev sudo apt-get install lib32z-dev 8. 安装JDK6 设置JAVA_HOME与CLASSPATH环境变量 9. 编译 在android目录下,直接make。 10. 安装Android SDK,然后将SDK目录下的tools设置到PATH里面 android update sdk 11. 创建虚拟机 android create avd -n SelfAndroidVD -t 1 12. 启动编译生成的内核: 设置一个新的环境变量: ANDROID_PRODUCT_OUT=home/android/out/target/product/generic export ANDROID_PRODUCT_OUT 到/home/android/out/target/product/generic 目录下,运行 emulator -system system.img -data userdata.img -ramdisk ramdisk.img 编译出来的内核就可以启动了。   编译环境配置: HP Z600工作站, Intel4核6G内存 Ubuntu10.10 64-server JDK1.6.0-23
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服