【转】Android源码学习(2)使用Git和Repo进行版本管理

原文网址:http://blog.chinaunix.net/uid-26074270-id-2458828.html

Android项目采用Git和Repo进行版本管理。在大多数情况下,Git都可以满足用户的需求。然而,由于Android项目过于庞大,想要简单、高效的管理这一百多个Git库,并不是一件容易的事情。Repo正是基于此需求,对Git命令部分封装,用来简化一些跨网络的操作。

安装Repo

  • 创建repo所在的目录,并将目录加到PATH环境变量中

    1. $ mkdir ~/bin
    2. $ PATH=~/bin:$PATH
  • 下载repo bootstrap脚本,并赋予可执行权限

    1. $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    2. $ chmod a+x ~/bin/repo
  • 创建工作目录

    1. $ mkdir WORKING_DIRECTORY
    2. $ cd WORKING_DIRECTORY
  • 初始化Repo客户端

    1. $ repo init https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
  • 同步获取源代码

    1. $ repo sync

Repo基本工作流程

  1. 使用repo start命令创建新的工作分支
  2. 改动代码
  3. 使用git add命令将改动通知Git
  4. 使用git commit命令提交改动
  5. 使用repo update命令将改动提交到代码评审服务器

Repo命令及工作流程图示
详情请参考http://source.android.com/source/version-control.html

如果在repo sync的时候,遇到如下错误:

  1. *Initializing project platform/bionic ...
  2. fatal: ‘../platform/bionic.git‘ does not appear to be a git repository
  3. fatal: The remote end hung up unexpectedly
  4. error: Cannot fetch platform/bionic*

说明你的repo好久没有更新了,解决的办法很简单,更新repo工具,并且新建源码目录,重新执行repo init和repo sync就可以了。

时间: 2024-10-02 12:51:53

【转】Android源码学习(2)使用Git和Repo进行版本管理的相关文章

Android源码学习之装饰模式应用

主要内容: 装饰模式定义 装饰模式优势 装饰模式在Android源码中的应用 一.装饰模式定义 装饰模式定义: Attach additional responsibilities to an object dynamically keeping the same interface. Decoators provide a flexible alternative to subclassing for extending functionality. 动态地给一个对象添加一些额外的职责.就增加

Android源码学习(一) 数据集观察者

查看Android源码发现这个,决定记下下来. 1.在android.database这个包下面,存在这样一个抽象类DataSetObserver,里面包括onChanged()和onInvalidated()这个两个方法,用来监听数据的改变,在方法内要执行的操作. /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "Lic

Android源码学习之ListView的复用回收机制剖析.

本博客参考了地址:点击打开链接 在刚开始接触学习Android基础的时候,ListView算是一个比较神奇的控件了,因为那时候好多效果都可以用它实现,而且用它就得用到一个设计模式,[适配器].结果昨天遗留下来一个bug,带这个解决这个Bug去翻看了5.0.1 API22的ListView部分源码分析复用. 复用到底有什么用.?简单的举个例子,假如你想要展示一万条item,作为手机不可能一下将一万条同时加载进去,这样肯定会OOM的,所以Google开发者想到了复用,也算是ListView高级的一个

Android源码学习-----Handler机制

Handler 1.为什么要使用Handler 在Android4.0之后,google公司为从系统使用及用户体验方面考虑,如果做一些比较耗时的操作,就不允许直接在主线程中进行,而是要通过handler发送Message对象的方法来修改主线程的UI界面 2.Handler原理简介 在所有的UI操作界面中,都在执行一个死循环(Looper)在不断接收和监听用户发出的指令,一但接受到指令,就立即执行.   当子线程需要修改UI界面时,调用Handler的sendMessage()方法,向主线程发送消

Android源码学习初步

目前,互联网行业正在朝着移动互联网方向强劲地发展,而移动互联网的发展离不开背后的移动平台的支撑.众所周知,如今在移动平台市场上,苹果的iOS.谷歌的Android和微软的Windows Phone系统已经形成了三足鼎立的形势,而Android系统的市场占有率是最高的.Android系统之所以能够在市场上占据着第一的位置,一来是因为它依托着谷歌的品德效应和技术实力,二来是因为它是开放的,任何人都可以得到它的源代码,并且能够自由地使用它.既然Android系统是开放的,作为一个移动平台开发人员来说,

Android源码学习-----HandlerThread

HandlerThread 1.run()方法 HandlerThread 从继承关系上看, 它继承Thread类, 由此可以得知这个类其实是一个线程类,既然是一个线程类, 那么肯定是要重写Thread中的run()方法, 所以可以浏览下run()方法 从红色箭头的三个方法中, 看到有三个方法, Looper.prepare(), Looper.myLooper(), Looper.loop(),  这三个方法其实是, 在子线程创建Handler时所要调用的三个方法, 在HandlerThrea

android源码编译——从此走上Liunx的不归路(三)

下载android源码: 1.安装git和curl: sudo apt-get install git-core sudo apt-get install git-core curl 2.下载repo mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo // 如果上述 URL 不可访问,可以用下面的: /

[Android阅读代码]android-async-http源码学习一

android-async-http 下载地址 一个比较常用的Http请求库,基于org.apache.http对http操作进行封装. 特点: 1.每一个HTTP请求发生在UI线程之外,Client通过回调处理HTTP请求的结果,使得Client代码逻辑清晰 2.每一个请求使用线程池管理执行 3.支持gzip , cookie等功能 4.支持自动重试连接功能 [Android阅读代码]android-async-http源码学习一,布布扣,bubuko.com

Android学习进阶路线Android源码分享)

毕业8月有余,同时伴随着从事的Android经验的提升.仔细思量过去的工作内容,掐指算来也是少得可怜---主要维护FM收 音机模块,间或看看Lancher模块的代码.尽管这样,总的来说,在这八个月事件的学习里,我自我感觉收获还是很大的---自学了很多 Android相关方面的知识.虽然里真正的大牛还有很远的一段路程要走,自己也会坚持学习.坚持走下去. 再次,把自己学习过程中总结的一些经验总结出来,帮助那些刚刚步入Android的网友以及有了取得了一些经验但不知如何 继续前行的朋友,希望你们能够早