Android studio 系列教程(二)使用android studio 导入整个android 源码
本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入Android源码的方法步骤。 由于Android Studio(以下简称AS)是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA。
零、为啥用Android Studio
- 智能代码提示
- 自动保存
- 多设备实时预览
- 内置终端
- UI漂亮
- 自带git github svn插件
- 强大的搜索
一、修改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 文件。
你可能需要的链接:
- Android Studio系列教程
- 如何使用Android Studio开发/调试Android源码
- Ubuntu下配置Android Studio的快捷启动方式
- Android Studio简单设置
- Android Studio 常用功能介绍
- 配置Android Studio
感谢原作者!