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

相关推荐
cosX+sinY36 分钟前
ubuntu 20.04 编译运行lio-sam,并保存为pcd
linux·ubuntu·机器人
FREEDOM_X3 小时前
ubuntu20.04 远程桌面Xrdp方式
ubuntu·vmware
꧁坚持很酷꧂3 小时前
配置Ubuntu18.04中的Qt Creator为中文(图文详解)
开发语言·qt·ubuntu
Sapphire~4 小时前
Linux-06 ubuntu 系统截图软件使用简单记录
linux·运维·ubuntu
biter00884 小时前
ubuntu(28):ubuntu系统多版本conda和多版本cuda共存
linux·人工智能·ubuntu·conda
zhouzhihao_074 小时前
android studio sdk unavailable和Android 安装时报错:SDK emulator directory is missing
android studio·figima不翻墙查看设计图·sdk unavailable
Hello.Reader6 小时前
在 Ubuntu 环境为 Elasticsearch 引入 `icu_tokenizer
ubuntu·elasticsearch·jenkins
还是鼠鼠6 小时前
Android移动应用开发入门示例:Activity跳转界面
android·前端·gitee·android studio·android-studio
foo1st18 小时前
JDK(Ubuntu 18.04.6 LTS)安装笔记
java·笔记·ubuntu
大耳猫19 小时前
【解决】Android Gradle Sync 报错 Could not read workspace metadata
android·gradle·android studio