Android Studio 查看Framework源码

news2024/9/24 9:22:22

1、背景

安卓系统源码量很庞大,选择好的开发工具和方式去开发可以提升开发效率,常用的开发工具有Source Insight 、Visual Studio Code、Android Studio,vscode适合C和C++代码开发,java层代码无法跳转和提示,因此,涉及到java层的代码还是用as开发方便些,本文将介绍as集成Framework源码开发方式

2、编译出ipr

2.1 配置编译环境
//在源码根目录执行以下
source build/envsetup.sh
lunch kona-userdebug  //这里可能不一样,例如 lunch 40 也可以,根据场景选择
2.2 编译idegen模块
mmm development/tools/idegen/  //生成文件 out/host/linux-x86/framework/idegen.jar
2.3 执行脚本生成ipr和iml文件
./development/tools/idegen/idegen.sh

//博主这边执行上面命令后,生成的ipr文件在该目录:/development/tools/idegen/templates/android.ipr
//注:有可能每个人的不一样,可以在源码根目录通过以下命令搜索:find . -name android.ipr

 将生成的android.ipr文件拷贝到源码根目录

3、将导入AndroidStudio

打开AS,点击File -> Open,选中前面拷贝到源码根目录下的android.ipr文件即可,该过程比较耗时。

android.iml文件

        iml文件是idea组织工程的文件, 里面记录了各种记录模块, 文件夹以及依赖的信息。一般而言, 创建的工程都会有这个文件, 它的本质是一个工程组织文件, 和Maven的pom.xml, gradle的build.gradle, 等组织工程和处理依赖关系的文件并没有什么差别。

打开android.iml文件,我们会发现这个而文件配置项非常多,主要有类标签:

sourceFolder:表示包含的文件目录,通常我们只需要留下framewrok即可。

excludeFolder:exclude顾名思义就是不包含的意思。我们有很多目录直接就不想让Studio去管它,不管是索引还是什么等等,所以只需要将这些目录配置到中就好了。

如果已经把全部项目导入到Android Studio,又想删除怎么办,其实有一个简单的方法就是进入目录Project Structure -> Modules, 可快速去除某些模块, 其中红色代码Exclueded选项(即代表已删除的目录),我们只查看framework模块,所以其他模块的代码全部设置为 Exclueded,如下图:

选择左边的文件目录右击选择 Exclueded即可,如果加载的目录太大,将消耗很长时间去加载,建议用不上的目录直接屏蔽掉

4、open android.ipr加载缓慢和卡顿问题处理

4.1 取消加载git,采取手动同步代码的方式sync代码,如下图:

4.2 2.加大AS运行内存

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

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

相关文章

Java——关于实现多线程的测试小题,帮助我们更好的理解多线程的使用方法

前面讲解了关于多线程的使用方法,这篇文章则是进行实战,做几道测试题。 感兴趣的情况下可以看一下Java多线程 多线程练习1 (卖电影票) 一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒要求:请用多线程模拟卖票过程并打印剩余电影…

37 深度学习(一):查看自己显卡的指令|张量|验证集|分类问题|回归问题

文章目录 查看自己显卡的指令框架选什么张量的阶数验证集存在的意义分类问题一般的全连接的代码格式(板子)上面训练的详解一些省略梯度消失和梯度爆炸Dropout 回归问题一般回归的全连接的板子 batch-size超参数搜索策略 此系列的深度学习主要是理论性的介…

Linux docker 安装 部署

docker 安装 linux系统离线安装docker 如何使用docker部署c/c程序 常用命令 给予 docker 访问 gui 的权限 在 /etc/profile 末尾添加 if [ "$DISPLAY" ! "" ] thenxhost fi在执行 更新 source /etc/profiledocker下载镜像 docker search gcc #搜索d…

EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

一、准备阶段 POE交换机欧姆龙PLC 支持EtherNet Ip协议CX-Programmer 9.5配置软件 二、配置读卡器 1、打开软件 2、选择网卡,如果多网卡的电脑请注意对应所接的网卡,网卡名一般为“Network adapter Realtek PCIe GBE Family” 3、点击“选择网卡”&…

数据可视化报表分享:区域管理驾驶舱

在零售数据分析中,区域管理驾驶舱报表是用来分析企业运营数据,以制定销售策略和提高利润。因此这张报表需要整合大量数据,数据整合、分析、指标计算的工作量极大,在讲究高效率、高度及时性的大数据时代,BI数据可视化分…

APP上架怎么避免麻烦应对解决方案和替代方案

在当今数字化的时代,应用程序已成为现代生活中连接人与科技的桥梁。各个行业精准地抓住这一趋势,踊跃地推出自家APP,为用户提供一站式的便捷服务。然而,APP上架的过程并非一帆风顺。许多开发者会在上架过程中遇到麻烦,…

DC电源模块的短期过载能力

BOSHIDA DC电源模块的短期过载能力 DC电源模块是一种专门用来将交流电源转换为稳定直流电源的电子元件,适用于各种场合,如电子产品制造、通信、无线电、医疗等。在使用DC电源模块时,短期过载能力是考察其质量的重要指标之一。 短期过载能力…

