android源码下载及编译(1)-下载

目录

一、准备工作

1.安装VM虚拟机

    VMware 是一个常见的虚拟机系统,可以用来安装其他操作系统。

    可以参考:

    VMware 11.0 简体中文版|附永久密钥:

    https://blog.csdn.net/kkwant/article/details/81017144

    VMware下载及安装(含破解码)永久使用:

    https://blog.csdn.net/empty_ly/article/details/79992611

2.安装Ubuntu系统

    官方推荐环境介绍

    1. 硬件要求:

    64位的操作系统只能编译2.3.x以上的版本,如果你想要编译2.3.x以下的,那么需要32位的操作系统.

    磁盘空间越多越好,至少在100GB以上.如果你想要在是在虚拟机运行linux,那么至少需要16GB的RAM/swap.

    2. 软件要求:

    1. 操作系统要求

    在AOSP开源中,主分支使用Ubuntu长期版本开发和测试的,因此也建议你使用Ubuntu进行编译,下面我们列出不同版本的Ubuntu能够编译哪些android版本:

Android版本编译要求的Ubuntu最低版本
Android 6.0至AOSP masterUbuntu 14.04
Android 2.3.x至Android 5.x Ubuntu 12.04
Android 1.5至Android 2.2.xUbuntu 10.04

    2. JDK版本要求

    除了操作系统版本这个问题外,我们还需要关注JDK版本问题,为了方便,同样我们也列出的不同Android版本的源码需要用到的JDK版本:   

Android版本编译要求的JDK版本
AOSP的Android主线OpenJDK 8
Android 5.x至android 6.0OpenJDK 7
Android 2.3.x至Android 4.4.xOracle JDK 6
Android 1.5至Android 2.2.xOracle JDK 5

    更具体的可以参看:Google源码编译要求:

    https://source.android.com/source/requirements.html

    3. 下载地址

    可以访问网易开源镜像站下载不同版本Ubuntu

    http://mirrors.163.com/ubuntu-releases/

    我使用的是Ubuntu 14.04(2G内存+100G硬盘,编译时还需增加2Gswap)

    具体安装步骤可以参考:新手安装Ubuntu 16.04 操作系统

    https://blog.csdn.net/jjkkaa326/article/details/78638814

二、环境搭建

1.安装组件

    Ubuntu系统安装好后,需要安装一些必要的工具(或者说组件),

    Google官方构建编译环境指南中已经说明了Ubuntu14.04,Ubuntu 12.04,Ubuntu 10.04需要添加的依赖,这里就不做介绍了.
               # Ubuntu14.04

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

    # Ubuntu16.04

 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
 sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
 sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
 sudo apt-get install git-core gnupg flex bison gperf build-essential  
 sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
 sudo apt-get install libc6-dev-i386
 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
 sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
 sudo apt-get install lib32z-dev ccache

2.JDK

     由于我需要编译的是Android4.4.4_r1版本,所以安装的是jdk1.6(jdk-6u45-linux-x64.bin),
                 如果是安装1.7及以上版本可以在线安装:

sudo apt-get update   
sudo apt-get install openjdk-7-jdk        jdk1.7
sudo apt-get install openjdk-8-jdk        jdk1.8

      如安装多个版本jdk,可任意切换,选择对应的jdk版本

$ sudo update-alternatives     --config java
$ sudo update-alternatives     --config javac

3.安装repo  

    repo 是安卓环境下的命令行工具,对Git部分命令进行封装,将 百多个git库进行更新。 具体安装步骤如下:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

  说明:
             a.  PATH=~/bin:$PATH,代表配置环境变量
             b.  curl也可以换成curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
                  或curl https://aosp.tuna.tsinghua.edu.cn/git-repo-downloads/repo > ~/bin/repo        (清华源—推荐)
             c.  如遇到无法下载repo,可直接通过curl后面链接直接下载,然后拷贝到/bin/目录中,然后修改权限chmod
             d.  如果都不能下载,可直接通过git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo,下载git-repo目录,然后                            将git-repo中的repo文件复制到 /bin目录中,并修改权限

三、源码下载

1.创建一个存放安卓源码的空目录

mkdir andoird     //创建源码下载目录 
cd android        //进入目录

2.进入andoird 目录,运行 repo init 来同步相应版本的源码:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r1

   由于google站无法访问,所以我选择了清华的下载源,用下面的命令下载

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1  //下载指定版本

   下载最新版本可以使用

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

    或:

repo init -u git://aosp.tuna.tsinghua.edu.cn/aosp/platform/manifest

两者实现的效果一致,仅仅只是协议不同.

如果执行该命令的过程中,提示无法连接到 gerrit.googlesource.com,那么我们只需要编辑 ~/bin/repo文件,找到REPO_URL这一行,然后将其内容修改为:

REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

