惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
月光博客
月光博客
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
小众软件
小众软件
量子位
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - 刘誉儿

App Store 审核指南 How to use NSString 数组一些基础操作 NSArray/NSMutableArray git时的一些参数 如何编译Android的kernel 如何在Vmware下的Linux虚拟机增加磁盘空间 运行Android的emulator 提醒参加北京Tech.Ed2007会议并在九华山庄上网的朋友注意! 今天在分析黑洞那个破log 提醒:Norton误杀导致操作系统蓝屏的临时解决办法 真正的牛人 Dr Philippe Oechslin 防止搜索引擎过快访问网站的方法 寻找大连.Net俱乐部 参加Tech.ed 2006 (北京)的朋友 微软 .NET 俱乐部在线发布会 我们终于有了全国统一的Logo,庆贺一下。 如何建立通用的数据库结构? 招聘大机管理员和运维人员 招聘.net开发人才(北京) 如何做好应用系统安全评估
如何编译Android源代码
刘誉儿 · 2011-02-07 · via 博客园 - 刘誉儿

0.准备操作系统

如果需要编译的版本<=2.2 可以用32位的linux,如果是>2.2的版本,要用64位的linux

推荐Ubuntu 

1. 安装需要的工具

参考这个链接:http://source.android.com/source/download.html 

点Source > Getting the source

你可能会纠结于使用java1.5还是1.6, 当你想编译Android比较早的版本时,会发现其实java1.5已经不被支持了,所以你在Ubuntu下直接apt-get是找不到的,这时你需要参考这个链接:http://blog.enea.com/Blog/bid/32050/Ubuntu-9-10-Java-5-and-the-Android-Open-Source-Project 

当你的系统中安装了多个版本的java时,你可以通过 sudo update-alternatives --config java 来选择你需要用的java版本。

2.Android的编译主要是用git,当你会看到google主要是用的工具叫做repo,这个其实是个python脚本,你需要手动下载它:

下载repo脚本并使其可执行:

1 $ curl http://android.git.kernel.org/repo >~/bin/repo

2 $ chmod a+x ~/bin/repo

4)初始化repo

repo是android对git的一个封装,简化了一些git的操作。 

下一步就是使用repo去初始化代码,和下载代码:repo init -u git://android.git.kernel.org/platform/manifest.git 

这样默认是下载的代码树中的master,如果需要别的分支可以参考 http://source.android.com/source/download.html 

这里请注意,默认下载的时候是不包含kernel的源代码的,如果你需要kernel的源代码,你可以参考这个链接:

http://elinux.org/Android_Kernel_Download 

3.一些奇怪的问题:

 我安装的是32bit的Ubuntu,在编译主干的代码时,报错说我需要64位的系统,还说需要java1.6。

你可以这样解决:sudo apt-get install sun-java1.6-sdk

然后给自己修改源代码,具体方法可以参考:

http://groups.google.com/group/android-platform/browse_thread/thread/b0bb991131589363 

4.make