曾经买了本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
$mkdir WorkingSpace/
$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主流三方库源码分析(六、深入理解Leakcanary源码)
  2. Android高手进阶教程(四)之----Android(安卓)中自定义属性(attr.
  3. 基于移动平台的多媒体框架——移植Live555到Android上
  4. Android项目源码混淆问题解决方法
  5. Android打混淆ProGuard工具的使用
  6. Android高手进阶教程(四)之----Android(安卓)中自定义属性(attr.
  7. Android系统固件包解包、修改(涉及root提权)、打包
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. win7安装Android Studio
  2. android自带的功能
  3. Android(安卓)CPU Memory 资源测试和分析
  4. Android 让页面回滚到顶端
  5. android RadioGroup与TabHost组合使用达
  6. Android 蓝牙开发之一设置蓝牙
  7. android Thread 数据加载 ProgressDialog
  8. Android 动画--使用Path来规划动画的轨迹
  9. android 基本的画图方法
  10. rk3288 android 5.1 EC20 4G module调试