内容简介:有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具。问题来了,如何将 AOSP 源码导入 Android Studio?虚拟机新装的 Ubutun 一开始是没有 Java 的,需要先安装,输入命令输入以上命令进行安装,然后整编(关于整编和单编下节细讲)代码又报错:
有了 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。
以上所述就是小编给大家介绍的《Android Studio 导入 AOSP 源码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Android Studio 导入源码
- Android AOSP基础(四)Source Insight和Android Studio导入系统源码
- ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)
- 将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化
- [MySQL]备份和导入
- Python导入订单是否重要
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
URL 编码/解码
URL 编码/解码
HEX CMYK 转换工具
HEX CMYK 互转工具