使用AS开发/调试整个android系统源代码
来源:互联网 发布:淘宝投诉电话怎么打 编辑:程序博客网 时间:2024/06/08 06:53
本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入android源码的方法步骤。
环境: MAC,openJdk 1.8,Android Studio 2.3 ,android-7.1.1源码
由于Android Studio(以下简称AS)是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、生成导入AS所需配置文件(*.ipr)
为了成功将源码导入AS,我们需要先生成AS可是别的项目工程配置文件
在源码根目录依次执行
mmm development/tools/idegen/
development/tools/idegen/idegen.sh
之后会出现类似下面的结果:
Read excludes: 38ms
Traversed tree: 33041ms
这时会在源码的根目录下生成android.ipr,android.iws和android.iml三个文件
注:生成的文件包括:
①android.iws 包含工作区的个人设置,比如打开过的文件,版本控制工具的配置,本地修改历史,运行和debug的配置等。
②android.ipr 一般保存了工程相关的设置,比如modules和modules libraries的路径,编译器配置,入口点等。
③android.iml 用来描述modules。它包括modules路径、 依赖关系,顺序设置等。一个项目可以包含多个 *.iml 文件。
之后我们在AS中打开源码根目录下新生成的android.ipr
二、加快AS读取源码速度
在打开android.ipr之后AS会花费一定的时间来读取源码,首次扫描源码中所有的Source Folders的时候花费的时间比较长,尤其源码存放在机械硬盘上的时候(完整扫描一次以后后续再打开就没这么慢了)。因为我们经常查看和编译的源码目录为packages和framework等,所以我们可以仅保留需要的源码文件夹不做设置,其他设为Excluded(请按需配置)。
在android根目录上安快捷键F4(如果已经设为Eclipse快捷键方式则为F12)打开Module Setting,
选中不需要扫描的目录后点右上的Excluded(其中out和prebuilts目录较大,建议选择),完成以后效果如左侧,文件夹颜色区分,红色的即为排除在外的文件夹,AS将不扫描其中内容。 重新启动AS,会发现扫描源码目录的时间大大缩减了。
三、选择SDK
Project标签中的Project SDK中选择对应的Android API版本
四、DEBUG源码
在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图中的手机上有个虫子的图标。
在弹出的选择进程(Choose Process)对话框中,先勾选显示所有进程,然后选择要debug的代码所在的进程,点击OK即可(可同时debug多个进程)
五、完成
- 使用AS开发/调试整个android系统源代码
- Android Studio系列(二)使用AS开发/调试整个android系统源代码(不定时更新)
- Android Studio系列(二)使用AS开发/调试整个android系统源代码(不定时更新)
- Android Studio系列(二)使用AS开发/调试整个android系统源代码(不定时更新)
- Android Studio系列(二)使用Android Studio开发/调试整个android系统源代码(不定时更新)
- Eclipse中跟踪调试Android系统源代码
- [Android Studio]使用AS开发Android
- android 如何退出整个系统
- Android:基于Eclipse编译调试系统级应用源代码
- Android源码研究环境搭建[6]调试系统源代码
- Android Studio开发调试使用
- Android Studio(as)调试总结
- Android Studio(as)调试总结
- Android Studio(as)调试总结
- 调试跟踪Android源代码
- Android framework 源代码调试
- Android源代码(AOSP)调试
- 如何使用Android Studio开发/调试Android自带系统应用
- 如何做618数据复盘?你需要掌握这8大思路
- DM368开发 --IPNC 设置过程
- JavaConfig配置文件为Spring创建bean
- 窗体部件效果之窗体置顶
- LayoutInflater的使用
- 使用AS开发/调试整个android系统源代码
- 程序员该如何定位?看这四个方向
- zoj 1021
- 不再迷惑,无值和 NULL 值
- 日期插件WdatePicker.js
- LSMW批处理使用方法(05)_步骤3下
- MFC遍历子控件
- 为什么域名解析中CNAME记录和MX记录不能共存
- Java 装饰模式的应用