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

相关推荐
跳跳糖炒酸奶2 小时前
第四章、Isaacsim在GUI中构建机器人(1): 添加简单对象
人工智能·python·ubuntu·机器人
吃旺旺雪饼的小男孩2 小时前
Ubuntu 22.04 安装和运行 EDK2 超详细教程
linux·运维·ubuntu
A__tao5 小时前
SQL 转 PHP Eloquent、Doctrine ORM, 支持多数据库
android·ide·android studio
Sapphire~6 小时前
odoo-045 ModuleNotFoundError: No module named ‘_sqlite3‘
python·ubuntu·odoo
烨鹰17 小时前
戴尔电脑安装Ubuntu双系统
linux·运维·ubuntu
kfepiza19 小时前
Debian/Ubuntu的networking的`/etc/network/interfaces`配置文件,如何配置route路由
linux·网络·tcp/ip·ubuntu·debian·ip·tcp
水w19 小时前
【Android Studio】如何卸载干净(详细步骤)
android·开发语言·android studio·activity
Yang-Never1 天前
Open GL ES ->纹理贴图,顶点坐标和纹理坐标组合到同一个顶点缓冲对象中进行解析
android·java·开发语言·android studio·贴图
a3158238061 天前
SnapdragonCamera骁龙相机源码解析
android·数码相机·framework·高通