共赢未来 | 大势智慧与安康市自然资源信息科技有限公司达成战略合作

10月17日至18日,安康市自然资源信息科技有限公司总经理黄光俊带领技术团队到武汉大势智慧科技有限公司围绕“实景三维中国、数字化建设”开展交流调研,并签署战略合作协议。 双方表示将以市场需求为导向,以技术创新为依托,建立长期…

nginx 动静分离 防盗链

一、动静分离环境准备静态资源配置(10.36.192.169)安装nginx修改配置文件重启nginx 动态资源配置(192.168.20.135)yum安装php修改nginx配置文件重启nginx nginx代理机配置(192.168.20.134)修改nginx子自配置文件重启nginx 客户端访问 二、防盗链nginx防止…

使用非空断言解决Typescript报错:对象可能为 “null“

现象如下: 解决办法:在报错的属性后面加惊叹号!, 也就是非空断言 问题解决:

01.5.Binding

参考JusterZhu视频和文档 <TextBox.Text><Binding Path"GivenName" UpdateSourceTrigger"PropertyChanged" Mode"TwoWay"><Binding.ValidationRules><local:AgeRangeRule></local:AgeRangeRule></Binding.Val…

uni-app医院智能导诊系统源码

随着科技的迅速发展&#xff0c;人工智能已经逐渐渗透到我们生活的各个领域。在医疗行业中&#xff0c;智能导诊系统成为了一个备受关注的应用。本文将详细介绍智能导诊系统的概念、技术原理以及在医疗领域中的应用&#xff0c;分析其优势和未来发展趋势。 智能导诊系统通过人工…

74 应急响应-winlinux分析后门勒索病毒攻击

目录 操作系统(windows&#xff0c;linux)应急响应&#xff1a;常见日志类别及存储&#xff1a;补充资料&#xff1a;病毒分析病毒查杀病毒动态在线病毒扫描网站 演示案例:攻击响应-暴力破解(RDP,SSH)-Win,Linux控制响应-后门木马(Webshell,PC)-Win,Linux危害响应-病毒感染(勒索…

VSCode 设置热更新

热更新&#xff1a;文件保存后页面自动刷新&#xff0c;用于提高开发效率。 1.打开应用商店&#xff0c;搜索 live server &#xff0c;选择第一个&#xff0c;点击安装。 2.随便打开一个 HTML 文件&#xff0c;在文件中右键点击&#xff0c;选择 Open with Live Server 打开网…

Python的pip包管理器介绍和使用

Python的pip包管理器介绍和使用 什么是pip&#xff1f; pip是Python的软件包管理器&#xff0c;它可以方便地安装、升级和卸载Python软件包。它是Python的标准包管理器&#xff0c;自Python 3.4版本开始&#xff0c;已经内置在Python中。 使用pip&#xff0c;你可以轻松地安…

docker安装centos7进入后不显示当前路径的解决记录

本文记录一个小问题(仅此而已)&#xff1a; 最近我的mac使用docker安装了centos&#xff0c;但是每次(使用 docker exec -it f925c71d28ef48e7b66ed93555e30e6c272727eecd5285639b6a66c5231a99b2 /bin/sh)进入到centos时候&#xff0c;都不显示当前路径&#xff0c;只有一个 sh…

小程序设计基本微信小程序的校园生活助手系统

项目介绍 通篇文章的撰写基础是实际的应用需要&#xff0c;然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程&#xff0c;以校园生活助手系统的实际应用需要出发&#xff0c;架构系统来改善现校园生活助手系统工作流程繁琐等问题。不仅如此以操作者…

抖音招聘直播报白:短视频流量红利和精准推送,让招聘更精准

抖音直播招聘报白是通过抖音直播方式展现职位信息&#xff0c;并与求职者进行互动的招聘方式。在抖音平台上&#xff0c;企业或者人力资源公司可以通过直播的形式&#xff0c;将职位以视频直播的方式展现出来。通过抖音直播招聘报白&#xff0c;企业或者人力资源公司可以利用抖…

Python 算法高级篇:贪心算法的原理与应用

Python 算法高级篇&#xff1a;贪心算法的原理与应用 引言 1. 什么是贪心算法&#xff1f;2. 贪心算法的应用2.1 最小生成树- Prim 算法2.2 背包问题2.3 哈夫曼编码 3. 代码示例3.1 会议室安排问题 4. 总结 引言 贪心算法是一种基于启发式的问题解决方法&#xff0c;它通过每一…

众和策略:配债不够10张怎么办?

近年来&#xff0c;跟着金融商场的展开和各类企业的资金需求增加&#xff0c;债券商场规划逐步扩展。债券作为一种重要的信誉工具&#xff0c;为企业融资供应了一个灵敏的渠道。但是&#xff0c;在进行债券发行时&#xff0c;有时候或许会遇到一个问题&#xff0c;那就是配债数…