前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android Studio 导入 AOSP 源码

Android Studio 导入 AOSP 源码

作者头像
吴小龙同學
发布于 2019-12-11 07:49:40
发布于 2019-12-11 07:49:40
3.2K00
代码可运行
举报
文章被收录于专栏:吴小龙同學吴小龙同學
运行总次数:0
代码可运行

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

安装 Java

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo update-alternatives --config java

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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,整编报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 系统下,进入源码根目录,运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source build/envsetup.sh
mmm development/tools/idegen/

报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
development/tools/idegen/idegen.sh

会在根目录下生成 android.iml 和 android.ipr 这两个文件,这两个文件是 Android Studio 的工程配置文件,这时候其实已经可以直接导入 Android Studio,但会导入所有的源码模块,会很慢,可以进行过滤,除了 frameworks 模块和 packages 模块,其他都给过滤掉,不导入 Android Studio,打开 android.iml 文件,搜下excludeFolder,在后面加入如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 18.04上安装Java
在本教程中,我们将介绍在Ubuntu 18.04上安装和管理Java。 Java是用于构建不同类型的应用程序和系统的最流行的编程语言之一。
用户8710806
2021/06/08
6910
不会查看系统源码,还搞什么Android?
在上一篇文章如何方便快速的整编Android 9.0系统源码? )中,我们对系统源码进行了编译,这篇文章我们接着来学习如何将系统源码导入到编辑器中,以便于查看和调试源码。关于查看源码,可以使用Android Studio、Eclipse、Sublime、Source Insight等软件,这里我推荐使用Source Insight,但是有的同学可能不是很习惯,而且Source Insight是Windows平台的软件,Mac平台用不了,那么使用Android Studio是一个不错的选择,而且使用Android Studio还可以调试源码。这篇文章就来介绍Source Insight和Android Studio如何导入源码。
Android技术干货分享
2019/05/09
2.9K0
不会查看系统源码,还搞什么Android?
编译Android5.1.1源码
编译Android源码是为了更好的学习源码,当然,如果要做第三方ROM适配,也可以尝试;我们这篇重点学习如下内容:
GitOPEN
2019/01/29
1.2K0
AndroidStudio阅读Android源码终极篇
几乎在所有的教程里面,都提到说,要阅读Android源码,需要完整编译一次源码,比如我之前的文章使用AndroidStudio阅读Android源码。但是这个完整编译就是个不小的坎,且不说会遇到很多的错误,编译也需要不少时间,换个操作系统又来折腾一番?
用户2930595
2018/08/23
1.5K0
Android源码环境搭建(aosp Ubuntu 16.04/20.04)
Android源码环境搭建(aosp Ubuntu 16.04) 作者:千里马 腾讯课堂千里马手把手教你学framework课程地址:https://ke.qq.com/course/package/
千里马学框架
2023/06/27
7880
Android源码环境搭建(aosp Ubuntu 16.04/20.04)
使用AndroidStudio阅读Android源码
大家有没有好奇过为啥编译一次Android源码需要大概100G的存储? Android源码真的有这么大? 经过我的测试(Android4.4.4)发现: .repo 占 30G+ out 占25+ 真正源码 占10G+ .repo 是git的仓库目录,在下载源码时,将各个版本的仓库文件都同步过来了,假如你没有切换源码版本的需求,这个目录可以安全删除,可以省不少空间。 out 是编译的输出目录,编译后,这个目录比源码大很多。 真正源码 只有10G+,假如你想copy代码,只要copy这块就好。
用户2930595
2018/08/23
5720
在macOS 10.12 上编译 Android 5.1
官方文档虽然也有介绍,但是macOS平台上的编译环境问题还存在很多坑。本文介绍下如何在在macOS 10.12 上编译 Android 5.1源码,导入源码到Android Studio中,把系统烧录到Nexus6手机中。 ---- 搭建编译环境 创建分区 AOSP源码需要一个支持大小写敏感的文件系统,100G是至少要的。官网有详细的介绍,这里简单列一下。 $ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g
felix
2018/06/08
2K0
AOSP 源码整编单编
整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img、userdata.img、ramdisk.img 等,这些是可以刷机的。
吴小龙同學
2019/12/11
2.4K0
Android源码编译(ubuntu16.04+android P)简介
这里我们使用虚拟机来安装ubuntu。至于VMware具体安装方法大家自行百度。这里贴出我所用的版本。
用户2929716
2018/08/23
1.8K0
Android源码编译(ubuntu16.04+android P)简介
Android 系统架构
由于工作内容的转变,使得我向Android系统方向转变,对于一个Android系统工程师,了解Android整个系统架构是必然的。本篇是Android系统学习的开篇,Android系统庞大且复杂,但是能对Android的认识更深,更全面。开启Android系统之旅吧!
八归少年
2023/11/06
6880
Android 系统架构
Android Studio查看Android源码
打开Android Studio,点击File>Open,选择刚刚生成的android.ipr就好了
用户3004328
2018/09/06
2.2K0
Ubuntu 16.04上编译Android主线最新代码
本文说明如何在Ubuntu 16.04(64位)上编译Android最新主线代码,介绍如何下载代码、建立编译环境、编译代码。
用户8704835
2021/06/07
1.2K0
下载及编译android7源码
参考 :https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
上善若水.夏
2018/09/28
1.5K0
ubuntu14.04编译Android4.4源码
安装JDK: 因为我是编译android4.4,故jdk6即可满足。ubuntu14.04不支持apt-get安装,我们来手动安装一下:
用户2930595
2018/08/23
5940
Android 源码编译make的错误处理
Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1)
阳光岛主
2019/02/19
2.7K0
Android 10 WebView 踩坑实录
项目要求支持 8K 高清视频(H265编码)播放,拿到板子后却发现使用 App 可以播放 8K 高清视频,但使用浏览器却不行,即使安装上最新的 Chrome for Android 也不行。根据以往的浏览器内核开发经验,在 Android 平台上,Chromium WebView 最终是调用系统框架层的 MediaPlayer 进行播放。理论上只要系统框架层能够支持 8K 高清播放,那么浏览器应该也支持。实际情况却并非如此,而且 Android 10 预编译 WebView 没任何日志输出,所以需要下载源码编译 Chromium WebView,找出问题所在。
云水木石
2023/10/08
2K0
Android 10 WebView 踩坑实录
app.iml 文件简介 ;project 的iml:删除前后对比;Android Studio误删了app.iml文件后,项目运行不起来,进行恢复.iml文件
恢复.iml文件按照下面四个步骤: 1.将gradle文件中删除一行空格,目的是出现sync now 2.点击右上角Gradle,选中你的moudle 3.点击上面的刷新按钮 4.点击sync now 你就发现iml文件重新生成了。
zhangjiqun
2024/12/16
2520
app.iml 文件简介  ;project 的iml:删除前后对比;Android Studio误删了app.iml文件后,项目运行不起来,进行恢复.iml文件
aosp编译
aosp “Android Open Source Project”的缩写。中文意为”Android 开放源代码项目”。
tea9
2023/03/08
2.5K0
aosp编译
音视频开发之旅(57) -如何方便的查看AndroidNative源码
对Framework层的了解学习是我们进阶的一个重要阶段。通过 AS 查看 Framework 代码体验非常好,无论是索引还是界面都让人很满意,但是当你跟踪代码,发现进入 native 逻辑时,就会发现 Android Studio 对 native 代码的支持非常不好,不能索引不支持符号搜索不能跳转等。
音视频开发之旅
2021/09/09
1.3K0
音视频开发之旅(57) -如何方便的查看AndroidNative源码
如何在 Ubuntu 20.04 上安装 Java
Java 是世界上最流行的编程语言之一,被用来构建各种不同的应用和系统。Java 运行在所有的主流操作系统和设备上。你可以在你的笔记本,电话和游戏中发现使用 Java 开发的应用。
雪梦科技
2020/05/11
31K2
如何在 Ubuntu 20.04 上安装 Java
相关推荐
如何在Ubuntu 18.04上安装Java
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验