Android Studio导入AOSP系统源码
[toc]
1. 编译Android源码
1 | source build/envsetup.sh |
sdk_phone_x86_64是Android Emulator(AVD模拟器)的编译目标。
2. 搭建源码环境
idegen: 生成 IDE 相关文件
AOSP原生提供了idegen
工具用于生成IDE环境(IDEA以及基于其的Android Studio)下的工程:
1 | soruce build/envsetup.sh |
以上 3 个步骤的含义依次如下:
1 | Step 1: 用于初始化环境变量 |
导入到Android Studio
Android Studio打开前面生成的 android.ipr 文件即可
(a) 加载前配置文件提速:
打开android.iml
文件,有大量 excludeFolder和source标签。根据自身需求和目标,删除或注释掉掉不感兴趣的source,可以让IDE不解析这些目录,可以避免对机器带来性能负担。
(b) 加载后设置模块源码目录:
在Android Studio中Project Structure
-> Modules
, 可快速去除某些模块, 其中红色代码 Exclueded 选项 (即代表已删除的目录), 如下图:
将目录设置为source或Excluded等同于控制上述的iml文件。
配置源码正确跳转
Framework内实现了Android SDK的代码。但是Android Studio默认跳转到SDK而不是Framework,需要移除工程中默认使用的SDK,才能让跳转跳入Framework的源码。
点击File
菜单下的Project Structure
:
Step 1 新建 JDK
Project Structure -> SDKs, 新建 JDK(None)
, JDK使用Android Studio自带或系统内置即可。删除其 classpath 和 SourcePath 的内容,即删除Android Studio自带SDK,这样不再跳转进入SDK,而是进入我们导入的Framework。
Step 2 配置 SDK
Project Structure -> SDKs, 选中Android API 25 Platform
, 然后选择其 Java SDK 为前面新建的JDK(None)
Step 3 选择 SDK
Project Structure -> Project -> 选中 Project SDK, 选择前面的Android API 25 Platform
Step 4 建立依赖
Project Structure -> Modules -> android -> Dependencies: 先删除 Android API 25 Platform 之外的所有依赖, 然后点击下图绿色的+
号来选择Jars or directories
,将 frameworks 添加进来, 也可添加其他所关注的源码;
下图便是添加后的结果图: