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.
导入完成!
- Android 6.0 源码编译以及通过AndroidStudio查看源码
- 下载和编译android源码以及查看源码
- 用AndroidStudio查看源码
- Android源码中编译AndroidStudio工程
- Android源码中编译AndroidStudio工程
- Android源码中编译AndroidStudio工程
- android源码下载以及编译
- AndroidStudio导入Android源码
- android通过访问网页查看网页源码
- 通过Android Studio查看SDK源码
- 通过Android Studio查看SDK源码
- 通过Android Studio查看SDK源码
- Android 4.0源码下载以及编译
- Android源码编译以及调试相关记录
- Android系统定制和源码开发以及源码编译
- Android系统定制和源码开发以及源码编译
- AndroidStudio 查看不到源码中的方法解决办法
- AndroidStudio查看指定版本的源码
- 利用drakvuf对win7虚拟机进行进程注入和文件提取
- 干脆大大方方的以前高
- svn分支的使用
- openstack Mitaka实验环境安装(centos系统)
- Android Studio快捷键
- Android 6.0 源码编译以及通过AndroidStudio查看源码
- 使用SlidingMenu和DrawerLayout分别实现左右侧边栏
- [Paper note] Video-based Person Re-identification with Accumulative Motion Context
- git reset
- 学习PHP的数组总结--php技巧
- Leetcode刷题记—— 81. Search in Rotated Sorted Array II(在翻转数组中查找2)
- 不停的睡觉喝了杯咖啡,在床
- QT和MFC
- 到底家里老大三岁中