Android Studio查看Android源码_win查看安卓源码-程序员宅基地

技术标签: android源码  android studio  jar  Android  

最近在折腾面试,然后就有些组件的原理需要看源码,之前也弄过,都是用的Source Insight在win10里面搞的,今天试了一下Mac,源码60G,我这个版本是Android 11,目前是最新版的代码。

用AS看源码首先要构建项目配置文件,就是ipr和iml工具,用到Android源码里面的idegen工具,但是你用官方的mmm命令方法会报错,说文件格式不对,本来是可以用mmm命令直接生成的,但是Mac的文件系统跟官方要求的有问题,所以就放弃了,有想试试的同学可以执行下面的命令。

cd ~/aosp //具体的源码根目录
source build/envsetup.sh //用于初始化环境变量
mmm development/tools/idegen/  //生成文件out/host/linux-x86/framework/idegen.jar
./development/tools/idegen/idegen.sh//源码根目录生成文件android.ipr(工程相关设置), android.iml(模块相关配置)

反正我这条路没走通,用的野路子。

首先把目录切到development/tools/idegen/src下面,这样比较方便。

1、编译idegen的源码,把java文件编译成class文件

javac *.java  //aosp/development/tools/idegen/src


2、打包所有的class文件到可执行的jar文件中

jar cvfe idegen.jar Main *.class


3、把idegen.jar文件移动到android源码根目录
/aosp/idegen.jar
4、运行idegen.jar

java -jar idegen.jar


5、等待完成,成功后如下
Read excludes: 9ms
Traversed tree: 149984ms
6、在android源码跟目录检查android.iml和android.ipr文件
/aosp/android.iml
/aosp/android.ipr
7、用Android Studio打开ipr文件,等待AS构建索引文件,时间较慢

由于目录比较大,我的AS还在运行,等运行完成,我再来更新一下文章,看看整个过程需要多久,还有遇到的问题。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/poping888/article/details/122593397

智能推荐

手把手教你如何使用Zotero自定义参考文献格式(csl)_zotero csl-程序员宅基地

文章浏览阅读7.1w次,点赞119次,收藏312次。一、使用Zotero如何查找合适的引用和参考文献格式?通过下面这个网站可以找到合适的格式https://editor.citationstyles.org/about/假如你有一份参考文献格式要求,可以通过search by example(红色箭头位置)查找格式的名称。例如:在左边区域选择文献的类型(箭头位置)。文献的类型分为以下几种:论文(thesis)、专著章节或文集(chapter)、杂志论文(article-journal)、报道(report)、著作(book)、网络(webpa_zotero csl

Python中,如何删除字典中的键(键明明存在,却报KeyError: ‘xxx‘)【PS:已解决、附代码】_python字典删除元素 del keyerror-程序员宅基地

文章浏览阅读2.7k次。最近在使用Python做仿真实验,没想到搞得我心力憔悴,那叫一个头大啊!错误无限循环,bug“永无止境”,很想…(此处省略一万字)。好了,不给大家叨唠传递负能量了,直接上干货。问题描述:大家在对Python的学习中或者使用中..._python字典删除元素 del keyerror

eureka集群_eureka集群搭建-程序员宅基地

文章浏览阅读171次。目标Eureka集群搭建Eureka自我保护机制Eureka集群搭建高可用集群配置当注册中心扛不住高并发的时候,这时候 要用集群来扛;普通操作新建两个简单的springboot模块module microservice-eureka-server-2002 microservice-eureka-server-20031、pom.xml 把依赖加下:<dependenci..._eureka集群搭建

BERT在语言翻译中的挑战:如何克服语言差异_bert是否适合用于翻译问题-程序员宅基地

文章浏览阅读866次,点赞19次,收藏23次。1.背景介绍语言翻译是自然语言处理领域的一个重要任务,它涉及将一种语言中的文本翻译成另一种语言。随着大数据时代的到来,语言翻译技术的发展得到了重要的推动。随着深度学习技术的发展,语言翻译技术也从传统的统计模型逐渐转向深度学习模型。在2018年,Google发布了BERT(Bidirectional Encoder Representations fr_bert是否适合用于翻译问题

JSON数据结构(A、快速入门篇)(Yanlz+Data+JsonArray+JsonObject+JsonValue+JsonMapper.ToJson+JsonMapper.ToObject+)_jsonmapper.toobject获取的信息是什么类型-程序员宅基地

文章浏览阅读3.4k次。《JSON数据结构》 版本 作者 参与者 完成日期 备注 Data_JSON_V01_1.0 严立钻 2018.08.24 ..._jsonmapper.toobject获取的信息是什么类型

B -- POJ 1208 The Blocks Problem_poj1208-程序员宅基地

文章浏览阅读1.4k次。The Blocks ProblemTime Limit: 1000 MS Memory Limit: 10000 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Discuss]DescriptionMany areas of Computer _poj1208

随便推点

防火墙之Firewalld_firewalld清除所有规则-程序员宅基地

文章浏览阅读435次。1 firewalld 防火墙简介1.1​ firewalld 和 iptables 的关系1.2 firewalld 和 iptables 的区别1.3 firewalld 区域的概念1.3.1 firewalld 防火墙预定义了9个区域1.3.2 firewalld 网路区域1.3.3 firewalld 数据处理流程2 firewalld 防火墙的配置方法2.1 firewalld 服务管理2.2 区域管理2.3 服务管理2.4 端口管理补充 firewalld 设置 SNAT_firewalld清除所有规则

【AI大模型】WikiChat超越GPT-4:在模拟对话中事实准确率提升55%终极秘密_wikichat模型-程序员宅基地

文章浏览阅读1.2k次,点赞34次,收藏19次。通过将多个模型进行组合或集成,可以充分利用各个模型的优点,提高整体模型的适应性。例如,使用集成学习方法(如随机森林、梯度提升等)可以将多个弱模型组合成一个强模型,从而提高模型的预测精度和稳定性。_wikichat模型

重温 DOS _dos 下 edit 下载-程序员宅基地

文章浏览阅读1.7k次。DOS常用命令要想操作使用DOS,知道一些常用命令是非常重要的。以下是一些命令的用法。文件名是由文件路径和文件名称合起来的,如C:/DOS/COMMAND.COM。DIR 显示文件和文件夹(目录)用法:DIR [文件名] [选项]它有很多选项,如/A表示显示所有文件(即包括带隐含和系统属性的文件),/S表示也显示子文件夹中的文件,/P表示分屏显示,/B表示只显示文件名,等等。如_dos 下 edit 下载

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:exec (default-cli) on project Hello_failed to exectue goal org.codehaus.mojo-程序员宅基地

文章浏览阅读3.3k次。HBASE只是添加了一句话,运行就出现如下错误Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:exec (default-cli) on project HelloSpring: Command execution failed.解决:在pom.xml中添加 <build> <pluginManagement><!-- lock down plugins version_failed to exectue goal org.codehaus.mojo

HTTP基本原理(简介)-程序员宅基地

文章浏览阅读1.6w次,点赞16次,收藏57次。原文:http://blog.csdn.net/hguisu/article/details/86808081. HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输_http基本原理

小程序云开发获取不到openId_setting data field "openid" to undefined is invali-程序员宅基地

文章浏览阅读457次。Setting data field "openId" to undefined is invalid_setting data field "openid" to undefined is invalid.

推荐文章

热门文章

相关标签