有了AOSP源码ubuntu下安装android sdk,接出来就是怎么看了,可以直接文本看,可以用SourceInsight,我其实选择AndroidStudio,AndroidStudio是我熟悉且非常强悍的工具。问题来了,怎么将AOSP源码导出AndroidStudio?
安装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也有宗派之分的,那就是OpenJDK和OacleJDKlinux系统好用吗,虽然我刚开编译时,用的是OracleJDK,整编报错:
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成功后,再度运行mmmdevelopment/tools/idegen/,会在源码目录下的out/host/linux-x86/framework目录下生成了idegen.jar文件。
假如命令mmmdevelopment/tools/idegen/仍然报错,可以尝试一下命令makeidegen依赖编译下。
android.iml和android.ipr
在源码目录下继续执行如下命令:
development/tools/idegen/idegen.sh
会在根目录下生成
android.iml和android.ipr这两个文件,这两个文件是AndroidStudio的工程配置文件,这时侯虽然早已可以直接导出AndroidStudio,但会导出所有的源码模块,会很慢,可以进行过滤ubuntu下安装android sdk,不仅frameworks模块和packages模块,其他都给过滤掉,不导出AndroidStudio,打开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" />
导出AndroidStudio
我把Android源码拷到我的Mac上,打开AndroidStudio,选择OpenanexistingAndroidStudioproject,找到源码目录硬盘安装linux,点击Android.ipr,Open,大概等6分钟,导出完毕,Enjoycoding。
问题
发觉AndroidStudio不停scanningfilestoindex,我的逼迫症又犯了,解决:
1invalidateandrestart不起作用;
2右击项目-->Openmodulesetting-->Modules-->找到gen文件夹-->右键选择Resources,总算挥别可恶的scanningfilestoindex。
参考
阅读源码,进修者