源码下载见前文:WSL Ubuntu 20.04下Android源码下载

idegen 模块编译

development/tools/idegen/README下可以看到关于 idegen 工具的相关说明。
在编译之前请先apt-get一下make工具。

初始化编译环境

cd进源码的根目录,随后初始化环境变量。

source build/envsetup.sh

生成 idegen.jar

参考教程:android studio 调试 framework 层代码
如果之前没有进行过编译建议使用make命令,android 是基于 Android.mk(类似 makefile) 进行构建编译的,这个命令会遍历所有的模块找到 idegen 的 Android.mk,,然后计算所有的依赖的库,如果依赖库没有编译会先编译所有的依赖库,所以 make 编译时较慢。

make idegen -j6 # 六核编译 idegen 模块

如果之前已经对整个系统进行过编译,此处使用mmm命令,用于生成idegen.jar

mmm development/tools/idegen/

m:编译所有的模块
mm:编译当前目录下的模块,当前目录下要有Android.mk文件
mmm:编译指定路径下的模块,指定路径下要有Android.mk文件

注意

  1. 请务必将源码下载到 wsl 的文件系统中编译,不然会报操作不支持的错误:
Failed to listen for path logs: listen unix out/.path_interposer_log: bind: operation not supported
  1. 请务必使用 wsl2,不然会报更加让人摸不着头脑的错:
Failed to listen for path logs: listen unix out/.path_interposer_log: bind: invalid argument
  1. Mac 系统请务必开启区分大小写,否则会报区分大小写的错(Mac 系统也不用 wsl 了吧(挠头)):
************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************
Case-insensitive filesystems not supported

最后成功编译输出:

生成源码根目录生成文件 android.ipr (工程相关设置)和 android.iml (模块相关配置)

source development/tools/idegen/idegen.sh

在根目录下生成了android.iprandroid.imlandroid.iws三个文件。

导入 AS

修改 android.iml

直接导入的话 indexing 时长感人,电脑性能不行的话还会把 Android Studio 卡爆,需要在android.iml文件中把不需要的目录给排除掉。
为了后续方便修改文件,先给文件提权:

chmod 777 -R <安卓源码根目录路径>

在 VS code 中远程连接 wsl(具体方法见本文文首链接的上篇末尾),搜索excludeFolder,该标签的url属性指示了不需要引入的目录,可以根据自己的需求进行更改,例如我就把这段替换成

<excludeFolder url="file://$MODULE_DIR$/./external/emma"/>
<excludeFolder url="file://$MODULE_DIR$/./external/jdiff"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<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" />

在 AS 中打开 android.ipr

在 AS 中打开android.ipr导入源码,需要一段时间。
如果提示Unable to save settings: Failed to save settings. Please restart Android Studio等权限相关的警告,请用前述方法进行提权。
切换成package视图可以根据包路径查看源码。

如果想要查看被排除目录下的源码,可以通过“File—Project Structure—Project Settings”,右键所需的目录,取消勾选“Excluded”,将其添加进来。

WSL Ubuntu 20.04下Android源码编译与导入Android Studio相关推荐

  1. WSL Ubuntu 20.04下Android源码下载

    1. 开启WSL 右键开始菜单,打开任务管理器,选择性能选项卡,查看 CPU 虚拟化是否开启,如果没有开启,需要在 BIOS 中开启. 在 Windows 设置中搜索并打开"启用或关闭 Wi ...

  2. android源码编译 简书,android学习笔记之源码编译

    编译环境 1.需要Ubuntu 64bit,建议Ubuntu14.04 64-bit 2.安装openJDK7 $ sudo apt-get update $ sudo apt-get install ...

  3. android源码编译jar,在android源码编译中导入第三方jar包

    源码编译,我们可以只留下app的src,res目录和androidmanifest.xml文件,在app的根目录添加一个android.mk文件,还有我们需要导入的jar包,我这里是libjsoup- ...

  4. redhad环境android源码编译,启动流程  |  Android 开源项目  |  Android Open Source Project...

    建议的设备启动流程如下所示: 图 1. 启动时验证流程 适用于 A/B 设备的流程 如果设备使用的是 A/B 系统,则启动流程略有不同.必须先使用启动控件 HAL 将要启动的槽位标记为 SUCCESS ...

  5. 在Ubuntu 20.04下安装 ROOT cern

    在Ubuntu 20.04下安装 ROOT cern Step1 安装必要库 Step2 安装ROOT本身 方法1:下载预编译软件包安装(Bianary Distributions) 方法2:CMAK ...

  6. ccpd文件名转成xml_在Deepin V20/Ubuntu 20.04下安装佳能LBP2900+打印机的方法

    本文为你介绍在Deepin V20系统下安装佳能LBP2900+打印机的方法,同样的方法也适用在Ubuntu 20.04下,但在Ubuntu下需要安装canberra-gtk-module. 在Dee ...

  7. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

  8. Ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明(均可运行)

    ubuntu 20.04 下Fabric V2.2.0 和 V1.1.0 运行及配置说明 ubuntu 20.04 下Fabric运行及配置说明 注:本文是对 <hyperledger/fabr ...

  9. Ubuntu 20.04 下 部署 SoftEther

    SoftEther 简介 SoftEther VPN 是 SoftEther VPN Project 提供的下一代 VPN 通信软件的最新版本,具有稳定性.灵活性和可扩展性. SoftEther VP ...

最新文章

  1. js监控键盘大小写事件
  2. Python中最常用十大图像处理库详细介绍
  3. 我的C++开发工具链
  4. 白话经典算法系列之一 冒泡排序的三种实现
  5. 20-190-090-安装-Flink集群安装 flink-1.9.0
  6. ios高效开发-正确的使用枚举(Enum)
  7. delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式
  8. mysql查处所有表中的新数据,mysql – 对所有表执行查询并在新表中填入数据
  9. Activiti学习:(第一篇) SpringMVC整合Activiti
  10. C语言 输出正三角形图形
  11. 软件License管理与代码保护技术概述
  12. 百度网盘客户端终于解除限速啦
  13. 网站建设应该怎样建?建站流程说明
  14. 天齐锂业通过聆讯:单季净利33亿 蒋卫平夫妇身价超500亿
  15. 单独使用bable插件
  16. w i ndows,解释计算 机Windows的学习英语(10页)-原创力文档
  17. WCF 项目应用连载[9] - 契约中的委托 事件参数处理
  18. Mini Hook 主要代码理解
  19. 小程序笔记(四)发表评论或者普通发帖
  20. CentOS7.6搭建开源WCP知识管理系统

热门文章

  1. 修改文件夹名称隐藏文件夹_电脑中的上帝模式
  2. linux运行程音乐软件,Linux上如何安装使用音乐软件SoundCloud
  3. 关于渐变纹理图表编辑工具的开发及基础应用
  4. 非接触式图像测量仪“快、准、易”,有效解决人为误差
  5. 定义生产订单类型+不同订单类型关联不同的特性
  6. 一张图片而已的NFT,为什么会受追捧?
  7. 数据可视化 - 三维场景的实现
  8. ug4.0找不到服务器怎么办,ug 4.0 许可证服务器尚未启动 或者ugll许可文件被设置为错误的端口什么意思...
  9. python 闲鱼消息_闲鱼留言消息通知助手
  10. Day 7 Linux之系统监控、硬盘分区等