Android源码学习之环境搭建(Ubuntu下载Android源码)

Android源码学习之环境搭建(Ubuntu下载Android源码)已经有一个多月没有看Android的知识了,之前在杭州时就买了邓凡平的《深入理解Android卷I》一直没来得及研究。后来因为公司要求,要为新的项目做准备,做各种业务的KT和技术的training,虽然新技术本身的难度不大,但是业务知识很是复杂,搞的头大,到现在终于有了一些头绪。趁现在有时间来研究下Android的源码。之前没有接触过Linux系统,我的本本现在用的是Windows系统,已经用习

大家好,又见面了,我是你们的朋友全栈君。

           已经有一个多月没有看Android的知识了,之前在杭州时就买了邓凡平的《深入理解Android卷I 》一直没来得及研究。后来因为公司要求,要为新的项目做准备,做各种业务的KT和技术的training,虽然新技术本身的难度不大,但是业务知识很是复杂,搞的头大,到现在终于有了一些头绪。趁现在有时间来研究下Android的源码。之前没有接触过Linux系统,我的本本现在用的是Windows系统,已经用习惯了。所以先安装虚拟机VMWare8.0,在虚拟机上安装的Ubuntu10.04(32)。安装过程相对简单,一般不会出现什么问题,真的不行删掉重新安装,我就安装了两次Ubuntu敲打,没什么大不了的。接下来说重点,Ubuntu上下载Android源码。

     特别提醒:Android下载,编译时要确保系统的内存在1.2GM以上,且有足够的硬盘可用空间,否则会编译失败终止。现在整个源码下载完大概在15G左右,在加上编译的,所以安装虚拟机时硬盘空间最好在35G-45G(个人建议),我就吃了这的亏,没仔细看说明,就下载,下暴了Ubuntu虚拟硬盘,系统都进不去。只好重新安装Ubuntu大哭,下载前大家先到Google的Android官网上的相关模块看一下,后头有重大发现记得告诉我一下,看看是不是遗漏了什么。

      获取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 http://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

注:ubuntu10.04安装repo时候出的问题

/home/administrator/bin/repo: line 1: 在未预料的“newline”附近出现语法错误
/home/administrator/bin/repo: line 1: `<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
解决方法如下: (http://source.android.com/source/downloading.html) <—- 根据Google官网重新下载 repo
(1) curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
(2) repo init -u https://android.googlesource.com/platform/manifest

把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 Repo 超时的解决方法     (http://blog.csdn.net/shaohui99/article/details/5702483)

Cloning into android-sdk-source…
android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
解决方法如下:将命令行中的git://android.git.kernel.org换成http://android.git.kernel.org,

Android源码学习之环境搭建(Ubuntu下载Android源码)

好了,因为文件很大,可以洗洗睡了(建议晚上下载)。。。

Android源码学习之环境搭建(Ubuntu下载Android源码)

最后你看到了这样一句 Syncing work tree: 100% ,done 表示下载完毕。

5.验收成果:下载完源代码有什么用呢?我们进入mydroid/packages/apps/Phone目录看一下。Android源码学习之环境搭建(Ubuntu下载Android源码)

总算下载下来了,接下来就可以开始编译了。。。。

本篇先到这里,接下来环境变量配置还有编译部分发在下一Blog中,终于可以吃午饭了。

下午要去东方明珠还有外滩逛逛,来魔都也有半个月了,还没好好出去玩下那吐舌头

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138986.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月6日 下午11:20
下一篇 2022年5月6日 下午11:20


相关推荐

  • 关于pfx证书和cer证书

    关于pfx证书和cer证书Pfx证书,同时包含了公钥信息和私钥信息Cer证书只包含公钥信息如果客户端与网站通信时需要用到私钥(基本所有需要数字证书的网站都会用到私钥),则cer证书是无法正常访问网站的,网站会提示“该页要求客户证书”由于cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。Pfx证书既可以导出为pfx证书,也可以导出为cer证书。Pfx证书导出时,会提示是…

    2022年5月2日
    65
  • Verilog hdl与VHDL混用详解

    Verilog hdl与VHDL混用详解Veriloghdl与VHDL混用详解1.概述由于在FPGA开发过程中,多人合作时可能遇到有人使用veriloghdl,有人遇到VHDL的情况,这就涉及到了veriloghdl与VHDL的相…

    2026年2月10日
    4
  • BitBlt参数含义

    BitBlt参数含义转载请注明出处 nbsp http blog csdn net lzlx 接口 BOOLBitBlt nbsp In nbsp HDChdcDest nbsp In nbsp intnXDest nbsp In nbsp intnYDest nbsp In nbsp intnWidth nbsp In nbsp intnHeight nbsp In nbsp HDChdcSrc nbsp I

    2026年2月18日
    2
  • JMM简介_英文缩写jmy啥意思

    JMM简介_英文缩写jmy啥意思Java的内存模型JMM(JavaMemoryModel)JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(MainMemory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(WorkingMemory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量。JM

    2025年9月13日
    8
  • 【Gerrit使用教程详解】

    【Gerrit使用教程详解】这里写自定义目录标题个人觉得这几篇博客介绍挺详细的 收藏转发分享 1 gerrit 使用教程 一 https www cnblogs com 111testing archive 2018 08 09 9450530 html2 git 上传本地代码到远程仓库 https www cnblogs com 111testing p 7663229 html3 gitlog 查看提交历史 https www cnblogs com 111testing p 7781216 html4

    2026年3月19日
    2
  • PHP接口上传参数返回参数混淆

    PHP接口上传参数返回参数混淆

    2022年2月18日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号