Mac苹果电脑下载android4.2源码并进行源码调试

星期天在家研究了一下如何在mac下下载android4.2的源码并经过eclipse进行源码级别调试来更清晰的研究一下android的运行原理,具体步骤以下:php

最后下下来了,可是我进行编译却没有经过,多是我有东西没安,可是不影响源码调试,html

首先参考http://source.android.com/source/downloading.html,说一下我最后的方法,java

1、前期准备android

一、mac下咱们须要建立一个大小写敏感的磁盘镜像文件,并将其挂载,进入应用程序/实用工具/磁盘工具,选择文件->新建->新建空白映像:git

二、安装xcode,编译时用到。xcode

三、从macports.org安装MacPortsbash

macports基本命令:app

(1)sudo port install ?安装eclipse

(2)sudo port uninstall ?卸载curl

(3) port installed 查看已安装的软件

这三个就够用了这里

4. 执行sudo port install gmake libsdl git-core gnupg命令安装gmake,libsdl,git,gnupg。我这里直接安装了gmake3.8.2,网上有说有问题家,可是我安   装后没有编译源码因此未发现问题。若是编译的能够安装网上方法退回到3.8.1。

五、安装完成以后port installed看一下时候上面提到的都安装了,接着以下:

修改文件标识符限制:
因为MacOS默认将同时打开的文件标识符数量限制得过小,并行编译处理时可能会超出这个限制。因此在 ~/.bash_profile

里加上这么一段:

#set the number of open files to be 1024

ulimit -S -n 1024

2、从https://android.googlesource.com 下载源码,

1.建立~/bin/目录

$mkdir ~/bin

$PATH=~/bin:$PATH

2.安装repo

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

3.设置repo可执行权限

$chmoda +x ~/bin/repo

四、这一步你们注意了,当建立的大小写敏感磁盘空间挂载后咱们的/volumes下可以看到android的目录,从这步起全部的操做在次目录下完成,

接下来执行repoinit  

$ repo init -u https://android.googlesource.com/platform/manifest -b android4.2_r1

执行完成后ls -a查看是否一个.repo文件夹,进入看到有manifest.xml文件,若是有那么咱们接下来就能够下载源码了。

此链接有全部的版本branch,https://android.googlesource.com/platform/external/blktrace/想下载哪一个版本的更改后-b后面便可。

五、下载源码

在/Volumes/android目录下执行命令:repo sync

剩下的就是等待了,个人网速比较快,下了二十多分钟就下完了,若是慢的两天也有可能。

3、把编译的方法说一下,须要的能够跟着试一下

进入到挂载的android目录下,

一、初始化编译环境:

$source build/envsetup.sh

二、选择编译目标

$lunch full-eng

三、开始编译代码

$make -j4(代表咱们开启四个线程来进行编译)。

等着结果吧,个人没编译成功,可是我没想编译,只为了调试源码。

4、调试源码方法

一、首先eclipse安装adt和sdk,这个不说了,确定都会,版本选择4.2,安装完成后,file-java project,起个名字,而后location选择android目录,等待,能够  看到源码都被加载,而后看一下报的错误,个人报了以下错误:

调试时我发现没影响,因此不去关心了。

二、建立andoird项目(能够是hello world),选择android项目右键debug as-debug Configurations,而后选择左下角家remote java application右键new,设置,效果:

   

设置完成后apply保存。

二、而后在onCreate或其余地方设置断点,进入调试界面后以下:

若是看到下图,那么咱们成功了一半了:

 

点击yes,进入,如图:

接下来咱们调试源码,点击左上角debug窗口中的你想调试家部分,能够点击Looper().loop,咱们进入看一下:

好了,看到咱们的源码了,剩下的是去探索了。Y(^_^)Y。

相关文章
相关标签/搜索