添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首发于 Android开发
android源码下载及soong build目录结构解析

android源码下载及soong build目录结构解析

背景图广阔无垠的自然风景&&来源: click

写在前面

在做android系统开发时,会涉及到底层 system,framework框架以及package 相关,如烧镜像版本 大小核 ,ota升级,provision,settings等内容,完成这些模块功能的时候,少不了源码编译相关的知识

本次会利用空余时间,介绍完android源码编译相关内容; 先求一波关注,未完成部份会在两周内完成。

版权声明CopyRight:

本内容作者:sunst,转载或引用请 标明出处 ,违者追究法律责任!!!

关于android源码编译相关的知识,会分为以下内容介绍,本篇介绍 AOSP(Android Open Source Project) 开放源代码下载到本地,以及对soong build系统源代码目录结构进行粗略的说明。

图1-android源码篇相关内容-思维导图
2.android源码编译及烧录(mac或Linux系统)。
3.android源码下编译apk和模块(含mk文件编写规则)。

很多人不知道,其实 国内 通过如下网页可以在线浏览android源码。

1.androidXref在线源代码查看

2.android社区在线源代码查看

有了源代码以后,我们就可以对某些关键的 源代码进行分析,看看它们的实现原理 ,比如像IntentService,HandlerThread,AMS,PMS;另一方面我们还可以修改源码,编译出属于自己 定制系统 ;后面我会对这两方面内容进行整理,希望大家能点个赞关注我知乎主页啥的(滑稽笑)。

对于可以科学上网的同学

一:android 8.1.0 AOSP源码下载

这里是下载 android 8.1.0 的AOSP源代码,AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理,我们可以用repo工具下载,但是这里我用另一种方式-编写python脚本去下载android源代码,这里大家也可以关注我的人工智能专栏,虽然最近忙android,ai这块放下了,但是有时间也会继续总结学习人工智能相关的内容的。

repo呢是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库

1.需要安装的文件

首先安装msysgit: git-scm.com/download/
安装python: python.org
安装git: git.cn

2.创建安装目录

mkdir Android
cd Android
git clone git:// mirrors.ustc.edu.cn/aos

3.android版本操作

cd manifest
git tag (列出安卓版本号)
git checkout android-5.1.1_r18 ##checkout你想下载的版本号

Tips:

checkout之后,manifest/default.xml文件中记录的就是android5.1系统各个模块的路径

4.编写python下载文件download.py

import xml.dom.minidom  
import os  
from subprocess import call  
#downloaded source path  
rootdir = "C:/sun/users/sourcecode/manifest/android-8.1.0_r1"  
#git program path  
git = "C:/sun/library/git/Git/bin/git.exe"  
dom = xml.dom.minidom.parse("C:/sun/users/sourcecode/manifest/default.xml")  
root = dom.documentElement  
prefix = git + " clone https://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: