导航:首页 > 操作系统 > 下载编译android源码

下载编译android源码

发布时间:2023-05-18 19:52:02

android源码编译

在编译喊猛源码之前需要做一悄闭些准备操作, 详细步骤如下:
1. 安装JDK, google官方要求编译2.3源码需要JDK1.6.

注意: ubuntu自带的源中速度比较慢, 有些软件找不到启渗裂, 所以需要修改为国内的源, 修改源步骤如下:

执行完上面几步, 数据源就更新完成了, 下面就开始安装编译依赖的软件, 同样, 在终端中以行为单位依次输入以下命令:

㈡ 自己可以编译安卓源码吗

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ㈢ Android源码编译都是通过从Android官网上下载源码来编译的,我能否别人下载好的源码来编译呢

    可以,就是有时候会出现错误,需要调试

    ㈣ 请问用虚拟机下载编译Android源码主要是为了干什么啊

    估计是要你做好编译环境
    下好sdk(软件开发包)装好里面有模拟器的
    如果是的话
    你直接网络android sdk加上你们研究的版本号比如2.1 2.2
    android是不用烧录的
    编译好就是个apk文件直接拉到手机装的

    ㈤ windows下如何编译android源码

    如果没记错,windows下是没法编译android框架源代码的

    因为android是基于linux平台的,因此底层的很多东西都是基于linux系统的

    如果只是单纯的android应用程序,则可以在windows下开发编译

    只需要用Eclipse的adt插件加上windows下开发的Android SDK就行了。

    ㈥ 怎么在ubuntu上编译android源码

    步骤一:
    安装Ubuntu系统。我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在电脑上安装,为了获得更好的Linux操作体验,我建议直接在电脑上面安装Ubuntu,我在自己电脑上安装了win10和Ubunut Server14.04双系统,使用的时候可以根据自己的需要随时切换系统,非常方便。关于如何搭建双系统,网上有很多教程,我就不在此叙述了,但是我想说明的一点是在安装Ununtu的时候,分配给Ubuntu的磁盘空间一定要尽可能大一点,至少60G,我分配了105G,编译完成之后还剩下50多G,也就是说差不多用了近50G的空间,所以安装Ubuntu的时候一定得分配大一点的磁盘空间,不然编译会因为空间不足而中断。
    步骤二:
    搭建好Ubuntu系统之后,我们需要下载一份Android6.0的源码,网上很多文章都介绍了如何通过repo的方式来下载源码,但是通过这种方式下载速度可能并不是很理想,直接下载网络云的Android6.0源码,
    因为Android6.0的源码所占空间非常大,所以上传者把Android源码分成了很多个文件,待全部下载完毕之后,我们可以通过命令把这些分开的文件合并为一个文件。
    步骤三:
    如果我们是在Windows上下载的源码,那么当我们打开Ubuntu之后,要做的第一件事请就是把Windows中的Android源码拷贝到Ubuntu系统下面,我直接利用复制粘贴的方式将源码拷贝到了Ubuntu的Home目录下面,拷贝之后的目录结构Home/android6_r1/各个分开的源码文件。
    步骤四:
    合并这些被分开的源码文件。我们按下键盘上的ctrl + alt + T打开控制台,通过cd命令进入到Home/android6_r1/目录下面,然后执行命令:cat Android6_r1_* > M.tgz,不用多久,在Home/android6_r1/目录下面就会生成一个新的文件——M.tgz,M.tgz就是合并之后的压缩文件。
    步骤五:
    解压步骤四生成的压缩文件。同样是在Home/android6_r1/目录下面,我们在控制台执行命令:tar zxvf M.tgz,开始解压。解压的过程大概需要20分钟左右的时间,请耐心等待。解压好了之后,在Home/android6_r1/会生成一个mydroid的文件夹,这个文件夹就是Android源码的根文件夹了,里面有abi、devices、hardware、packages、sdk、art等文件夹和文件。
    步骤六:
    安装编译源码所需要的软件。在控制台中我们通过cd..命令退回到Unbuntu用户的根目录下,然后依次执行以下命令:
    sudo apt-get update
    sudo apt-get install openjdk-7-jdk
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    以上命令每一条都必须分开单独执行,目的是为了获取1.7版本的jdk并设置环境变量。当我们安装完Ubuntu之后可能会自带一个jdk,但是如果用自带的jdk编译Android源码很可能会提示jdk版本不符合要求的错误,因此我们需要重新下载1.7版本的jdk,我用openjdk-7-jdk编译未出现任何问题。
    接下来继续执行以下命令,同样每一行都是分开单独执行的:
    sudo apt-get install git gnupg flex bison gperf build-essential
    sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
    sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos
    sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    以上命令主要是安装编译源码时需要用到的各种软件,如果没有安装这些软件,编译的过程中会提示缺少必要的软件而无法继续编译,因此,在正式编译源码之前,一定要先安装这些软件。
    步骤七:
    开始编译。在控制台中通过cd命令进入到Home/android6_r1/mydroid/目录下,然后执行命令:source build/envsetup.sh,导入编译Android源码所需的环境变量和其它参数。
    步骤八:
    在控制台中执行命令:lunch,运行命令之后会提示我们选择编译目标。这里我选择的的默认目标,即aosp_arm_eng。
    步骤九:
    在控制台中执行命令:make -j8,开始编译。注意,make -j8命令中的数字8和我们电脑的CPU核心数以及线程数有关系,一般这个数字的数值最大不能超过CPU线程数的2倍,例如我电脑的处理器是i5 6200U,为双核四线程,因此编译Android源码的时候,我可以设置的最大工作线程数量为4 * 2 = 8。在执行make命令的时候我们应该根据自己的CPU参数设置合理的工作线程数值。
    以上步骤执行完之后,就是一段非常漫长的等待了,我从中午十二点多开始编译,一直到晚上九点多编译完成,整个编译过程耗时九个多小时,幸好我的运气还不错,编译过程中没有出现任何错误,只是中途意外中断了一次,但是Android源码是可以接着上次中断的位置继续编译的,已经编译的部分不会重复编译,因此并未对我造成大的影响。同志们,我想说的是,编译的过程中一定要有耐心哟!
    整个源码编译完成之后,如果提示如下信息,那么Congratulations, you are successful!!!

    ㈦ 如何编译android手机源码

    编译android系统源码准备工作:
    下载android源码
    在windows上用gitbash ,git clone 下载代码
    在linux上这样下载
    创建~/bin目录,用来存放repo程序,如下:

    $ cd ~
    $ mkdir bin
    初始化repo
    repo是android对git的一个封装,简化了一些git的操作。
    创建工程目录:
    $ mkdir android
    $ cd android
    下载repo脚本并使其可执行:
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo
    repo初始化:
    $ repo init -u git://android.git.kernel.org/platform/manifest.git
    在此过程中需要输入名字和email地址。初始化成功后,会显示:
    repo initialized in /android
    在~/android下会有一个.repo的隐藏目录。
    5)同步源代码
    $ repo sync
    这一步要很久很久。
    安装linux系统,推荐ubuntu,图形界面
    安装编译需要的支持包
    $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    安装java6.0
    $ sudo apt-get install sun-java6-jdk
    配置java环境
    sudo gedit ~/.bashrc

    末尾加上

    JAVA_HOME=/usr/lib/jvm/java-6-sun
    JRE_HOME=${JAVA_HOME}/jre
    export ANDROID_JAVA_HOME=$JAVA_HOME
    export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export JAVA_HOME;
    export JRE_HOME;
    export CLASSPATH;
    HOME_BIN=~/bin/
    export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
    sudo source ~/.bashrc
    是环境变量生效

    编译android源码,并得到~/android/out目录

    $ cd ~/andoird
    $ make
    这一过程很久。
    这就编译结束了

    ㈧ 如何用ubuntu编译android 源码

    点击任务栏中的“应用程序”-----“附件”------“终端”,打开终端命令行关机,英文版本的系统操作就如下图所示

    进入到下载好的Android4.4源码目录中,小编的源码目录就在宿主目录下的android4.4中,如下图

    为了提高编译的效率,我们最好先设置一下编译器的高速缓存从而加快编译速度,使用下面的命令
    prebuilts/misc/linux-x86/ccache/ccache -M 50G

    注意事项:
    1、前提是已经在 .bashrc文件中添加:export USE_CCACHE = 1
    2、ccache是一个可执行文件
    3、-M 50G 两个参数表示设置50G大小的空间作为缓存,这个数值可以根据自己时间硬盘空间大小继续调整

    ㈨ windows下如何编译自己写的android源码

    再电脑上查看android源码,需要搭建android开发环境:
    1、jdk下载并安装
    2、Eclipse编译器坦喊下载安装,并安装ADT插件和android SDK
    待编译环境搭建完成,导入让数野android工程源码,就可毕棚以顺利打开了!

    ㈩ 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核

    一准备工作

    1安装javasdk6
    (1)从jdk官方网站http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html下载jdk-6u29-linux-i586.bin文件。
    (2)执行jdk安装文件

    [html] view plain
    $chmod a+x jdk-6u29-linux-i586.bin
    $jdk-6u29-linux-i586.bin

    (3)配置jdk环境变量

    [html] view plain
    $sudo vim /etc/profile
    [html] view plain
    #JAVAEVIRENMENT
    exportJAVA_HOME=/usr/lib/java/jdk1.6.0_29
    exportJRE_HOME=$JAVA_HOME/jre
    exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    保存后退出编辑,并重启系统。
    2安装依赖包

    [html] view plain
    $sudo apt-get install git-core gnupg flex bison gperf build-essential\
    zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\
    x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\
    libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\
    libxml2-utils

    3用repo工具下载源码
    (1)初始化repo

    [html] view plain
    $cd ~
    $mkdir bin
    $curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo
    $chmod a+x ~/bin/repo
    $exportPATH=$PATH:~/bin(导出环境变量)

    (2)下载android最新源码

    [html] view plain
    $mkdir android
    $cd android
    $ repo init -u https://android.googlesource.com/platform/manifest -bandroid-4.0.1_r1
    ...(输入用户名和邮箱名)
    $repo sync -j5
    ...(此处用5个线程开始下载源码,下载过程及其漫长,需要耐心等待)

    二 编译源码
    1开始编译

    [html] view plain
    $source build/envsetup.sh
    includingdevice/samsung/maguro/vendorsetup.sh

    includingdevice/samsung/tuna/vendorsetup.sh

    includingdevice/ti/panda/vendorsetup.sh

    includingsdk/bash_completion/adb.bash

    $make-j4(此处用4个线程编译)

    编译完成后,会看到类似的输出:

    [html] view plain
    Targetramdisk:out/target/proct/generic/ramdisk.img
    Targetuserdatafsimage:out/target/proct/generic/userdata.img
    Installedfilelist:out/target/proct/generic/installed-files.txt

    2编译遇到的问题
    编译错误:

    [html] view plain
    <命令行>:0:0:错误:“_FORTIFY_SOURCE”重定义[-Werror]

    <built-in>:0:0:附注: 这是先前定义的位置

    cc1plus:所有的警告都被当作是错误

    make:*** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]错误 1

    原因:
    因机器上的gcc版本过高,需替换成4.4.6重新进行编译。
    解决方法:
    1)安装4.4版本的gcc和g++

    [html] view plain
    $ sudo apt-get install gcc-4.4
    $ sudo apt-get install g++-4.4

    2)设置gcc版本,使gcc链接到gcc-4.4

    [html] view plain
    $ ls -l /usr/bin/gcc*

    lrwxrwxrwx 1 root root 7 2011-11-01 23:56 /usr/bin/gcc -> gcc-4.6

    -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4

    -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6

    $ cd /usr/bin
    $ sudo mv gcc gcc.bak
    $ sudo ln -s gcc-4.4 gcc

    3)设置g++版本,使g++链接到g++-4.4

    [html] view plain
    $ sudo mv g++ g++.bak
    $ sudo ln -s g++-4.4 g++

    4)设置完毕后,重新进行编译即可

    3从模拟器启动编译后的镜像文件
    1)设置环境变量:

    [html] view plain
    export PATH=~/android/out/host/linux-x86/bin:$PATH

    export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic

    其中linux-x86/bin存放模拟器emulator工具,proct/generic存在编译后的镜像文件。

    2)启动模拟器

    [html] view plain
    $emulator

    emulator:WARNING: system partition size adjusted to match image file (162 MB >66 MB)

    启动后的截图:

    三 编译androidgoldfish内核
    1)进入android4.0.1源码目录,下载goldfish内核源码

    [html] view plain
    $ mkdir kernel
    $ cd kernel
    $ git clone http://android.googlesource.com/kernel/goldfish.git
    $ cd goldfish
    $ git branch -a
    * (no branch)

    master

    remotes/origin/HEAD -> origin/master

    remotes/origin/android-goldfish-2.6.29

    remotes/origin/master

    $ git checkout remotes/origin/android-goldfish-2.6.29

    2)修改Makefile

    [html] view plain
    goldfish$ gedit Makefile

    修改

    [html] view plain
    ARCH ?=$(SUBARCH)
    CROSS_COMPILE ?=



    [html] view plain
    ARCH ?=arm
    CROSS_COMPILE ?=arm-eabi-

    3)导出交叉编译器目录为环境变量
    $ export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

    4)编译内核

    [html] view plain
    goldfish$ make goldfish_armv7_defconfig

    goldfish$ make

    编译完成后,可看到类似如下的输出:

    [html] view plain
    OBJCOPY arch/arm/boot/zImage
    Kernel: arch/arm/boot/zImage is ready

    5)从模拟器中启动内核镜像

    [html] view plain
    $emulator -kernel ~/android/kernel/goldfish/arch/arm/boot/zImage &

    启动模拟器后,可从Settings->System->AboutPhone中查看内核版本信息。

    阅读全文

    与下载编译android源码相关的资料

    热点内容
    考编教师用什么app 浏览:189
    静态面向对象编程语言 浏览:902
    炒股密码pdf 浏览:661
    差分算法有哪些 浏览:563
    佳明怎么配对安卓 浏览:245
    用什么app校对试卷 浏览:101
    基于单片机的光控路灯 浏览:33
    为什么说安卓平板适配的软件少 浏览:680
    三国志下载pdf 浏览:689
    为什么单片机c语言 浏览:429
    算法一定有一个或多个输入 浏览:252
    浪潮服务器贵州销售云主机 浏览:850
    amdlinux显卡安装 浏览:570
    泰海科技云服务器如何卸载 浏览:124
    有密码打开excel加密 浏览:822
    java生成重复字符 浏览:282
    串口服务器有什么用 浏览:330
    linux安装red5 浏览:295
    单片机中断时入口地址作用 浏览:150
    程序员的工作是重复性的吗 浏览:69