Android Studio导入aosp源码

1、在 Ubuntu 系统下,进入源码根目录,运行如下命令:

source build/envsetup.sh # 初始化环境变量。

lunch sdk_phone_x86_64

make idegen -j6 # 六核编译 idegen 模块

忽略此命令:mmm development/tools/idegen/ # 此命令可以不执行(同make idegen命令)如果之前已经对整个系统进行过编译,此处使用mmm命令,用于生成idegen.jar

development/tools/idegen/idegen.sh # 源码根目录生成文件 android.ipr (工程相关设置)和 android.iml (模块相关配置)

如果提示权限问题(Permission denied),可以忽略, 不影响ipr和iml文件生成

=====实际操作可行

source build/envsetup.sh

lunch aosp_x86-eng # 或者直接输入lunch,然后选择对应的target

make idegen

development/tools/idegen/idegen.s

跳转,查看源码问题

https://blog.csdn.net/weixin_53620063/article/details/123634332

其他方式======加载源代码到 AndroidStudio

执行以下四条命令:

". build/envsetup.sh" (source可以用 .代替,即". build/envsetup.sh")

"lunch",并选择要编译的项目

"make idegen -j4" (这里的 -j4表示用 4线程来编译,可以不加)

"development/tools/idegen/idegen.sh" (报错find: 'out/target/product/generic_x86_64/root/d': Permission denied没有关系不影响ipr和iml文件生成)

会在根目录下生成 android.iml 和 android.ipr 这两个文件,这两个文件是 Android Studio 的工程配置文件,这时候其实已经可以直接导入 Android Studio,但会导入所有的源码模块,会很慢,可以进行过滤,除了 frameworks 模块和 packages 模块,其他都给过滤掉,不导入 Android Studio,打开 android.iml 文件,搜下excludeFolder,在后面加入如下代码:

```

<excludeFolder url="file://MODULE_DIR/art" />

<excludeFolder url="file://MODULE_DIR/bionic" />

<excludeFolder url="file://MODULE_DIR/bootable" />

<excludeFolder url="file://MODULE_DIR/build" />

<excludeFolder url="file://MODULE_DIR/cts" />

<excludeFolder url="file://MODULE_DIR/dalvik" />

<excludeFolder url="file://MODULE_DIR/developers" />

<excludeFolder url="file://MODULE_DIR/development" />

<excludeFolder url="file://MODULE_DIR/device" />

<excludeFolder url="file://MODULE_DIR/docs" />

<excludeFolder url="file://MODULE_DIR/external" />

<excludeFolder url="file://MODULE_DIR/hardware" />

<excludeFolder url="file://MODULE_DIR/kernel" />

<excludeFolder url="file://MODULE_DIR/libcore" />

<excludeFolder url="file://MODULE_DIR/libnativehelper" />

<excludeFolder url="file://MODULE_DIR/out" />

<excludeFolder url="file://MODULE_DIR/pdk" />

<excludeFolder url="file://MODULE_DIR/platform_testing" />

<excludeFolder url="file://MODULE_DIR/prebuilts" />

<excludeFolder url="file://MODULE_DIR/sdk" />

<excludeFolder url="file://MODULE_DIR/system" />

<excludeFolder url="file://MODULE_DIR/test" />

<excludeFolder url="file://MODULE_DIR/toolchain" />

<excludeFolder url="file://MODULE_DIR/tools" />

<excludeFolder url="file://MODULE_DIR/.repo" />

```

3、导入 Android Studio

打开 Android Studio,选择 Open an existing Android Studio project,找到源码目录,点击 Android.ipr,Open,大约等 6 分钟,导入完毕,Enjoy coding。

4、问题

发现 Android Studio 不停 scanning files to index,我的强迫症又犯了,解决:

1 invalidate and restart 不起作用;

2 右击项目 --> Open module setting --> Modules --> 找到 gen 文件夹 --> 右键选择 Resources,终于告别烦人的 scanning files to index。

5、拓展(如果系统中存在多个jdk版本,可以指定)

sudo update-alternatives --config java

输出:

有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

选择 路径 优先级 状态


* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 自动模式

1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 手动模式

2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2

相关推荐
再遇当年18 小时前
ubuntu22.04安装中文输入法且与ros2与clion不冲突
ubuntu·ros·输入法·中文输入法·fcitx5
黑蛋同志18 小时前
使用 pyenv 在Ubuntu 20 上安装 Python 3.10
chrome·python·ubuntu
知识分享小能手18 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04 用户和组管理指南(8)
linux·学习·ubuntu
lbb 小魔仙20 小时前
Ubuntu 22.04 安装 Docker 完整步骤(附镜像加速配置)
linux·ubuntu·docker
字节逆旅1 天前
ubuntu上用nginx部署前端项目
ubuntu
张雨zy1 天前
Pinia 与 TypeScript 完美搭配:Vue 应用状态管理新选择
vue.js·ubuntu·typescript
么么...1 天前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker
键来大师1 天前
Android16 设置壁纸出现APK重启问题和悬浮控件等图标变成黑色图框
android·framework·rk3576
誰能久伴不乏1 天前
Linux `epoll` 学习笔记:从原理到正确写法(含 ET 经典坑总结)
linux·服务器·网络·c++·ubuntu
像名字一样难取的昵称1 天前
Linux学习笔记:十八、Linux文件的压缩,解压缩一站式学习
linux·运维·笔记·学习·ubuntu·ssh