当前位置: 首页 > news >正文

idgen导入Android11源码

文章目录

          • 配置
          • 下载AS
          • 编译
          • 源码依赖导入
          • 玩一下andorid.iml

注意:

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

1. 选择android.ipr导入源码
2. 建立一个空的jdk, 并设置为工程依赖的jdk
3. 删除所有的依赖库
4. 将
frameworks
external目录作为依赖,并调整依赖优先级
5. 将
out/target/common/R/设置为依赖
6. 将不需要的目录从索引中删除,提高检索速度
**

下载AS

下载

  1. https://developer.android.com/studio/install?hl=zh-tw#linux
  2. 在这里插入图片描述
    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

  1. 源码只需要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* 会出现很多依赖项,直接删除,然后导入frameworksexternal源码依赖*

在这里插入图片描述

导入后提示如下
在这里插入图片描述

玩一下andorid.iml

1. 我们删除整个项目
在这里插入图片描述
2. 打开iml 发现sourceFolder直接消失了,只剩下orderEntry 依赖
在这里插入图片描述
3.重新打开Project Structure
在这里插入图片描述
4.选择frameworkpackages 发现右边多了些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 注意&#xff1a; 有些时候发现为啥自己编译就这么难呢&#xff1f;不是卡死就无数次重启虚拟机&#xff0c;一切的原罪在配置过低&#xff0c;换句话说就是穷。关于导入源码的下载参考 Android Studio for Platform (AS…...

大同小异!如何在苹果不同类型设备上更改AirDrop的名称

你可以更改你的AirDrop ID&#xff0c;让其他人看到你名字之外的东西。本文介绍了如何在iPhone、iPad和Mac上更改AirDrop名称。 如何在iPhone上更改AirDrop名称 在iPhone上更改AirDrop名称涉及到你可能不想做的更改。幸运的是&#xff0c;这在iPad和Mac上不是真的&#xff0c…...

sqlmap --os-shell选项原理解析

文章目录 sqlmap --os-shell选项原理解析原理解析总结 sqlmap --os-shell选项原理解析 以sqli第一关为例。 --os-shell 是 SQLMap 工具的一个参数&#xff0c;用于在成功注入数据库后&#xff0c;执行操作系统命令并获取其输出。 sqlmap -u "http://192.168.188.199/sq…...

谈谈 Redis 持久化机制,RDB、AOF

谈谈 Redis 持久化机制&#xff0c;RDB&#xff0c;AOF RDB&#xff1a;相当于对内存中的数据&#xff0c;拍一张数据快照。存储的是数据。 AOF&#xff1a;存储的是具体的命令。 企业实践中&#xff0c;实际是使用RDB结合AOF。 这个方法是在 Redis 4.0 提出的&#xff0c;该方…...

并发编程——2.基础概念及其它相关的概述

这篇文章我们来讲一下并发编程中的线程及其相关的概述内容。 目录 1.J.U.C 2.进程、线程、协程 2.1进程 2.2线程 2.3纤程&#xff08;协程&#xff09; 2.4概念小结 3.并发、并行、串行 3.1并发 3.2并行 3.3串行 3.4概念小结 4.CPU核心数和线程数的关系 5.上下文…...

20231019 filezilla 配置 Windows与Ubuntu文件传输

SFTP协议&#xff0c;传文件&#xff0c;否则会报无权限错...

一个.Net开发的轻量级SQLite数据库ORM

SQLite是一种流行的开源关系型数据库&#xff0c;它的设计目标是提供轻量级、高效、可靠和易用的数据存储服务。由于SQLite无需单独的服务器进程&#xff0c;它通常被用于嵌入式系统和单机应用程序中&#xff0c;也可以用于网络应用程序的辅助数据库。 今天给大家推荐一个.NET开…...

gRPC通信

1. gRPC简介 gRPC是一种高性能、开源和通用的远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;由Google开源并维护。它使用Protocol Buffers&#xff08;protobuf&#xff09;作为接口定义语言&#xff08;IDL&#xff09;&#xff0c;提供跨平台、跨语言的RPC调用支…...

湖仓一体架构的特性

