现在的位置: 首页 > 综合 > 正文

mac 系统下android源码下载以及使用(总结)

2016年08月27日 ⁄ 综合 ⁄ 共 3161字 ⁄ 字号 评论关闭

曾经买了本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

抱歉!评论已关闭.