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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP curl_init函数——爬虫必备

    PHP curl_init函数——爬虫必备原文地址:http://www.jb51.net/article/25193.htm我们可以使用PHP的扩展库-Curl,这个扩展库通常是默认在安装包中的,你可以它来获取其他站点的内容,也可以来干别的。 备注:这两段代码需要php_curl扩展库的支持,查看phpinfo(),如果curlsupport enabled则表示支持curl库。 1、Windows下的PHP开启curl库

    2022年7月12日
    19
  • linux ln 软连接_ln命令建立软链接

    linux ln 软连接_ln命令建立软链接举例:1.对某个文件创建一个连接[root@www.linuxidc.com~]#ln-s/home/kk/ss.sh~#如果不写目标地址,即在当前目录建接立链接[root@www.linuxidc.com~]#lsCentOS-Base.repo.oldboyanaconda-ks.cfginstall.loginstall.log.syslogss.sh…

    2022年9月30日
    2
  • 图书管理系统的系统设计_图书管理系统设计与实现

    图书管理系统的系统设计_图书管理系统设计与实现图书管理系统设计与实现图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便,因此,开发这样一套图书馆管理系统软件。让管理员方便的管理图书及用户信息,方便用户查找图书。1、本课程设计的目的(1)掌握企业级应用系统的基本

    2022年10月9日
    2
  • php代码执行函数_php代码如何运行

    php代码执行函数_php代码如何运行**php代码执行函数解析**​一、代码执行漏洞原理:用户输入的数据被当做后端代码进行执行<?php@eval($_REQUEST[8])?>//其实一句话木马的本质就是一个代码执行漏洞。用户输入的数据被当做代码进行执行。这里提一下RCE(remotecommand/codeexecute)远程命令或者代码执行。现在只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE在PHP存在诸多

    2022年9月27日
    3
  • ERROR running qmake

    ERROR running qmake1>ReadingQtconfiguration(D:/SoftWare/QT5.9.3/5.9.3/msvc2017_64/bin/qmake)1>GHViewerDetect.vcxproj:error:ERRORrunningqmake1>GHViewerDetect.vcxproj:error:qmake:(D:/SoftWare/QT5.9.3/5.9.3/msvc2017_64/bin/qmake)1>GHViewerDetect.vcx

    2022年5月19日
    103
  • Altium Designer初学教程(一)[通俗易懂]

    Altium Designer初学教程(一)[通俗易懂]安装说明及如何激活并申请添加license安装说明及如何激活并申请添加license我们提供的安装光盘可以在每台电脑上安装AltiumDesigner软件。我们为每个单位或公司产生一个用户号,我们为每台电脑产生一个激活码,用户在软件的license界面里输入用户号和激活码,软件将自动产生本机的一个二进制信息文件,用这个信息文件通过电子邮件到我们的服务器上换取本机的licens…

    2022年7月13日
    21

发表回复

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

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