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

①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)

②检查out/host/linux-x86/framework/目录下是否有idegen.jar

如果idegen.jar不存在,执行:

mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

③执行

development/tools/idegen/idegen.sh

等待出现类似下面的结果:

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件,这两个文件一般是只读的,这里建议改成可读可写可执行:chmod 777 android.iml , chmod 777 android.ipr。

二.配置android.ipr

由于要将所有源码导入AS会导致第一次加载很慢,可以在android.iml中修改excludeFolder配置,将不需要看的源码排除掉。等源码项目加载完成后,还可以通过AS对Exclude的Module进行调整。如果你的电脑的性能很好,可以不用进行配置。

在android.iml中搜索excludeFolder,在下面加入这些配置。AS将不会加载一下目录文件。

excludeFolder 标签表示不会加载到AS快速索引的文件,这样第一次加载速度能提升。如果还有一些自定义文件不需要加载的话,可以在这里添加。

三.导入系统源代码到AS

通过AS的Open an existing Android Studio project选项选择android.ipr 就可以导入源码了,打开一次大概要10分钟左右就可以导入完毕。导入后工程目录切换为Project选项就可以查看源码。

四.配置项目的SDK,JDK

为了能确保代码跳转到导入的framework中,而不是SDK中,需要将SDK中classpath标签页下所有的文件删除。

确保的项目的SDK为源码对应的SDK

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

①为当前工程设置正确的SDK和JDK

②设置'Modules'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

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

注:推荐把frameworks和external这两个移到最上面,这样在代码跳转时会优先从这两个文件夹下查找,而不是在Android.jar中查找。

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.

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

六.exclude不需要的代码目录

File -> Project Structure -> Modules中可以通过Excluded来筛选代码目录,比如我们选择bionic目录,点击Excluded,bionic目录会变为橙色,bionic字段会出现在右侧视图中,说明该目录已经被Excluded掉,通俗来讲就是被排除在工程之外。如果不希望bionic目录被Excluded掉,再次点击Excluded,bionic目录会变为灰色。

七.AS调试源码

7.1新建Android工程配置

实际上不按如下配置也可以调试源码,但是打开AS时会在Event Log处报错且不能消除提醒,因此这里建议还是要配置下。

在File–>Project Structure–>Modules中添加一个Android FrameWork:

修改Manifest file等路径为下图中类似的路径,因为我们常调试这个目录所以这么设置,你也可以设置其他的路径:

Manifest file选择源码下的framework/base/core/res/AndroidManifest.xml

Resources 选择源码下的framework/base/core/res/

Assets 选择源码下的framework/base/core/res/assets

Native libs 选择源码下的framework/native/libs

在AS最顶部的工具条中选择Edit Configurations:

在Run/Debug Configurations弹框中点击左上角的加号,添加一个Android App配置,按下图进行配置:

7.2调试源码

将断点打在需要的地方,然后点击菜单的Run–>Attach Debugger to Android Process或者上方工具条的Attach Debugger to Android Process图标,勾选Show all processer,选择需要调试的进程,系统的话选择system_process。如下图所示,注意调试系统的话要使用userdebug的版本。

点击OK后我们设置的断点就生效了,就可以进行调试了。

使用Android Studio开发/调试Android源码相关推荐

  1. 华硕Tinker Board开发板(rk3288处理器)开发 ---- 将Android Studio开发的apk源码放到Android7.1.2源码中进行编译

    备注:此Android Studio项目并没有jni,没有使用动态so库,只是一个简单的项目. 1.将Android studio开发的项目移植到Android7.1.2源码中,我们只需要Androi ...

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

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

  3. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

  4. Windows系统Android Studio断点调试Android源码

    之前我都是在Windows环境下开发Android.调试代码的时候有时候要进到系统类中去断点调试代码,经常断点断不到,或者就跑飞了. 最近因为在研究一些源码,比如LayoutInflater.infl ...

  5. android studio查看jar包源码,Android Studio查看源代码报错

    我们经常用Android Studio 查看Android的源代码,今天我们就来学习查看源代码的正确姿势. Android Studio查看源代码 我们用Android Studio查看源代码会遇到下 ...

  6. 【BLE MIDI】推荐一个 Android 平台开源 MIDI 软件 MidiSheetMusic ( 相关资料 | Android Studio 中导入 Eclipse 源码 )

    文章目录 一. MidiSheetMusic 相关资料 二. Android Studio 中导入 MidiSheetMusic 的 Eclipse 源码 一. MidiSheetMusic 相关资料 ...

  7. android studio 中配置groovy源码_麻省理工教程:使用Unity AR Foundation在AR中查看模型...

    本文将分享麻省理工学院的教程-使用Unity AR Foundation在增强现实中查看模型. 在本教程中,我们将介绍如何把3D模型导入Unity,并使用Android设备或iOS设备在AR中查看模型 ...

  8. 【Android应用开发】EasyDialog 源码解析

    示例源码下载 : http://download.csdn.net/detail/han1202012/9115227 EasyDialog 简介 : -- 作用 : 用于在界面进行一些介绍, 说明; ...

  9. android studio第三方调试,Android Studio直接运行调试签名包

    Android Studio 直接运行将apk装载在模拟器或是手机上的都是它默认的一个debug包,而无正式的签名,然而像第三方登录啊.分享.支付等一些功能,都需要打上签名包才能完整使用,所以现在遇到 ...

  10. (转)无需安装SDK,3部完成Android客户端开发(附源码)

    一.下载示例文件 下载地址:http://www.eduan.mobi/sdk/sample.zip 二.修改文件 1.做一个Logo 2.做一个启动画面 3.在示例上调整界面 三.上传编译 提交,等 ...

最新文章

  1. mysqldump远程备份mysql数据库方法
  2. GBDT--简单理解
  3. IDA 逆向工程 反汇编使用
  4. HNOI2010——弹飞绵羊(lct)
  5. 重命名Heroku的app
  6. Hadoop HIVE 基本数据类型
  7. 【五级流水线CPU】—— 1. 初始框架搭建
  8. Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
  9. 2016级算法第四次上机-A.Bamboo 和人工zz
  10. springboot - 整合多数据源配置
  11. idea热部署(更新jsp代码不用重编译Tomcat)
  12. AIX 7.1查看硬件配置信息 查看端口IBM POWER 750 P750
  13. 史蒂夫·乔布斯谈生命中最重要的东西
  14. tomcat中的过滤器
  15. 游戏图片文件和声音文件的隐藏
  16. macOS:给 app 添加摄像头权限
  17. mpvue——基于vue的小程序开发框架
  18. JavaScript工作面试常用知识点总结大全
  19. 采购标准订单/标准收货 AI U9配置
  20. Elixir交互式Shell: 1. 运行时系统标记

热门文章

  1. 【Django】(一)django的下载、安装、配置及创建项目等
  2. 基本农田卫星地图查询_水经注万能地图下载器软件主界面功能说明
  3. 基于Java保险员工管理系统的设计与实现
  4. js 前端导出报错 格式不正确_js-xlsx 实现前端 Excel 导出(支持多 sheet)
  5. 基于51单片机ADC0808自动数字电压表仿真数码管显示
  6. adc0808温度换算公式_课程设计-ADC0808设计的调温报警器
  7. C#—— 身份证验证方法
  8. 关于DBC文件的格式解析(转)
  9. 计算机专业ppt,计算机专业职业生涯规划PPT(11页)
  10. 计算机需要无线网卡进行网络连,电脑连接无线网络时,提示"你没有首选无线网络"怎么办...