湖仓一体架构是一种数据架构模式&#xff0c;具有以下特性&#xff1a; 统一存储&#xff1a;湖仓一体架构将数据湖和数据仓库合并为一个整体&#xff0c;将结构化数据和非结构化数据存储在同一个存储系统中&#xff0c;如Hadoop分布式文件系统&#xff08;HDFS&#xff09;或云…...

Python中使用包含_和__的变量名之间的区别

_:单下划线 例子&#xff1a;_count、_temp 含义&#xff1a;成员的私有成员变量&#xff0c;就像Java中用private关键字修饰一样。 作用&#xff1a;只允许当前类创建的对象和子类对象访问此变量。外部无法访问此变量。 __:双下划线 例子&#xff1a;__count、__temp 含义&am…...

019-第三代软件开发-Git提交规范

第三代软件开发-Git提交规范 文章目录 第三代软件开发-Git提交规范项目介绍Git提交规范分支规范Commit Message FormatHeaderBodyFooterRevert 总结一下 关键字&#xff1a; Qt、 Qml、 git、 Commit、 release 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个…...

MTK APP实现动态修改logo和开机动画

MTK APP实现动态修改logo和开机动画 前言一、修改对新分区的权限1.修改开机动画对新分区的权限2.修改系统APP对新分区的权限3.修改SE权限,不然编译会报错4.修改开机动画文件&#xff0c;让其加载新分区中的文件 二、系统APP代码使用1.系统app修改开机logo2.系统app修改开机动画…...

Spring核心扩展点BeanDefinitionRegistryPostProcessor源码分析

我们知道&#xff0c;只要在一个Java类上加上Component、Service、Controller等注解&#xff0c;就可以被加载到Spring容器中&#xff0c;除了以上方式&#xff0c;加了Bean和Import好像也可以将对象添加到Spring容器中&#xff0c;究竟Spring是如何实现这些功能的呢&#xff1…...

C++实现AC自动机,剪枝、双数组压缩字典树!详解双数组前缀树(Double-Array Trie)剪枝字典树(Patricia Trie)

代码在&#xff1a;github.com/becomequantum 最近研究了一下字典树&#xff0c;什么AC自动机&#xff0c;双数组压缩字典树&#xff0c;剪枝字典树都自己写代码实现了一下。这本该是本科学数据结构时该玩明白的东西&#xff0c;我到现在才会玩。本视频主要介绍一下双数组和剪…...

防火墙规则顺序解决方案

防火墙是保护网络免受攻击的第一道防线&#xff0c;防火墙对互联网和公司IT网络之间的流量拥有绝对控制权&#xff0c;防火墙规则的配置处理调节流量的关键任务。 这些规则会仔细检查传入和传出流量&#xff0c;并根据规则中提到的条件允许或阻止它&#xff0c;防火墙规则越严…...

ZC-CLS381RGB颜色识别+8x8点阵指示(完)

文章目录 前言一、信号关联说明二、演示视频 前言 在前面两篇博客中&#xff0c;分别阐述了如何配置WS2812 RGB 8x8点阵&#xff0c;和如何配置颜色识别模块&#xff0c;本文将说明如何级联两个模块&#xff0c;以及演示两个模块级联后的运行效果。 一、信号关联说明 已知WS28…...

Stanford CS224N - word2vec

最近在听Stanford放出来的Stanford CS224N NLP with Deep Learning这门课&#xff0c;弥补一下之前nlp这块基础知识的一些不清楚的地方&#xff0c;顺便巩固一下基础知识&#x1f601; 关于word2vec&#xff1a; 1.为什么要把单词表示成向量 一开始人们造了一个类似于词典表…...

华为云云耀云服务器L实例评测|windows系统3389防爆破之安全加固教程

为什么要选择华为云云耀云服务器L实例&#xff1a; 华为云在全国范围内建立了多个数据中心&#xff0c;这些数据中心之间相互冗余&#xff0c;以确保高可靠性和可用性&#xff0c;用户可以选择最适合的区域来部署应用程序&#xff0c;以实现更好的性能和延迟。 相对于传统的物…...

零基础如何自学C#?