(注:有评论说清华的镜像网站已经改成了这个:REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/',具体未亲测

然后重新执行上述命令即可.

补充说明

1.不带参数的manifest命令用于获取master上最新的代码,但是可以通过-b参数指定获取某个特定的android版本,比如我们想要获取android-4.0.1_r1分支,那么命令如下:

//中科大源

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-8.1.0_r9

//清华源

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

3.配置你的用户邮箱

 repo init 后,会提示你输入名字和邮箱, 两个我都是直接按的回车键,这时它默认将系统用户名和主机名 作为用户名和邮箱,接着我直接按了y,提示repo初始完。

$ git config --global user.name "Your Name"

$ git config --global user.email "you@example.com"

4.然后同步源码树

repo sync         //真正下载

下载完成后,checkout出的代码有9.4G

进入隐藏的 .repo目录,查看当前分支大小,有64G

如果想check out 其它分支代码,将工作目录下check out出的代码删除,保留隐藏的.repo 目录,重新初始化分支执行上述流程就行,会快很多。

 (提示:一定要确定代码完全同步了,不然在下面编译过程出现的错误会很痛苦,不确定是否下载完全,可以多用repo sync同步几次)

四、直接下载源码编译

由于是公司电脑,配置及各种限制,下载了一次失败后,就没有再试上面的在线下载,我是直接通过百度网盘下载源码后解压缩编译的,这里也简单说下直接下载安卓源码并解压。
源码下载后的文件是.7z格式的压缩包,需要拷贝到Ubuntu系统下进行解压,如果未安装工具,需要先安装p7zip或p7zip-full,安装及解压命令如下:

sudo apt-get install p7zip			//安装p7zip或p7zip-full(如已安装可省略) 
7z x manager.7z -r -o /home/xx			//解压文件

x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的。如果不在当前目录下要带上完整的目录;
           -r 表示递归所有的子文件夹;
           -o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录。

附源码网盘下载地址:

Android源码

https://pan.baidu.com/s/1ngsZs#list/path=%2FAndroid%E6%BA%90%E7%A0%81

Android源码下载(包括最新8.0版本)

https://blog.csdn.net/hty1053240123/article/details/78333007


Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用.rar andbatdog电池监控.rar andbatdog监视电池.rar andricoFacebook客户端.rar Android Gamex分析报告.rar Android 英语单词记忆程序源码 AndroidPdfViewerPDF查看器.zip AndroidPlayer(仿酷狗播放器).tar androidtalk_2010_11_17【Sundy系列】全看懂了-加两年经验-语音朗读-语音识别-语音.rar Android下的信息客户端 WhisperSystems-TextSecure.zip Android与js交互.rar Android中监听电话状态.rar Android之Wifi学习教程.rar Android之用PopupWindow实现弹出菜单.rar android在wifi下手机与电脑的socket通信.rar android多线程断点下载.rar Android手机一键Root原理分析.zip Android手机的VoIP客户端 Sipdroid.rar Android有未接来电后处理(判断未接来电).rar Android模仿乐淘的应用程序分析源码.zip Android游戏源码——忍者快跑.rar Android自动发送短信.rar Android自动开关机实现.rar Android视频采集+RTSP完整代码(可用) Android远程登录含有loading登录效.zip Angle v1.0_2D游戏引擎.ZIP BOOK看遍所有UI控件.7z BrewClock闹钟.zip BTAndroidWebViewSelection(webview选择文字) cellmap v2.0 基站查询定位导航系统 .rar DialogShow.rar dialog去除边框代码.rar DocumentViewer(PDF阅读器) douBanList(滚动到底部加载新的,软缓存,懒加载) Droid Wall 手机防火墙.zip FBReader修改epub快速加载.rar FiveChess五子棋.zip Flashlight灯光.zip GetSDTree(简单SD卡文件浏览器) hotel宾馆系统.zip ImageView 图片循环跑马灯的效果.rar ipcamera-for-android 手机变成IP Camera.rar jamendo-开源在线音乐.rar jchat4android手机聊天程序.rar LoginXml.rar MineSweeper由java实现.zip miniTwitter登录界面.rar MyAppWeixin(仿微信界面) MyBrowser(简单网页浏览器) Myjob3(图片剪辑功能).rar OPENG开发的示例代码.rar OpenSudoku一个简单的九宫格数独游戏.zip OssSystem(OA系统图书管理简单版).rar Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.rar ProgressBar 几乎全部的用法.rar QQ_UI之分类菜单DEMO.zip QQ的登录界面 源代码 .zip quitesleep手机电话功能软件.rar rokon_src_2-0-3_游戏引擎.zip scientific-calculator-for-android( 功能强大的科学计算器).zip SeeJoPlayer(播放器).7z SipDroid客户端源码.rar sipdroid语音及视频通话.rar tablelogin(登陆界面).rar TankWar坦克大战.zip telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器) TorProxy应用实现了Android手机无线电电传通讯(TOR).rar UI设计之 仿做蘑菇街UI设计 源码.zip ViewPager-实现左右两个屏幕的切换.rar VIEW双缓冲与SurfaceView比较.zip weibo4andriod-2011-01-14.zip WordPress for Android zirco-browser浏览器源码.rar Zirco-browser:超越海豚的开源浏览器.rar zz-doctor中医大夫助
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值