idgen导入Android11源码
文章目录
- 配置
- 下载AS
- 编译
- 源码依赖导入
- 玩一下andorid.iml
注意:
- 有些时候发现为啥自己编译就这么难呢?不是卡死就无数次重启虚拟机,一切的原罪在配置过低,换句话说就是穷。
- 关于导入源码的下载参考 Android Studio for Platform (ASfP) 使用教程
- 内存消耗非常惊人!!! 建议编译内存在32G,避免出现卡顿甚至卡死,因为即使有交换内存仍然会卡顿,如下一共使用到11+8≈20G内存之多,加上Ubuntun本地内存高达7G左右,如果是虚拟机开发,建议直接上64G内存。


配置
1. 选择android.ipr导入源码
2. 建立一个空的jdk, 并设置为工程依赖的jdk
3. 删除所有的依赖库
4. 将frameworks和external目录作为依赖,并调整依赖优先级
5. 将out/target/common/R/设置为依赖
6. 将不需要的目录从索引中删除,提高检索速度**
下载AS
下载
https://developer.android.com/studio/install?hl=zh-tw#linux
3.双击解压到 :/opt/android-studio
创建快捷方式
/usr/share/applications/android-studio.desktop
[Desktop Entry]
Encoding=UTF-8
Name=RealAndroidStudio
Comment=RealAndroidStudio
Exec=/opt/android-studio/bin/studio.sh
Icon=/opt/android-studio/bin/studio.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
编译
soruce build/envsetup.sh
lunch sdk_phone_x86_64
make -j8
mmm development/tools/idegen/
. development/tools/idegen/idegen.shsudo chmod 777 android.iml
sudo chmod 777 android.ipr
- android.ipr:通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等
- android.iml:则是主要是描述了modules,比如modules的路径,依赖关系等.
- android.iws:则主要是包含了一些个人工作区的设置.


修改 iml 内容
gedit /data/android-11.0.0_r9/android.iml
- 源码只需要external(第三方依赖),frameworks(框架)
<content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/external" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/frameworks" isTestSource="false" /><excludeFolder url="file://$MODULE_DIR$/.repo" /><excludeFolder url="file://$MODULE_DIR$/abi" /><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$/frameworks/base/docs" /><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$/ndk" /><excludeFolder url="file://$MODULE_DIR$/out" /><excludeFolder url="file://$MODULE_DIR$/pdk" /><excludeFolder url="file://$MODULE_DIR$/platform_testing" /><excludeFolder url="file://$MODULE_DIR$/prebuilt" /><excludeFolder url="file://$MODULE_DIR$/prebuilts" /><excludeFolder url="file://$MODULE_DIR$/rc_projects" /><excludeFolder url="file://$MODULE_DIR$/sdk" /><excludeFolder url="file://$MODULE_DIR$/system" /><excludeFolder url="file://$MODULE_DIR$/tools" /><excludeFolder url="file://$MODULE_DIR$/trusty" /></content>
完成之后,按照上面说的步骤,使用Android Studio选中"android.ipr"打开项目即可。

源码依赖导入
如果之前没有删除orderEntry* 会出现很多依赖项,直接删除,然后导入frameworks和external源码依赖*

导入后提示如下

玩一下andorid.iml
1. 我们删除整个项目

2. 打开iml 发现sourceFolder直接消失了,只剩下orderEntry 依赖

3.重新打开Project Structure

4.选择framework 和packages 发现右边多了些Source Folders的源文件

