后续文章

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

Android Studio系列(四)Version Control II Annotate

------

本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入Android源码的方法步骤。

环境: Ubuntu 12.04,openJdk 1.7,Android Studio 1.1 Beta 4,android-5.0.1_r1源码

由于Android Studio(以下简称AS)是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA

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

一、修改AS的配置

  • 因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。README文档中使用的是748m。

  • 较新版本的AS中自带SDK,然后第一次用的时候新的SDK会下载Build Tool 等,大约需要2.25G空间。不想下载的话可以找到android-studio/bin目录下的idea.properties文件,在最后添加一行disable.android.first.run=true,然后再启动AS就好了,然后进去手动配置SDK位置。
    (注:每次升级后这些配置都会恢复默认。但SDK不用重新配置)

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

之后我们在AS中打开源码根目录下新生成的android.ipr

Tips: 如果在导入时AS出现下面的提示:

可以按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit)
具体内容如下图:

三、加快AS读取源码速度

在打开android.ipr之后AS会花费一定的时间来读取源码,首次扫描源码中所有的Source Folders的时候花费的时间比较长,尤其源码存放在机械硬盘上的时候(完整扫描一次以后后续再打开就没这么慢了)。因为我们经常查看和编译的源码目录为packages和framework等,所以我们可以仅保留需要的源码文件夹不做设置,其他设为Excluded(请按需配置)。

在android根目录上安快捷键F4(如果已经设为Eclipse快捷键方式则为F12)打开Module Setting,

选中不需要扫描的目录后点右上的Excluded(其中out和prebuilts目录较大,建议选择),完成以后效果如左侧,文件夹颜色区分,红色的即为排除在外的文件夹,AS将不扫描其中内容。 重新启动AS,会发现扫描源码目录的时间大大缩减了。
Tips: 因为Android Studio 的配置和缓存文件存在home/.AndroidStudio文件夹中,时间长了可能会导致系统磁盘吃紧,若要修改默认存储位置(比如改到其他挂在盘),需修改android-studio/bin/idea.properties文件中相关的配置信息,修改内容参考:

四、配置AS的JDK、SDK

在上一步操作之后的等待期间刚好让我们来配置一下JDK和SDK。

在IDE中参照下图Project Structure设置(快捷键Ctrl+Alt+Shift+S,或者F4快速打开字设置Modules Setting),先在SDKs设置中加入必须的JDK,SDK。(可选)然后创建一个新的JDK,可以取名为1.7(No Libraries),然后删除classpath标签页下面的jar文件。 这样可以确保使用Android源码里的库文件。

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

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

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

1)确保在上一步中已为当前工程设置正确了SDK和JDK

2)设置'Modules'的依赖

先将所有依赖删掉(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

点击上图中'+'并选择'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

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

六、DEBUG源码

我们可以给刚导入的工程添加Framework Android,来让AS将它作为一个Android工程,从而方便我们调试代码。方法:先选中“android“再选择图中Framework下的Android。

)。

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

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

关于AS的安装配置,快捷键,字体,主题,Gradle等设置,参看stromzhang的Android Studio系列教程,地址:http://stormzhang.com/

七、快捷键

快捷键是利器啊!熟悉了快捷键效率飙升!
不过有些与系统快捷键冲突了,若要实行请自行修改。
全部快捷键请看另一篇文章:http://blog.csdn.net/aaa111/article/details/43791481

你可能需要的链接:

  1. Android Studio系列教程 by stormzhanghttp://stormzhang.com/
  2. 如何使用Android Studio开发/调试Android源码http://www.cnblogs.com/Lefter/p/4176991.html
  3. Ubuntu下配置Android Studio的快捷启动方式http://blog.csdn.net/aaa111/article/details/41833179
  4. Android Studio简单设置http://ask.android-studio.org/?/article/14
  5. Android Studio 常用功能介绍http://ask.android-studio.org/?/article/23
  6. Android Studio 小技巧合集http://laobie.github.io/android/2016/02/14/android-studio-tips.html

感谢原作者!


更多相关文章

  1. 源码解析Android中AsyncTask的工作原理
  2. 高级组件之进度条
  3. Android横竖屏切换小结
  4. android TextView selector点击样式改变
  5. Android(安卓)ProgressBar控件理解
  6. android 设置布局动画
  7. Android(安卓)TextView全属性
  8. android ListView 示例1 entries 指定一个数组资源
  9. android 常用布局有哪些

随机推荐

  1. Android(安卓)Dev - Using Eclipse
  2. android 设置Button或者ImageButton的背
  3. android:installLocation简析
  4. Android异步处理三:Handler+Looper+Messag
  5. android讲义2之在xml中设定imageButtion
  6. Android设置Listview每个item的间距
  7. android中广播接收者BroadcastReceiver
  8. 解析Android消息处理机制:Handler/Thread/
  9. Android(安卓)activity属性设置大全
  10. 【摘录】Android(安卓)Gesture Detector