曾经买了本android系统内核分析的书,看了一段看不懂,工作也忙,差不多两年过去了,感觉android水平需要提高一下,就装备把书看看,但是在网上找了一些文章,参考了官方的下载方式,最后都没有很好的解决问题把源码下载下来。最后经过不断的尝试折腾,终于可以把源码下载下来了。具体步骤如下

在开始以下步骤之前,首先系统是安装过eclipse+jdk环境的,是可以开发android应用程序的。

环境配置

1)Finder--》应用程序--》磁盘工具--》新建映像(注意格式为Mac OS 扩展(区分大小写,日志式),因为mac 系统出厂时默认格式的硬盘是不区分大小写的,而android的Framework是区分大小写的)。另外新建映像应该放到 ~/ 目录下,因为本人对Unix-like系统不太懂。但是经过测试验证也就是用户目录下。具体如下图:


创建后如下图:


2)挂载镜像磁盘

使用命令:

hdiutil attach ~/android.dmg -mountpoint /Volumes/android

Google官网推荐把这行加到~/.bash_profile里,定义成mountAndroid命令就行了
# mount the android file image function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }

具体操作是在终端,使用vim 编辑.bash_profile。(vim的使用参考:http://blog.csdn.net/eric_xjj/article/details/8932502)

结果如下图:


3)安装MacPorts

安装MacPorts之前需要确认环境变量PATH中,/opt/local/bin出现在/usr/bin之前,可以运行一下这行来确认:
$ echo $PATH

否则,就运行:
$ export PATH=/opt/local/bin:$PATH
并把上面那行加在~/.bash_profile里。

4)从MacPorts安装make, git, and GPG packages:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

如果你是Mac OS X 10.4版本的话,还要安装个bison
$ POSIXLY_CORRECT=1 sudo port install bison

5)下面要把gmake 3.82还原到3.81,否则之后编译源码会出错:(3.82有Bug,用不了):
$ sudo vim /opt/local/etc/macports/sources.conf
然后在rsync那行的上面一行加上
file:///Users/Shared/dport
之后按这个步骤来就行了:
$ mkdir /Users/Shared/dports
$ cd /Users/Shared/dports/
$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/

$ portindex /Users/Shared/dports
安装3.81版的:
$ sudo port install gmake @3.81
检查一下gmake版本,看到版本号是3.81就对了:
$ gmake --version

最后下载Android源码前的最后一步就是,修改文件标识符限制:
由于Mac OS 默认将同时打开的文件标识符数量限制得太小,并行编译处理时可能会超出这个限制。所以在 ~/.bash_profile 里加上这么一段:
# set the number of open files to be 1024
ulimit -S -n 1024

下载android源码:

安装Git Repo:
$ mkdir ~/bin
$ PATH=~/bin:$PATH

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo(官方的下载方式回提示curl(56)的错误)所以应该使用下面的url:

curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo

$ chmod a+x ~/bin/repo
初始化Git Repo进入开始时挂载的镜像硬盘,建立一个工作目录:
$cd /Volumes/android
$mkdirWorkingSpace/
$cd Working Space/
repo init -u git://codeaurora.org/platform/manifest.git -b gingerbread (备注因为买的数是基于gingerbread源码的,应该也是可以更改其他android分支,具体可参考:https://android.googlesource.com/platform/manifest)
repo sync

备注:repo sync过程中可能会有一些问题,多试几次就可以了。另外书上说android源码是2G左右,但是下载下来的是17.多G,很奇怪。

关联android中的项目

1)显示mac系统隐藏文件:

显示系统文件使用命令行:defaults write com.apple.finder AppleShowAllFiles -bool YES

Finder需要重启命令才能生效,在终端中接着输入 killall Finder 恢复隐藏系统文件,终端中输入以下代码并回车 defaults write com.apple.finder AppleShowAllFiles -bool NO 需要重启Finder killall Finder 2)显示系统文件后,拷贝/Volumes/android/WorkingSpace/development/ide/eclipse/.classpath文件到android源码下载目录。(也就是刚才WorkingSpace目录下) 具体如下:
3)创建java项目Android_Source_Java,路径指向android源码的目录下,eclipse会自动编译源码。这样就可以浏览源码和调试源码了。 在android的项目中点击查看Activity,无法查看源码,提示如下:
点击:Attach Source 按钮,并把worke**指向上面创建的android_项目就可以在android项目中查看源码了,具体调试方式准备学习中。效果如下:


后记:第一次自己整理比较完整的东西,以博客的形式展现出来,耗时近两个小时。 真心佩服那些坚持写博客的人们。真心感觉,技术的深入没有高人指点,难度相当大,幸亏可以看书,可以google+baidu,偶尔参加一下行业相关的技术沙龙请教问题。 以上内容大部分来自互联网,以及部分个人实践以及看书的总结。

图片都丢失了,由于长时间停留在一个页面,可能导致页面和csdn服务器失去连接,结果中间无法提交文章,全部复制了一下,然后刷新后粘贴发表文章,结果图片都丢了。CSDN自动保存功能貌似没有保存图片。真不靠谱呀。问题是图片本地没备份。就这样吧,人生不如意十有八九。


参考文章:http://source.android.com/source/building.html

http://php.webtutor.pl/en/2011/09/05/kernel-org-hacked-how-to-get-android-repo/

http://blog.csdn.net/ym19860303/article/details/7735010

更多相关文章

  1. [转]Android笔记:Eclipse嵌入Unity3D开发的3D场景
  2. 将Android工程做成jar包和资源文件
  3. Android(安卓)资源,国际化,自适应
  4. Android(安卓)开机速度优化-----ART 预先优化
  5. Android(安卓)WebView 远程网页 加载本地资源js/html/css
  6. 《android framework常用api源码分析》之apk打包过程解析
  7. Android的消息机制之Handler源码解析
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. android dalvik虚拟机内存分配问题
  2. 【移动开发】Android应用开发者应该知道
  3. android文档查询小工具
  4. Unity3d和Android的互相调用(二)
  5. Android(安卓)APK反编译查看源码及资源文
  6. BlockCanary分析android卡顿
  7. android下的内存泄漏
  8. android用户界面-事件处理
  9. mipmap和drawable的区别
  10. Android(安卓)NestedScrolling解决滑动冲