使用AndroidStudio阅读源码

在上一节中我们成功编译了aosp源码并运行了模拟器。

ubuntu编译android12源码

做安卓的肯定都离不开AndroidStudio,那么我们能否将asop的源码导入到AndroidStudio中进行学习和开发呢?

答案是肯定的。

AIDEGen是一款Google提供的工具,用于自动化AOSP项目中的Java和C/C++IDE配置,帮助开发者快速设置项目,减少手动配置,提升开发效率。通过解析模块依赖并生成相应的IDE配置文件。

使用AndroidStudio查看源码

  1. 先编译sdk,执行以下代码
bash 复制代码
source build/envsetup.sh
lunch sdk-eng
make sdk
lunch aosp_x86_64-eng

这个编译过程可能需要等待一下...

  1. 修改AndroidStudio的配置

我们先来打开我们的AndroidStudio配置一下大内存,这个应该做过android开发的都会吧。。。

首先加大idea VM内存:

打开IDEA 菜单栏 Help > Edit Custom VM Options,添加修改以下内容,这个要取决于你自己的机器:

diff 复制代码
-Xms2g
-Xmx10g

然后是修改文件大小限制,打开区分大小写选项

打开IDEA 菜单栏 Help -> Edit custom properties, 添加

ini 复制代码
idea.max.intellisense.filesize=100000
idea.case.sensitive.fs=true

修改完毕后重启AndroidStudio使配置生效。

  1. 使用aidegen配置打开项目

运行以下脚本自动通过aidegen配置我们的项目:

bash 复制代码
mmma development/tools/idegen
sudo development/tools/idegen/idegen.sh

运行上面的脚本可能会报错,这是因为3.12版本的Python缺少distutils导致的。。。

我们可以通过将Python版本回退或者多版本共存的方式来解决这个问题。

安装以下python3.10

sql 复制代码
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-distutils

配置下多本版的问题:

bash 复制代码
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2

选择以下优先使用的版本:

sql 复制代码
sudo update-alternatives --config python3

在这里我们按照提示选择优先使用python3.10即可。

然后使用AndroidStudio打开我们生成的 android.ipr 文件,由于工程很大,需要较长的时间建立索引,请耐心等待。

  1. 配置JDK

使用AndroidStudio打开android.ipr 文件后,需要配置一下我们的JDK和SDK,使得指向我们的aosp源码。

首先打开我们的项目配置,添加本地SDK:

jdk的目录在: aosp/prebuilts/jdk/jdk11/darwin-x86

然后配置SDK:

sdk的目录在: aosp/out/host/linux-x86/sdk/sdk/android-sdk_eng.fly_linux-x86

至此,我们就可以使用AndroidStudio愉快地带跳转阅读aosp的源码拉...

aidegen的功能可不止这么一种用法,它还有很多用法,比如它可以配置SDK中的C/C++代码然后使用CLion打开等等。。。

例如运行下面的代码会自动使用AndroidStudio打开我们的Settings源码。

css 复制代码
aidegen Setting -i s 

当然如果你觉得aosp的代码太庞大了,我们应该用远程开发,按么你也可以使用vscode等工具通过ssh的方式远程修改和阅读aosp的源码...

推荐

为了更加方便Framework的开发者,谷歌推出了framework专用的AndroidStudio,建议大家都使用Android Studio for Platform来进行aosp的调试与开发...

developer.android.com/studio/plat...

安卓Framework开发

音视频入门基础

安卓camera应用开发

NDK学习入门

C++进阶

ffmpeg系列

Opengl入门进阶

关注我,一起进步,人生不止coding!!!

相关推荐
移动开发者1号19 分钟前
新建Android项目build.gradle不是以前熟悉的配置
android
tangweiguo030519872 小时前
Android Kotlin AIDL 完整实现与优化指南
android·kotlin
智驾3 小时前
HarmonyOS 是 Android 套壳嘛?
android·harmonyos·替代·套壳
longzekai3 小时前
【重学Android】03.高版本 Android Studio 不能使用引用库资源ID的问题
android·ide·android studio
YSoup4 小时前
2025深圳中兴通讯安卓开发社招面经
android
ufo00l4 小时前
ViewModel 在什么时候被销毁
android
声知视界4 小时前
音视频基础能力之 Android 音频篇 (六):音频编解码到底哪家强?
android·音视频开发
ufo00l4 小时前
讲述EventBus和RxBus的工作模式以及和LiveData消息总栈的优劣势
android
玄之宵4 小时前
Android 回显
android·java·开发语言