idgen导入Android11源码

news2024/9/23 19:20:24

文章目录

          • 配置
          • 下载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.sh

sudo 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day09_面向对象_多态_static

今日内容 1.作业 2.访问修饰符 3.static 4.多态 零、复习 私有化的单词: private 继承的关键词: extends 属性的封装 将属性私有,private提供一对儿set,get 继承的特性:(自己的话说明) 继承目的是减少重复代码,父类代码子类自己使用A extends B关于属性: 子类可以使用父类非私有…

软考(高级)是否需要报班,大家有什么建议?

对于报考高级专业领域还不确定。根据我的个人经验&#xff0c;我强烈建议不要犹豫&#xff0c;直接报班。时间非常紧张&#xff0c;务必抓紧学习重点&#xff0c;不要漫无目的地自学。免费的学习方式往往会付出更多的时间成本。请考虑自身经济情况。 尽管自学考试自由度高&…

vue之使用箭头函数导致表格无法刷新数据

vue之使用箭头函数导致表格无法刷新数据 1.产生背景2. 产生原因3. 解决措施 1.产生背景 在使用初始化方法查询默认表单后&#xff0c;有使用选择器进行条件查询的需求。 但在使用监听器监听选择器绑定的value值时使用了箭头函数&#xff0c;请求响应后发现数据更新了但表格为…

C语言指针用法大全

1. 指针的基础概念&#xff1a; 什么是指针&#xff1f; 如何声明和初始化指针&#xff1f; 指针和变量的关系。 2. 内存和地址&#xff1a; 计算机内存的基本概念。 如何获取变量的地址&#xff1f; 如何通过指针访问变量的地址&#xff1f; 3. 指针运算符&#xff1a; * 运算…

蓝蜂物联网水肥一体化MQTT应用案例

水肥一体化MQTT应用案例 一、客户介绍 目前我国农业用水面临资源短缺的问题&#xff0c;同时农业用水浪费现象非常严重&#xff0c;造成我们不可能通过单纯增加新水源来缓解农业用水的紧缺状况。 通过水肥一体化物联网远程精准控制技术&#xff0c;可以根据检测土壤水分、作物…

Stable Diffusion之novel Ai教程,小白必经之路

一、介绍是Stable Diffusion(简称SD) 1.SD是什么 Stable diffusion是一个基于Latent Diffusion Models&#xff08;潜在扩散模型&#xff0c;LDMs&#xff09;的文图生成&#xff08;text-to-image&#xff09;模型。简单的来说SD是可以通过提示词生成图片的应用。目前已经发…

LeetCode算法栈—验证图书取出顺序

验证图书取出顺序 目录 验证图书取出顺序 题解&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 验证图书取出顺序 现在图书馆有一堆图书需要放入书架&#xff0c;并且图书馆的书架是一种特殊的数据结构&#xff0c;只能按照 一定 的顺序 放入 和 拿取 书籍。 给定一个…

MIKE水动力笔记17_MIKE文件转shp、统计每个单元格的面积

本文目录 前言Step 1 MIKE文件转shpStep 2 在ArcGIS中打开shp统计相应指标 前言 MIKE的工具箱中自带一个转shp的工具&#xff0c;然后可以拖进ArcGIS中很方便的统计每个单元格的面积和每个网格点的水深。 Step 1 MIKE文件转shp MIKE允许转shp的文件类型包括dfs2文件、dfsu文…

EDU实战-SQL注入漏洞

对于edu来说&#xff0c;是新人挖洞较好的平台&#xff0c;本次记录一次走运的捡漏0x01 前景 在进行fofa盲打站点的时候&#xff0c;来到了一个后台管理处看到集市二字&#xff0c;应该是edu站点 确认目标身份&#xff08;使用的quake进行然后去ipc备案查询&#xff09; 网…

Redis 之 SessionCallback RedisCallback 使用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

前端 vue 实现区域地图-并在地图上标注柱状图

效果图 西藏的区域规划以及柱状图 一、下载区域地图的js文件 区域地图可以在中国的区域地图 这里下载 二、实现代码 一个普通的html可以参考 实现广东省的区域地图并标注柱状图 三、vue里具体实现代码 1.做一个有具体宽高的dom <template><div class"box&…

小程序之自定义组件 结合案例(会议OA的会议/投票管理及个人中心的搭建)详解 (4)

⭐⭐ 小程序专栏&#xff1a;小程序开发专栏 ⭐⭐ 个人主页&#xff1a;个人主页 目录 一.前言 二.小程序自定义组件及其使用 2.1 自定义组件的使用 三.使用自定义组件完成会议功能界面的实现 3.1 导航栏的实现 3.2 会议界面内容的实现 四.投票管理界面 五.个人中心 今天…

SystemVerilog Assertions应用指南 Chapter1.30 使用“ intersect”控制序列的长度

在123节讨论的“ intersec”运算符可以有效地控制序列的长度,尤其是在时序窗口未定义上界的情况。每当使用可能性( eventuality)运算符时,检验器成功所需的时钟周期数没有限制。运算符 intersect提供了一个定义可能性运算符可以使用的最小和最大时钟周期数的机制。 属性…

计算机丢失MSVCP140.dll的解决方法分享

MSVCP140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。这个文件包含了许多用于运行C程序的函数和类库。当计算机丢失这个文件时&#xff0c;可能会导致某些软件或游戏无法正常运行。 那么&#xff0c;为什么计算机会丢失MSVCP14…

Flex and Bison 阅读与学习笔记

本文的内容来源于本人阅读 flex & bison的笔记和项目工程学习中遇到的问题。如果你能从中获得一丝丝帮助&#xff0c;本人将不胜荣幸。 文章目录 Ⅰ、目录与批注前四章 引言和使用介绍flex 规范参考bison 参考规范其余内容 Ⅱ、相关练习代码学习历程代码实例 参考文献 Ⅰ、…

【文章摘要-20231019】Any-to-Any Generation via Composable Diffusion

论文链接 代码链接 作者提出了一个可组合的扩散模型&#xff0c;该模型体现为能够处理任何输入模态的组合&#xff0c;进而输出任何模态组合的新型生成模型&#xff0c;如语言、图像、视频或音频。不同于已经存在的生成式人工智能系统&#xff0c;该算法能够并行生成多个模态并…

Java基础 :内部类、枚举、泛型

内部类 概念 是类中的五大成分之一&#xff08;成员变量、方法、构造器、内部类、代码块&#xff09;&#xff0c;如果一个类定义在另一个类的内部&#xff0c;这个类就是内部类。 场景 当一个类的内部&#xff0c;包含了一个完整的事物&#xff0c;且这个事物没有必要单独…

工作之余Happy一下(实现时钟特效)

样式 测试代码&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>时钟特效</title><style> body{background: #000;}.content{width: 400px;margin: auto;color: #fff;}#title…

openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换

文章目录 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换104.1 操作场景104.2 前提条件104.3 注意事项104.4 操作步骤 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换 openGaus…

工业企业网络推广解决方案 | 网络营销专家分享 | 上海添力

在国内&#xff0c;工业企业如果想在线上做推广&#xff0c;其主要途径就是做搜索引擎推广&#xff0c;在几个常用的搜索引擎&#xff08;百度、360、搜狗、必应&#xff09;中&#xff0c;一般都是从百度开始做起。但不少工厂做百度广告&#xff0c;钱花了不少&#xff0c;就是…