本文是以源码中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

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

<div class="linenums" style="margin: 0px; padding-left: 0px; color: rgb(30, 52, 123);"><div class="L0" style="margin: 0px; color: rgb(190, 190, 197); line-height: 18px; padding-left: 0px; list-style-type: none;"><code style="margin: 0px; padding: 0px; border: none; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; word-wrap: break-word; max-width: 100%; background-color: transparent;"><span class="typ" style="color:teal;margin-top: 0px;">Read</span><span class="pln" style="color:#48484c;"> excludes</span><span class="pun" style="color:#93a1a1;">:</span><span class="pln" style="color:#48484c;"> </span><span class="lit" style="color:#195f91;">5ms</span></code></div><div class="L1" style="margin: 0px; color: rgb(190, 190, 197); line-height: 18px; padding-left: 0px; list-style-type: none;"><code style="margin: 0px; padding: 0px; border: none; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; word-wrap: break-word; max-width: 100%; background-color: transparent;"><span class="typ" style="color:teal;margin-top: 0px;">Traversed</span><span class="pln" style="color:#48484c;"> tree</span><span class="pun" style="color:#93a1a1;">:</span><span class="pln" style="color:#48484c;"> </span><span class="lit" style="color:#195f91;">44078ms</span></code></div></div>

这时会在源码的根目录下生成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 stormzhang http://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

感谢原作者!

原文地址: http://blog.csdn.net/aaa111/article/details/43227367

Android Studio系列(二)使用Android Studio开发/调试整个android系统源代码(不定时更新)相关推荐

  1. Android Studio系列(二)使用AS开发/调试整个android系统源代码(不定时更新)

    转载自:http://blog.csdn.net/aaa111/article/details/43227367 一.修改AS的配置 由于Android源码太大了,在过导入源码和后续工作中,AS需要占 ...

  2. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  3. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  4. cocos2d-x系列 Mac下配置cocos2d-x开发环境(android和ios)

    一.下载cocos2d-x http://cocos2d-x.org/projects/cocos2d-x/wiki/Download cocos2d-x-2.1.4.zip @ June.18, 2 ...

  5. vs安装 c语言编译环境,Visual Studio Code安装与C/C++开发调试环境搭建

    目录 简介 VSCode安装 VSCode语言设置 安装开发套件 构建C/C++编译环境 安装Clang 安装MinGW VSCode工程配置 launch.json tasks.json 测试 简介 ...

  6. Android自定义控件系列二:自定义开关按钮(一)

    这一次我们将会实现一个完整纯粹的自定义控件,而不是像之前的组合控件一样,拿系统的控件来实现:计划分为三部分:自定义控件的基本部分,自定义控件的触摸事件的处理和自定义控件的自定义属性: 下面就开始第一部 ...

  7. Android自定义控件系列二:自定义开关按钮

    这一次我们将会实现一个完整纯粹的自定义控件,而不是像之前的组合控件一样,拿系统的控件来实现:计划分为三部分:自定义控件的基本部分,自定义控件的触摸事件的处理和自定义控件的自定义属性: 下面就开始第一部 ...

  8. 使用AS开发/调试整个android系统源代码

    本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入android源码的方法步骤. 环境: MAC,openJdk 1. ...

  9. Android Studio入门(安装--开发调试)

    写在前面的话:本文来源:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–&g ...

最新文章

  1. lambda表达式树
  2. CentOS源码安装GitLab汉化版第3版
  3. Linux内核分析--内核中的数据结构双向链表续【转】
  4. 世界32条谣言,你被骗了多少?
  5. Mybatis Plus为什么提供BaseMapper和IService两个相似CRUD操作的接口?
  6. python日期转化成周数_[转]浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等...
  7. acm 3278(poj4001)
  8. linux脚本自动修改网卡,Linux脚本程序自动修改网卡配置文件中的MAC地址
  9. 说来你可能不信,穿越后男狐狸逼我好好学习…
  10. 1222-周一开盘红红火火大涨的一天。EG,PVC,沪铜,国际铜,纯碱涨停
  11. 从JavaScript单例模式到Vuex中store
  12. ssh登录极路由后台_OpenWrt刷机详细流程(极路由)
  13. Hp电脑测试软件还是硬件问题,惠普硬件怎么检测
  14. JAVA高频面试题目集锦
  15. 服务器ssl证书升级
  16. GAN(生成对抗网络)在合成时间序列数据中的应用(第二部分——利用GAN生成时间序列数据)
  17. Linux 终端命令使用讲解
  18. win7计算机建立无线网络连接不上,教你电脑连接不上无线网络怎么办
  19. 基于vite构建的vue3+ts后台管理系统
  20. 三星SGH-i718+

热门文章

  1. MOSS点滴(1):如何开发和部署feature
  2. 转帖--一封爸妈给女儿写的信
  3. 转载】将32位代码向64位平台移植的注意事项
  4. linux系统-软链接与硬链接区别
  5. dmg文件 linux,安装和使用Dmg2Img在Linux上创建macOS安装盘
  6. caffe教程翻译:Alex’s CIFAR-10 tutorial, Caffe style
  7. DPM(Deformable Parts Models)-----目标检测算法理解
  8. 【云炬大学生创业基础笔记】第1章第3节 什么是创业的讨论
  9. [云炬python3玩转机器学习]6-3线性回归中的梯度下降法
  10. 云炬WEB开发笔记 2-3git详细安装教程及下载太慢的解决办法