The steps for download android source code

2024-09-04 22:48

本文主要是介绍The steps for download android source code,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

The steps for download android source code. Except for the git tool, all the other steps is for both Windows and Linux.


以下描述是Windows上的操作步骤,其实windows和Linux上面的执行过程没有多大差别,仅在于git安装、Python脚本改成和机器上Python版本相一致。文档最后给出了Linux上获取代码时,执行的所有命令序列。


All the content is referece the link: Windows下载Android源码

1. start git-shell:
2. enter the android folder
3. git clone https://android.googlesource.com/platform/manifest.git
   This will create the manifest directory, and clone the ./manifest/.git directory.
   
hp@HP-PC /e/android
$ git clone https://android.googlesource.com/platform/manifest.git
Cloning into 'manifest'...
remote: Counting objects: 106, done
remote: Finding sources: 100% (106/106)
remote: Total 1030 (delta 144), reused 1030 (delta 144)
Receiving objects: 100% (1030/1030), 895.45 KiB | 498.00 KiB/s, done.
Resolving deltas: 100% (144/144), done.hp@HP-PC /e/android
$



4. switch to the manifest directory that just cloned.
   And list all the tags by 'git tag'.
   
hp@HP-PC /e/android
$ ls
a.txt       android_src_download_steps.txt  download_src_new.py  recovery-si
android-si  download_src.py                 manifest             srchp@HP-PC /e/android
$ cd manifesthp@HP-PC /e/android/manifest (master)
$ git tag
android-1.6_r1.1_
.......
android-4.3_r3.1
android-4.4.1_r1
android-4.4.2_r1
android-4.4.2_r2
android-4.4_r1
android-4.4_r1.1
android-4.4_r1.2
android-cts-2.2_r8
android-cts-2.3_r10
android-cts-2.3_r11
android-cts-2.3_r12
android-cts-4.0.3_r1
android-cts-4.0.3_r2
android-cts-4.0_r1
android-cts-4.1_r1
android-cts-4.1_r2
android-cts-4.2_r2
android-cts-4.4_r1
android-cts-verifier-4.0.3_r1
android-cts-verifier-4.0_r1
android-sdk-4.0.3-tools_r1
android-sdk-4.0.3_r1
android-sdk-4.4.2_r1
android-sdk-adt_r16.0.1
android-sdk-adt_r20
android-sdk-support_r11hp@HP-PC /e/android/manifest (master)
$



5. check out the android version
hp@HP-PC /e/android/manifest (master)
$ git checkout android-4.4.2_r2
Note: checking out 'android-4.4.2_r2'.You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:git checkout -b new_branch_nameHEAD is now at 1a5a541... Update manifest for android-4.4.2_r2hp@HP-PC /e/android/manifest ((android-4.4.2_r2))
$



6. Understand the manifest/default.xml, and write a python script file
   to generate a git-clone file.
   Then execute the .py file, or all the git-clone will start automatically.
   ATTENTION PLS: a. There must be 40G in the disk. b. All the clone will spend many many hours.
   
hp@HP-PC /e/android
$ ls
a.txt       android_4.4.2_r2                download_src.py  recovery-si
android-si  android_src_download_steps.txt  manifest         srchp@HP-PC /e/android
$ python download_src.py   
C:/Program Files/Git/bin/git.exe clone http://android.googlesource.com/platform/
build.git
Cloning into 'build'...
remote: Sending approximately 23.91 MiB ...
remote: Counting objects: 957, done
remote: Finding sources: 100% (170/170)
Receiving objects:  87% (45093/51754), 9.44 MiB | 210.00 KiB/s   


7. here is the python file as the link that I have referenced.

import xml.dom.minidom
import os
from subprocess import call#downloaded source path
# if the dir does not exist, it will be created autoomatically as below.
rootdir = "E:/android/android_4.4.2_r2"#git program path
git="C:/Program Files/Git/bin/git.exe"dom = xml.dom.minidom.parse("E:/android/manifest/default.xml")
root = dom.documentElementprefix = git + " clone http://android.googlesource.com/"
suffix = ".git"if not os.path.exists(rootdir):os.mkdir(rootdir)for node in root.getElementsByTagName("project"):os.chdir(rootdir)d = node.getAttribute("path")last = d.rfind("/")if last != -1:d = rootdir + "/" + d[:last]if not os.path.exists(d):os.makedirs(d)os.chdir(d)cmd = prefix + node.getAttribute("name") + suffixprint cmdcall(cmd)

附:Linux上下载Android源码的执行命令:

