1. AOSP源码导入到AndroidStudio

时间:2024-09-30 21:27:25

1. AOSP源码导入到AndroidStudio

原文地址:http://www.androidcrack.com/index.php/archives/6/

⚠️ 在执行一下操作前, 请先完整的编译一次系统, 若不清楚如何编译系统. 请访问下面文章

http://www.androidcrack.com/index.php/archives/3/

1. 生成idegen.jar

source build/envsetup.sh
mmm development/tools/idegen/

2. 生成android.ipr和android.iml

development/tools/idegen/idegen.sh

这里比较遗憾,报错了, 提示我们最低安装Java9, 版本太高我也不敢升级.

我这里安装java11

image-20240926182612227

sudo apt update
sudo add-apt-repository --remove ppa:webupd8team/java
sudo apt update
sudo apt install openjdk-11-jdk

image-20240926183128316

再次执行就成功了. 此时在根目录可以看到2个文件

image-20240926183229069

3. 编写iml文件

⚠️ 这步非常重要, 它将决定你代码的加载速度与代码跳转

3.1 排除不需要的包

增加excludeFolder 列表,排除不需要的源码路径.这样可以加快导入和创建文件索引的速度。在.iml文件中有少了的excludeFolder项,在后面根据自己需要补充即可。例如:

    <excludeFolder url="file://$MODULE_DIR$/abi"/>
    <!-- <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$/ndk"/>
    <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$/tools"/>
    <!-- <excludeFolder url="file://$MODULE_DIR$/vendor"/> -->
    <excludeFolder url="file://$MODULE_DIR$/toolchain"/>
    <excludeFolder url="file://$MODULE_DIR$/compatibility"/>
    <excludeFolder url="file://$MODULE_DIR$/compatibility"/>
    <excludeFolder url="file://$MODULE_DIR$/test"/>

image-20240927095804006

3.2 删除所有orderEntry节点

删除所有<orderEntry type="module-library">...</orderEntry> 项。这些项是引用的源码中编译出来的jar包,如果保留,在浏览过程中查看类型跳转到这些jar中的class文件,而不是源码java文件。删除后,则可以直接跳转到源码文件。
说明:这些设置也可以在Android studio:project structure - project settings - modules - dependencies 中修改,速度比较慢,不如直接编辑.iml文件方便。

image-20240927100022896

4. 导入AndroidStudio

在导入AndroidStudio前, 我们还需要修改个AndroidStudio的配置

1)Help - Edit custom Properties:  
	(对应配置文件:~/.config/Google/AndroidStudio$version/idea.properties)
	idea.max.intellisense.filesize=100000
2)Help - Edit custom VM options:
	(对应配置文件:~/.config/Google/AndroidStudio$version/studio64.vmoptions)
	-Xms1g
	-Xmx5g

image-20240927100437472

image-20240927100514171

做完这些操作,我们就可以愉快的把AOSP导入到AndroidStudio了. d