Android 6.0 源码编译以及通过AndroidStudio查看源码

来源:互联网 发布:现场特效软件 编辑:程序博客网 时间:2024/05/20 03:36

闲来无事,准备折腾一下Android源码。特地记录一下从下载,编译,到最后利用AndroidStudio查看源码的全过程。

本文使用的是真机ubuntu 14.04 / AndroidStudio2.2 操作均在Terminal下进行。


1.安装repo

repo是一个用python写的调用git的脚本。它是对git部分命令的分装,可以用来管理一些代码仓库

1.1 首先安装git 和 curl(git和repo的区别,curl是什么等可以自行百度,这里不再赘述,网上这方面的资料很多)

sudo apt-get install git-coresudo apt-get install git-core curl

1.2 通过curl下载repo到本地,并把repo添加到环境变量中,最后给repo添加执行权限

mkdir ~/binPATH=~/bin:$PATHcurl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo 

以上是常规的repo安装过程,但是有热心的网友已经把repo文件放在云上供大家下载,所以repo的安装就没必要像上面这样,可以直接从云上下载repo,并放入/usr/bin文件夹下,该这样就省去了环境变量等问题。直接复制以下连接,在浏览器中打开即可

http://7xpgbx.dl1.z0.glb.clouddn.com/repo


2.下载源码

鉴于网络等各种原因,可以直接从清华大学镜像网站上下载,连接在下方

https://mirrors.tuna.tsinghua.edu.cn/
点击AOSP即可(可自行百度AOSP)

下面是下载步骤:

2.1 修改repo文件

因为要从清华镜像网站上下载,所以要修改该文件的REPO_URL为

REPO_URL = 'https://aosp.tuna.tsinghua.edu.cn/git-repo'

这里你可以用vim修改,也可以直接在桌面环境下操作.如果权限不够时,可以加上sudo

2.2 下载源码

创建存放源码的文件夹,并进入该目录下

mkdir Android_Source_Codecd Android_Source_Code

在该目录下初始化仓库

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.0_r26
这里我下载的是Android 6.0 r26分支下的代码,如果你想下载其他版本的源码可以参考一下版本号

http://blog.csdn.net/arxi/article/details/52292291
只需把相关分支号进行替换即可.

同步代码树,进行下载

repo sync//如果电脑允许可以多线程下载:repo sync -j4(j4表示4线程并发,具体可搜索repo命令。清华镜像网貌似是最多支持4线程,所以不要超过4个线程)

(本来这时应该贴下终端运行的截图,给大家看一下下载过程,但是昨天忘记截图了).

整个代码大概14.3G左右,需要下载1个多小时。

下载完成



3.源码的编译

ubuntu 14.04 自带openjdk.所以不用再安装Oracle 的jdk了 (openjdk 与oracle-jdk 的区别网上很多)

3.1 安装源码编译相关的包.

sudo apt-get install git git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown sudo apt-get install libxml2-utils xsltproc gcc-multilib lib32readline-gplv2-dev
不安装直接编译的话会遇到一些奇怪的问题,所以建议安装,如果有过时弃用的包,按照其提示更换即可

3.2 编译

进入源码目录

cd Android_Source_Code

进行编译

make//如果电脑允许可以多线程编译:make -j4

编译完成,花了55分钟左右


编译完成后可以在:(你创建的源码路径)/out/target/product/generic 下找到你的system.img 这就是系统镜像文件,此时你可以通过模拟器emulator来运行你编译好的源码


4.导入AndroidStudio

4.1 编译idegen模块

source build/envsetup.shmmm development/tools/idegen/



当你也看到 make completed successfully 时,就证明你也编译好该模块了.


4.2 在根目录生成对应的android.ipr、android.iml IEDA工程配置文件

development/tools/idegen/idegen.sh

当你得到如下信息时,基本上编译工作已经做完了

Read excludes: 3msTraversed tree: 14465ms

4.3 导入AndroidStudio

源码的量是非常大的,全部导入是非常耗时的,对于一般配置的电脑是一件非常痛苦的事情,过程中也有可能程序无法响应。所以你可以在android.iml中去掉一些你不需要的代码(你可以只导入framework层的代码,我比较懒,电脑配置也比较好,就直接打开android.ipr,全部导入了),然后再直接打开android.ipr.


导入完成!








  

 

0 0