使用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!!!

相关推荐
Kapaseker1 小时前
你不看会后悔的2025年终总结
android·kotlin
alexhilton4 小时前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack
ji_shuke5 小时前
opencv-mobile 和 ncnn-android 环境配置
android·前端·javascript·人工智能·opencv
sunnyday04267 小时前
Spring Boot 项目中使用 Dynamic Datasource 实现多数据源管理
android·spring boot·后端
幽络源小助理8 小时前
下载安装AndroidStudio配置Gradle运行第一个kotlin程序
android·开发语言·kotlin
inBuilder低代码平台8 小时前
浅谈安卓Webview从初级到高级应用
android·java·webview
豌豆学姐8 小时前
Sora2 短剧视频创作中如何保持人物一致性?角色创建接口教程
android·java·aigc·php·音视频·uniapp
白熊小北极9 小时前
Android Jetpack Compose折叠屏感知与适配
android
HelloBan9 小时前
setHintTextColor不生效
android
洞窝技术11 小时前
从0到30+:智能家居配网协议融合的实战与思考
android