当前位置:首页 » 安卓系统 » android源码下载编译

android源码下载编译

发布时间: 2023-04-24 15:16:29

❶ 自己可以编译安卓源码

用最新的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源码主要是为了干什么啊

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

    ❸ Android源码编译

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

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

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

    ❹ 如何在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中查看内核版本信息。

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

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

    ❻ 如何编译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
    这一过程很久。
    这就编译结束了

    ❼ 怎么进行android源码编译

    eclipse下编译android代码的流程亏携如下:
    1.点击袭空慧拍答android工程,点击run

    2.弹出窗口,选择运行设备,如下图,点击run就可以编译,运行

    ❽ windows下如何编译android源码

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

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

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

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

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

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

    ❿ android项目源码下载

    对于读项目源代码来说,可能对大多数人是件困难的事。首先,第一个障碍:看到项目,就已经放弃! 如果有十个人,可能有5个人以上会是上面这种情况,分析其想法:这么多的代码,我要怎么读啊!我要读好久啊!算了,还是看小Demo吧,所以这样,他们也就只是把这个项目导入到eclipse中,点了几下鼠标,然后就没有下文了。 解决办法:其实他们终止的原因很简单,就是嫌麻烦,那好吧,告诉你,这点麻烦都能对你造成影响,其实你的开发之路也可以终止了。任何东西,你要学到它,你就必须花时间、花精力、还要有面对困难的准备。想一步登天,有可能,除非你是天才,但毕竟天才太少了!对于开发,不是学习1+1,所以,先摆正心态吧,那要具备怎样的心态呢?那就是:有面对困难的准备,也有解决苦难的信心。 心态问题解决了,那就是读代码的技巧了,很多人拿到一个项目不知道怎么入手,干脆就胡乱的一通看,看到一定时候发现,实在进行不下去了,又开始重新梳理自己的思路。这样是很浪费时间的,其实对于读一个项目,最好按照以下步骤进行( 个人意见,仅供参考 ): 1、使用这个应用或者游戏,直到熟悉它的使用流程和功能 2、根据自己的体验分析代码实现(整体) 3、如果有条件和原作者请教项目思路 4、从最先启动的Activity开始,弄懂每个Activity功能如何实现以及它的布局实现 5、遇到不懂的代码,首先找搜索引擎(一般都能解决)。还不行就可以请教他人了 6、对新学到的知识点,一定要总结下来,并且定期的去回顾 7、最重要的一点: 我认为要自己动手写,那怕是重新写一遍这个项目,或者自己设计一个类似的,再或者只写这个项目中的一部分。 为什么要自己动手呢?大家都知道coder这个东西,那怕你理论学得再好,不动手,那也是毫无意义的!所以,动手写一下,你会遇到问题,你就会解决问题,这样,你才能学到更多。这就是经验·······
    以上回答你满意么?

    热点内容
    骐达酷动版与智行版哪个配置高 发布:2025-07-08 05:24:37 浏览:336
    地址访问监控 发布:2025-07-08 05:13:22 浏览:541
    python字符串分隔 发布:2025-07-08 04:53:20 浏览:664
    楼道口门禁卡密码一般是多少 发布:2025-07-08 04:52:32 浏览:480
    安卓手机根目录怎么删除 发布:2025-07-08 04:46:51 浏览:733
    p30怎么刷回安卓 发布:2025-07-08 04:45:27 浏览:479
    林业大数据库 发布:2025-07-08 04:40:37 浏览:647
    php54forlinux 发布:2025-07-08 04:36:20 浏览:989
    云服务器哪个性价比高 发布:2025-07-08 04:35:00 浏览:658
    存储盘柜 发布:2025-07-08 04:30:51 浏览:888