前言 本文来源于知乎的一个提问&#xff0c;提问的是一个大一软件工程专业的学生&#xff0c;他想要自学C#但是不知道该怎么去学&#xff0c;这让他感到很迷茫&#xff0c;希望有人能给他一些建议和提供一些学习方向。 个人建议 确认目标&#xff1a;自学C#首先你需要大概了解…...

Spring5学习笔记之整合MyBatis

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…...

GO 语言的方法??

GO 中的方法是什么&#xff1f; 前面我们有分享到 GO 语言的函数&#xff0c;他是一等公民&#xff0c;那么 GO 语言中的方法和函数有什么区别呢&#xff1f; GO 语言中的方法实际上和函数是类似的&#xff0c;只不过在函数的基础上多了一个参数&#xff0c;这个参数在 GO 语…...

【JavaEE】 多线程-初阶

多线程-初阶 1. 认识线程 1.1 概念 1) 线程是什么 多个线程组成了一个进程&#xff0c;线程好比是一跟光纤中的一个玻璃丝&#xff0c;进程是整根光纤。 一个进程中的线程共享这个进程中的资源&#xff08;内存、硬盘&#xff09; 2) 为什么需要线程 单核CPU发展出现瓶颈…...

小程序OCR身份证识别

使用两种OCR识别&#xff1a;小程序和腾讯云 1.基于微信小程序OCR插件实现身份证拍照、上传并OCR识别的示例&#xff1a; 首先&#xff0c;在小程序中添加身份证拍照的功能&#xff0c;可以使用wx.chooseImage()选择照片并使用wx.uploadFile()上传&#xff0c;代码如下&#…...

【算法学习】归并算法Merge Sort总结

归并排序思路简单&#xff0c;速度仅次于快速排序&#xff0c;为稳定排序算法&#xff0c;一般用于对总体无序&#xff0c;但是各子项相对有序的数列。 1. 基本思想 归并排序使用分治思想&#xff0c;分治模式下每一层递归有三个步骤&#xff1a; 分解&#xff08;divide)&a…...

Swager如何使用

Swager是一个API文档自动生成工具&#xff0c;可以用于生成API接口文档&#xff0c;供开发者和用户查看和使用。它可以通过描述API接口的规范&#xff0c;自动生成API文档&#xff0c;使得API接口的发布和使用变得更加简单和规范。 下面是使用Swagger的步骤&#xff1a; 首先…...

DHorse v1.4.2 发布,基于 k8s 的发布平台

版本说明 优化特性 在集群列表增加集群版本&#xff1b;修改Jvm的GC指标名&#xff1b; 解决问题 解决shell脚本换行符的问题&#xff1b;解决部署历史列表页&#xff0c;环境名展示错误的问题&#xff1b;解决指标收集功能的异常&#xff1b; 升级指南 升级指南 DHorse…...

Java使用JJWT令牌

最近在B站大学学习Java开发&#xff0c;刚好学到登入验证&#xff0c;在使用JJWT令牌时踩了一些坑&#xff0c;在这里把代码和依赖给出&#xff0c;希望后来者得以借鉴。 依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api&l…...

“第四十四天”

这道题也不是难&#xff0c;但可能会忽略一种情况&#xff0c;当最大小出现在首位的时候&#xff0c;那个时候如果进行交换的话&#xff0c;大小值可能出现覆盖的情况&#xff0c;最终导致丢失最大值或者最小值&#xff0c;比如最大值 10 在第一位&#xff0c;最小值 0 随意&am…...

Unity Mono和.Net平台浮点算法的区别

static void TestFloat(){{//float speed2.0f/20;float speed 0.1f;float distance 2.0f;long needTime (long)(distance / speed);Log.Debug($"needTime{needTime}"); #if UNITY_EDITORif (needTime ! 19) #elseif (needTime ! 20)//.Net服务器和安卓手机 #endif…...

【SA8295P 源码分析 (二)】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总

【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总 一、QNX侧1.1 surfacedump 功能1.2 screenshot 功能二、Android GVM 侧2.1 screencap -p 导出 PNG 图片2.2 screencap 不加 -p 参数,导出 RGB32 图片2.3 dumpsys SurfaceFlinger --display-id 方法系列文…...