• 下载最新Android代码的方法


        之前我是去Android官方网站下载最新Android代码,但是这种方法需要翻墙,而且有时候翻墙又不太方便,今天我发现一个不错的网站,是清华大学搞的,跟Android官方的代码基本保持同步,而且下载方法跟Android官方的也类似。下面是网站地址:

    https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

    下面我简单介绍一下几种下载方法:

    准备工作

    方法一

    • 下载repo工具
       1: mkdir ~/bin
       2: PATH=~/bin:$PATH
       3: curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
       4: chmod a+x ~/bin/repo
    • 建立工作目录
       1: mkdir WORKING_DIRECTORY
       2: cd WORKING_DIRECTORY
    • 初始化仓库
       1: repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
       2: ## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
       3: REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
    • 同步源码树
       1: repo sync

    方法二 建立本地镜像

    重点说一下这种方法,这种方法首先在本地建立一个Andriod代码的镜像,第一次需要下载大量的代码(我的占了120GB左右的空间),然后执行类似方法一,不过这次的Android代码源是在本地,所以速度很快。以后更新的时候,先更新本地Andriod代码镜像,再更新Android代码。我用的就是这种方法,我的代码镜像是翻墙的时候从Android官方下载的,所以每次更新Android代码镜像的时候都需要翻墙,不方便。

    步骤:

    • 下载 repo 工具和建立工作目录 (参照方法一)

    这里需要修改一下repo工具:

       1: REPO_URL = 'https://gerrit.googlesource.com/git-repo'

    修改为:

       1: REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
    • 初始化
       1: repo init -u https://aosp.tuna.tsinghua.edu.cn/mirror/manifest --mirror
    • 同步源码树
       1: repo sync

    然后,就可以从本地sync代码了:

       1: repo init -u WORKING_DIR/mirror/platform/manifest.git
       2: repo sync

    下面是Android官方的说明:

    Using a local mirror

    When using several clients, especially in situations where bandwidth is scarce, it is better to create a local mirror of the entire server content, and to sync clients from that mirror (which requires no network access). The download for a full mirror is smaller than the download of two clients, while containing more information.

    These instructions assume that the mirror is created in /usr/local/aosp/mirror. The first step is to create and sync the mirror itself. Notice the --mirror flag, which can be specified only when creating a new client:

    $ mkdir -p /usr/local/aosp/mirror
    $ cd /usr/local/aosp/mirror
    $ repo init -u https://android.googlesource.com/mirror/manifest --mirror
    $ repo sync

    Once the mirror is synced, new clients can be created from it. Note that it's important to specify an absolute path:

    $ mkdir -p /usr/local/aosp/master
    $ cd /usr/local/aosp/master
    $ repo init -u /usr/local/aosp/mirror/platform/manifest.git
    $ repo sync

    Finally, to sync a client against the server, the mirror needs to be synced against the server, then the client against the mirror:

    $ cd /usr/local/aosp/mirror
    $ repo sync
    $ cd /usr/local/aosp/master
    $ repo sync

     It's possible to store the mirror on a LAN server and to access it over NFS, SSH or Git. It's also possible to store it on a removable drive and to pass that drive around between users or between machines.

    更新本地Android镜像

    由于我最初的Android镜像来自Android官方,需要翻墙,所以需要作如下修改:

    如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后),你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将 .repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/git://aosp.tuna.tsinghua.edu.cn/aosp

       1: <manifest>
       2:  
       3:    <remote  name="aosp"
       4: -           fetch="https://android.googlesource.com"
       5: +           fetch="https://aosp.tuna.tsinghua.edu.cn""git://aosp.tuna.tsinghua.edu.cn/aosp"
       6:             review="android-review.googlesource.com" />
       7:  
       8:    <remote  name="github"

    同时,修改 .repo/manifests.git/config,将

       1: url = https://android.googlesource.com/platform/manifest

    更改为

       1: url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
       2: # 或 url = git://aosp.tuna.tsinghua.edu.cn/aosp/platform/manifest

     

    完。

  • 相关阅读:
    centos环境无法安装paramiko的问题解决
    openstack swift节点安装手册3-最后的安装配置及验证
    P4329 [COCI2006-2007#1] Bond
    P4802 [CCO 2015]路短最
    树链剖分(从入门到入土。)
    分块详解
    Cocos2d-x 详解坐标系统
    pureMVC介绍及学习
    pureMVC简单示例及其原理讲解五(Facade)
    pureMVC简单示例及其原理讲解四(Controller层)
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/5399398.html
Copyright © 2020-2023  润新知