https://blog.csdn.net/ChaoLi_Chen/article/details/121947970
https://juejin.cn/post/6859181913232375815
https://juejin.cn/post/7216495812577427517
https://www.jianshu.com/p/30a628335114
https://blog.csdn.net/qq_20330595/article/details/133764506
相关文章:
idgen导入Android11源码
文章目录 配置下载AS编译源码依赖导入玩一下andorid.iml 注意: 有些时候发现为啥自己编译就这么难呢?不是卡死就无数次重启虚拟机,一切的原罪在配置过低,换句话说就是穷。关于导入源码的下载参考 Android Studio for Platform (AS…...
大同小异!如何在苹果不同类型设备上更改AirDrop的名称
你可以更改你的AirDrop ID,让其他人看到你名字之外的东西。本文介绍了如何在iPhone、iPad和Mac上更改AirDrop名称。 如何在iPhone上更改AirDrop名称 在iPhone上更改AirDrop名称涉及到你可能不想做的更改。幸运的是,这在iPad和Mac上不是真的,…...
sqlmap --os-shell选项原理解析
文章目录 sqlmap --os-shell选项原理解析原理解析总结 sqlmap --os-shell选项原理解析 以sqli第一关为例。 --os-shell 是 SQLMap 工具的一个参数,用于在成功注入数据库后,执行操作系统命令并获取其输出。 sqlmap -u "http://192.168.188.199/sq…...
谈谈 Redis 持久化机制,RDB、AOF
谈谈 Redis 持久化机制,RDB,AOF RDB:相当于对内存中的数据,拍一张数据快照。存储的是数据。 AOF:存储的是具体的命令。 企业实践中,实际是使用RDB结合AOF。 这个方法是在 Redis 4.0 提出的,该方…...
并发编程——2.基础概念及其它相关的概述
这篇文章我们来讲一下并发编程中的线程及其相关的概述内容。 目录 1.J.U.C 2.进程、线程、协程 2.1进程 2.2线程 2.3纤程(协程) 2.4概念小结 3.并发、并行、串行 3.1并发 3.2并行 3.3串行 3.4概念小结 4.CPU核心数和线程数的关系 5.上下文…...
20231019 filezilla 配置 Windows与Ubuntu文件传输
SFTP协议,传文件,否则会报无权限错...
一个.Net开发的轻量级SQLite数据库ORM
SQLite是一种流行的开源关系型数据库,它的设计目标是提供轻量级、高效、可靠和易用的数据存储服务。由于SQLite无需单独的服务器进程,它通常被用于嵌入式系统和单机应用程序中,也可以用于网络应用程序的辅助数据库。 今天给大家推荐一个.NET开…...
gRPC通信
1. gRPC简介 gRPC是一种高性能、开源和通用的远程过程调用(RPC)框架,由Google开源并维护。它使用Protocol Buffers(protobuf)作为接口定义语言(IDL),提供跨平台、跨语言的RPC调用支…...
湖仓一体架构的特性
湖仓一体架构是一种数据架构模式,具有以下特性: 统一存储:湖仓一体架构将数据湖和数据仓库合并为一个整体,将结构化数据和非结构化数据存储在同一个存储系统中,如Hadoop分布式文件系统(HDFS)或云…...
Python中使用包含_和__的变量名之间的区别
_:单下划线 例子:_count、_temp 含义:成员的私有成员变量,就像Java中用private关键字修饰一样。 作用:只允许当前类创建的对象和子类对象访问此变量。外部无法访问此变量。 __:双下划线 例子:__count、__temp 含义&am…...
019-第三代软件开发-Git提交规范
第三代软件开发-Git提交规范 文章目录 第三代软件开发-Git提交规范项目介绍Git提交规范分支规范Commit Message FormatHeaderBodyFooterRevert 总结一下 关键字: Qt、 Qml、 git、 Commit、 release 项目介绍 欢迎来到我们的 QML & C 项目!这个…...
MTK APP实现动态修改logo和开机动画
MTK APP实现动态修改logo和开机动画 前言一、修改对新分区的权限1.修改开机动画对新分区的权限2.修改系统APP对新分区的权限3.修改SE权限,不然编译会报错4.修改开机动画文件,让其加载新分区中的文件 二、系统APP代码使用1.系统app修改开机logo2.系统app修改开机动画…...
Spring核心扩展点BeanDefinitionRegistryPostProcessor源码分析
我们知道,只要在一个Java类上加上Component、Service、Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了Bean和Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢࿱…...
C++实现AC自动机,剪枝、双数组压缩字典树!详解双数组前缀树(Double-Array Trie)剪枝字典树(Patricia Trie)
代码在:github.com/becomequantum 最近研究了一下字典树,什么AC自动机,双数组压缩字典树,剪枝字典树都自己写代码实现了一下。这本该是本科学数据结构时该玩明白的东西,我到现在才会玩。本视频主要介绍一下双数组和剪…...
防火墙规则顺序解决方案
防火墙是保护网络免受攻击的第一道防线,防火墙对互联网和公司IT网络之间的流量拥有绝对控制权,防火墙规则的配置处理调节流量的关键任务。 这些规则会仔细检查传入和传出流量,并根据规则中提到的条件允许或阻止它,防火墙规则越严…...
ZC-CLS381RGB颜色识别+8x8点阵指示(完)
文章目录 前言一、信号关联说明二、演示视频 前言 在前面两篇博客中,分别阐述了如何配置WS2812 RGB 8x8点阵,和如何配置颜色识别模块,本文将说明如何级联两个模块,以及演示两个模块级联后的运行效果。 一、信号关联说明 已知WS28…...
Stanford CS224N - word2vec
最近在听Stanford放出来的Stanford CS224N NLP with Deep Learning这门课,弥补一下之前nlp这块基础知识的一些不清楚的地方,顺便巩固一下基础知识😁 关于word2vec: 1.为什么要把单词表示成向量 一开始人们造了一个类似于词典表…...
华为云云耀云服务器L实例评测|windows系统3389防爆破之安全加固教程
为什么要选择华为云云耀云服务器L实例: 华为云在全国范围内建立了多个数据中心,这些数据中心之间相互冗余,以确保高可靠性和可用性,用户可以选择最适合的区域来部署应用程序,以实现更好的性能和延迟。 相对于传统的物…...
零基础如何自学C#?
前言 本文来源于知乎的一个提问,提问的是一个大一软件工程专业的学生,他想要自学C#但是不知道该怎么去学,这让他感到很迷茫,希望有人能给他一些建议和提供一些学习方向。 个人建议 确认目标:自学C#首先你需要大概了解…...
Spring5学习笔记之整合MyBatis
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Spring专栏 ✨特色专栏: M…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
Ray框架:分布式AI训练与调参实践
Ray框架:分布式AI训练与调参实践 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 Ray框架:分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …...
以太网PHY布局布线指南
1. 简介 对于以太网布局布线遵循以下准则很重要,因为这将有助于减少信号发射,最大程度地减少噪声,确保器件作用,最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确,然…...