test@myhost /home/test/Android % git clone https://android.googlesource.com/platform/manifest.git
正克隆到 'manifest'...
error: Failed to connect to 2404:6800:4005:c00::52: Network is unreachable while accessing https://android.googlesource.com/platform/manifest.git/info/refs?service=git-upload-pack
fatal: HTTP request failed
129 test@myhost /home/test/Android % git clone https://android.googlesource.com/platform/manifest.git
正克隆到 'manifest'...
remote: Counting objects: 106, done
remote: Finding sources: 100% (106/106)
remote: Total 1030 (delta 144), reused 1030 (delta 144)
接收对象中: 100% (1030/1030), 895.45 KiB | 416 KiB/s, done.
处理 delta 中: 100% (144/144), done.
test@myhost /home/test/Android % ll
总用量 212
-rw-r--r-- 1 test users      2  3月  2 14:34 android_download_source_code_steps.txt
drwxr-xr-x 3 test users   4096  3月  2 14:36 manifest/
-rw-r--r-- 1 test users  35672  3月  1 14:25 python_files.png
drwxr-xr-x 3 test users   4096  3月  1 14:31 Python_Src/
-rw-r--r-- 1 test users 164603  3月  1 16:08 using_authentication.png
test@myhost /home/test/Android % ll ./manifest
总用量 164
-rw-r--r-- 1 test users 21759  3月  2 14:36 base-for-3.0-gpl.xml
-rw-r--r-- 1 test users 22323  3月  2 14:36 base-for-3.1-gpl.xml
-rw-r--r-- 1 test users 23221  3月  2 14:36 base-for-3.2-gpl.xml
-rw-r--r-- 1 test users 45492  3月  2 14:36 base-for-4.2-gpl.xml
-rw-r--r-- 1 test users 40984  3月  2 14:36 default.xml
test@myhost /home/test/Android % cd manifest
test@myhost /home/test/Android/manifest (git)-[master] % git tag
android-1.6_r1.1_
..........
android-4.4.1_r1
android-4.4.2_r1
android-4.4.2_r2
android-4.4_r1
android-4.4_r1.1
android-4.4_r1.2
.................
android-sdk-support_r11
test@myhost /home/test/Android/manifest (git)-[master] % git checkout android-4.4.2_r2
Note: checking out 'android-4.4.2_r2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD 目前位于 1a5a541... Update manifest for android-4.4.2_r2
test@myhost /home/test/Android/manifest (git)-[android-4.4.2_r2] % cd ..
test@myhost /home/test/Android % ll
总用量 216
-rw-r--r-- 1 test users      2  3月  2 14:34 android_download_source_code_steps.txt
-rw-r--r-- 1 test users    855  3月  2 14:41 download_android_src.py
drwxr-xr-x 3 test users   4096  3月  2 14:38 manifest/
-rw-r--r-- 1 test users  35672  3月  1 14:25 python_files.png
drwxr-xr-x 3 test users   4096  3月  1 14:31 Python_Src/
-rw-r--r-- 1 test users 164603  3月  1 16:08 using_authentication.png
test@myhost /home/test/Android % cat download_android_src.py
#! /usr/bin/env python
import xml.dom.minidom  
import os  
from subprocess import call  
#downloaded source path  
# if the dir does not exist, it will be created autoomatically as below.  
rootdir = "/home/test/Android/android_4.4.2_r2"  
#git program path  
git="git"  
dom = xml.dom.minidom.parse("/home/test/Android/manifest/default.xml")  
root = dom.documentElement  
prefix = git + " clone http://android.googlesource.com/"  
suffix = ".git"  
if not os.path.exists(rootdir):  
os.mkdir(rootdir)  
for node in root.getElementsByTagName("project"):  
os.chdir(rootdir)  
d = node.getAttribute("path")  
last = d.rfind("/")  
if last != -1:  
d = rootdir + "/" + d[:last]  
if not os.path.exists(d):  
os.makedirs(d)  
os.chdir(d)  
cmd = prefix + node.getAttribute("name") + suffix  
print cmd  
call(cmd, shell=True)   
test@myhost /home/test/Android % ll
总用量 216
-rw-r--r-- 1 test users      2  3月  2 14:34 android_download_source_code_steps.txt
-rw-r--r-- 1 test users    879  3月  2 14:42 download_android_src.py
drwxr-xr-x 3 test users   4096  3月  2 14:38 manifest/
-rw-r--r-- 1 test users  35672  3月  1 14:25 python_files.png
drwxr-xr-x 3 test users   4096  3月  1 14:31 Python_Src/
-rw-r--r-- 1 test users 164603  3月  1 16:08 using_authentication.png
test@myhost /home/test/Android % chmod +x download_android_src.py
test@myhost /home/test/Android % ll
总用量 216
-rw-r--r-- 1 test users      2  3月  2 14:34 android_download_source_code_steps.txt
-rwxr-xr-x 1 test users    879  3月  2 14:42 download_android_src.py*
drwxr-xr-x 3 test users   4096  3月  2 14:38 manifest/
-rw-r--r-- 1 test users  35672  3月  1 14:25 python_files.png
drwxr-xr-x 3 test users   4096  3月  1 14:31 Python_Src/
-rw-r--r-- 1 test users 164603  3月  1 16:08 using_authentication.png
1 test@myhost /home/test/Android % python --version
Python 2.7.3
test@myhost /home/test/Android % ./download_android_src.py
git clone http://android.googlesource.com/platform/build.git
正克隆到 'build'...
remote: Sending approximately 23.92 MiB ...
remote: Counting objects: 963, done
remote: Finding sources: 100% (176/176)


这篇关于The steps for download android source code的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137250

相关文章

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda