6

Android Studio 导入 AOSP 源码

 2 years ago
source link: http://wuxiaolong.me/2018/08/15/AOSP3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Android Studio 导入 AOSP 源码

发表于

2018-08-15

| 分类于 AOSP

| 阅读次数: 6470

有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具。问题来了,如何将 AOSP 源码导入 Android Studio?

安装 Java

虚拟机新装的 Ubutun 一开始是没有 Java 的,需要先安装,输入命令java,报以下错误:

Command 'java' not found, but can be installed with:
sudo apt install default-jre
sudo apt install openjdk-11-jre-headless
sudo apt install openjdk-8-jre-headless

输入以上命令进行安装,然后整编(关于整编和单编下节细讲)代码又报错:

Your version is: openjdk version "10.0.1" 2018-04-17 OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode).
The required version is: "1.8.x"

提示 Java 版本只能是 1.8.x,需要指定 Java 版本:

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

JDK 也有门派之分的,那就是 Open JDK 和 Oacle JDK,其实我刚开编译时,用的是 Oracle JDK,整编报错:

You asked for an OpenJDK based build but your version is
java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode).

idegen.jar

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

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


Command 'make' not found, but can be installed with:
sudo apt install make
sudo apt install make-guile

命令安装 make 成功后,再次运行mmm development/tools/idegen/,会在源码目录下的 out/host/linux-x86/framework目录下生成了 idegen.jar 文件。

如果命令 mmm development/tools/idegen/ 一直报错,可以尝试一下命令 make idegen 依赖编译下。

android.iml 和 android.ipr

在源码目录下继续执行如下命令:

development/tools/idegen/idegen.sh

会在根目录下生成
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" />

导入 Android Studio

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

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

1 invalidate and restart 不起作用;

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

VirtualBox 安装 Ubuntu

AOSP 源码下载

AOSP 源码整编单编

https://blog.csdn.net/HQZ820844012/article/details/80461196

https://www.jianshu.com/p/fb16fa459acf

https://blog.csdn.net/shisanmei911/article/details/79761569

 我的微信公众号:吴小龙同学,欢迎关注交流,公号回复关键字「1024」有惊喜哦。 code?username=MrWuXiaolong


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK