Android Studio 系列(二)使用Android Studio 导入整个android 源码,调试系统代码

本文详细介绍使用Android Studio导入Android源码的过程,包括配置AS、生成配置文件、配置JDK/SDK、调试源码及解决常见问题等关键步骤。

转载请注明出处:Android Studio 系列(二)使用Android Studio 导入整个android 源码,调试系统代码(不定时更新)_十橙-优快云博客

后续文章

Android Studio系列(三)Version Control I 使用内置版本管理工具管理源码

Android Studio系列(四)Version Control II Annotate

------

本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入Android源码的方法步骤。
由于Android Studio(以下简称AS)是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA。

零、为什么用AS

  1. 智能代码提示
  2. 自动保存
  3. 多设备实时预览
  4. 内置终端
  5. UI漂亮
  6. 自带git github svn插件
  7. 强大的搜索

一、修改AS的配置

由于Android源码太大了,在过导入源码和后续工作中,AS需要占用大量内存,所以我们要先做些设置。
在2.3.1以后的版本中修改/home/username/.AndroidStudio2.3/studio64.vmoptions文件,增加-Xms748m -Xmx4096m,也可通过help->Edit Custom VM Options修改。

二、生成导入AS所需配置文件(*.ipr)

为了成功将源码导入AS,我们需要先生成AS可是别的项目工程配置文件。
在源码根目录依次执行

source build/ensetup.sh  
make idegen
development/tools/idegen/idegen.sh

之后会出现类似下面的结果:

Read excludes: 5ms  
Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr,android.iws和android.iml三个文件。

三、导入源码

android源码代码量较大,全部导入比较耗时,因此在打开前可以先去除一些不想导入的代码文件夹。
如果我们一直都不会去修改prebuilt文件夹下的代码,可以先修改android.iws,在合适的位置添加:<ignored path="$PROJECT_DIR$/prebuilt/" />
之后再打开源码目录下的android.ipr。
另外,第一次导入源码需要生成index,因此花费的时间比较长,完整扫描一次以后再打开就没这么慢了。

四、配置AS的JDK、SDK

在上一步操作之后的等待期间刚好让我们来配置一下JDK和SDK。
在AS中参照下图Project Structure设置,在SDKs设置中加入必须的JDK,SDK。
创建一个新的JDK,可以取名为1.7(No Libraries),然后删除classpath标签页下面的jar文件。 这样可以确保使用Android源码里的库文件。


之后将1.7(No Libraries)作为Android SDK要使用的Java SDK。如下图

之后在Project标签中的Project SDK中选择对应的Android API版本。

五、debug源码

我们可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码。

选择途中Framework目录下的Android

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图中的手机上有个虫子的图标。

在弹出的选择进程(Choose Process)对话框中,先勾选显示所有进程,然后选择要debug的代码所在的进程,点击OK即可(可同时debug多个进程)。

六、解决源码中跳转错误问题

设置'Modules'的依赖

 将除了Module source和Android API以外所有的依赖删掉。
点击上图中'+'并选择'Jars or directories'选项,将frameworks文件夹添加进来。如:

如果之后还是遇到了代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中。

最近我在几个英文网站上看到把out/target/common/R文件夹标记为Sources,我猜测是为了解决找不到R资源的问题,但是我测试没有生效。读者自行选择吧。

七、快捷键

快捷键是利器啊!熟悉了快捷键效率飙升!不过有些与系统快捷键冲突了,若要实行请自行修改。
全部快捷键请看另一篇文章:IDEA 快捷键 Android Studio快捷键


Tips:
因为Android Studio 的配置和缓存文件存在home/.AndroidStudio文件夹中,时间长了可能会导致系统磁盘吃紧,若要修改默认存储位置(比如改到其他挂在盘),需修改android-studio/bin/idea.properties文件中相关的配置信息,修改内容参考:

注:前面生成的文件分别作用为:
①android.iws 包含工作区的个人设置,比如打开过的文件,版本控制工具的配置,本地修改历史,运行和debug的配置等。
②android.ipr 一般保存了工程相关的设置,比如modules和modules libraries的路径,编译器配置,入口点等。
③android.iml 用来描述modules。它包括modules路径、 依赖关系,顺序设置等。一个项目可以包含多个 *.iml 文件。

你可能需要的链接:

  1. Android Studio系列教程
  2. 如何使用Android Studio开发/调试Android源码
  3. Ubuntu下配置Android Studio的快捷启动方式
  4. Android Studio简单设置
  5. Android Studio 常用功能介绍
  6. 配置Android Studio

感谢原作者!

评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值