Android Studio 阅读 frameworks/base 下的代码

news2024/12/26 15:39:10

从网上搜的方案都是生成 android.ipr,但是这个需要整编,整编一次比较费时费劲,所以想了个巧招
首先用 Android Studio 打开 frameworks/base,其文件夹目录大概形如下:

├── Android.bp

├── Android.mk

├── api 全是xml文件,定义了API

├── cmds android中的重要命令(am, app_proce等)

├── core framework核心--框架组件

├── data 资源:声音字体视频软盘等数据文件

├── docs 项目说明文档

├── drm 数字版权管理

├── graphics 图形图像

├── keystore 数字签名相关

├── libs 库信息(界面,存储,usb)

├── location 地理位置信息

├── media 手机媒体管理(音频视频)

├── native 本地方法实现(传感器,输入,界面,窗体,存储...)

├── nfc-extras 近场通讯NFC相关

├── obex 蓝牙传输

├── opengl 2D,3D图形绘制

├── packages 设置、TTS,VPN程序

├── proto 协议框架

├── rs 资源框架

├── samples实例

├── sax xml解析器

├── services 基于手机的服务(复制粘贴,输入输出,手势,wifi)

├── telecomm通信框架

├── telephony 电话相关(拨打接听电话,发送接受短信)

├── test-runner 运行测试

├── tests 自带实例测试

├── tools 自带工具(打包,布局)

└── wifi 无线网络

经常需要查看的是 core 目录,和 services/core 目录,以这两个目录为例

打开用 Android Studio 打开 frameworks/base 后,点击 File -> Project Structure ,选择 Modules tab,先将 base Module 删掉
在这里插入图片描述
再点击 add -> Import Module
在这里插入图片描述
选择 frameworks/base 下面的 core 目录,弹出窗口中选择第一个,点击 next
在这里插入图片描述
在下面的窗口中,只选择 java 就够用
在这里插入图片描述
之后一路 next 即可
在这里插入图片描述
点击 OK 即可

这之后 frameworks/base/core 下面的代码就可以相互跳转了,但是 AIDL 接口类型因为未编译过所以无法识别,这是一个小小的缺点,只能通过全局搜索来解决

同样的操作,可以把 frameworks/base/services/core 也添加进来,然后再配一下依赖
在这里插入图片描述
frameworks/base/services/core 依赖 frameworks/base/core,Module SDK 最好选择 JAVA 的 SDK
配完之后,重启一下 Android Studio,File -> Invalidate Caches
在这里插入图片描述
其他模块也可以按需用上面的方法配置

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

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

相关文章

入门深度学习——基础知识总结(python代码实现)

入门深度学习——基础知识总结(python代码实现) 目前,AI基本上可以说是烂大街了。几乎什么都可以说使用了AI技术,听起来很拉风,很nb的样子。而其中目前最为火热的非深度学习(Deep Learning)莫属…

VisionPro (R) QuickBuild 工具使用问题解决 自用

右击我的电脑选择属性。搜索“安全中心” 点击病毒和威胁保护 在病毒和威胁保护中选择威胁信息(当前威胁-保护历史记录) 受影响的项目 file: C:\WINDOWS\sysWOW64\cognex.dll 相机和光源不能同时触发,光源要先于相机触发并且持续相机采集…

leetCode周赛-328

相关题解题目一:6291. 数组元素和与数字和的绝对差题目二:6292. 子矩阵元素加 1题目三:6293. 统计好子数组的数目题目四:2538. 最大价值和与最小价值和的差值题目一:6291. 数组元素和与数字和的绝对差 题目链接&#…

Web Security 之 Insecure deserialization

Insecure deserialization 在本节中,我们将介绍什么是不安全的反序列化,并描述它是如何使网站遭受高危害性攻击的。我们将重点介绍典型的场景,并演示一些 PHP、Ruby 和 Java 反序列化的具体示例。最后也会介绍一些避免不安全的反序列化漏洞的…

14正交向量与子空间

正交向量与子空间 本章研究的重点还是之前提到过的子空间,但是本章我们主要从正交的角度来探讨这些子空间具有的性质,主要内容见下图。 注意,上图指出了我们之前没有关注到的子空间的一些性质:对于一个矩阵,其零空间…

微信推送消息给女友提醒每天天气情况,本文讲解流程,附带代码,可快速上手。

实现的效果图 此模板为自己添加的,各位看客可以自行添加,如何添加接着往下看。备注在数据库自定义设置。如果你非专业人士,可以联系作者给你专属设置。如果需要代为设置跳转到文章结束位置。 完整的代码 代码下载地址 微信公众号设置 申…

《Linux Shell脚本攻略》学习笔记-第八章

8.1 简介 TCP/IP网络的运作过程就是在节点之间传递分组。每一个分组中都包含了目标的IP地址以及处理分组中数据的应用程序端口号。 当节点接收到分组时,它会查看自己是否就是改分组的目的地。如果是,节点会再检查端口号并调用相应的应用程序来处理分组数…

Cookie 会话身份验证是如何工作的?

在 Web 应用程序中,Cookie-Session 是一种标准的身份验证方法。饼干,也被称为“sweet cookies”。类型为“小文本文件”,是指一些网站为了识别用户身份而存储在客户端的数据。Session的主要功能是通过服务器记录用户的状态。 在典型的在线购物…

类与类之间关系的表示方式

1.关联关系 关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生,师傅和徒弟,丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系,聚合关系和组合…

郭天祥十天入门单片机学习笔记

电子元件 排阻 有两种: nn1 二极管 几个概念 限流电阻:与二极管串联,防止电流过大烧毁二极管导通压降:二极管亮起的最小电压 贴片式绿色为阴极,插入式短脚为阴极 数码管 共阴极:对应段选信号置1亮…

测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题。在整个测试过程中,需要对测试用例、Bug、代码、持续集成等等进行管理。下面分别从这四个方面介绍现在比较流行的管理平台。 图片108091 50.2 KB 测试用例管理平台…

Doris 使用记录(随机更新(ง •_•)ง)

文章目录知识点常见数据分布方式使用表动态分区Hash分桶知识点 常见数据分布方式 分布式数据库中常见的数据分布方式。 轮询:Round-Robin,假设分桶数为3,数据按顺序依次写入桶1、桶2、桶3,然后继续循环。 区间:Ran…

【Lp-CVT and Applications】

Lp-CVT and Applications 论文笔记 本文是论文 Lp Centroidal Voronoi Tessellation and its Applications 的学习笔记。有不足之处,请指出!非常感谢! 1 主要工作 解决问题:推广CVT以适用各向异性和六面体网格划分。推广 CVT &am…

如何模拟实现一个“缓存”?

目录 前言 一、LRU Cache是什么 二、模拟实现 2.1、通过继承 LinkedHashMap 模拟实现 2.2、自主模拟实现LRU Cache 2.2.1、LRU Cache的定义 2.2.2、存放结点 2.2.3、访问结点 2.2.4、LRU Cache 完整模拟代码 小结 前言 这次主要实现一个类似缓存的一种数据结构&#xf…

day49 业务逻辑水平垂直越权访问控制脆弱验证

前言: #知识点: 1、水平越权-同级用户权限共享 2、垂直越权-低高用户权限共享 3、访问控制-验证丢失&取消验证 4、脆弱验证-Cookie&Token&Jwt等 #前置知识: 1、逻辑越权原理- -水平越权:用户信息获取时未对用户…

NTP(Network Time Protocol)协议详解

一、NTP的基本概念: NTP(Network Time Protocol)------网络时间协议-----应用层协议,用来在分布式时间服务器和客户端之间进行时间同步。 二、采用NTP的目的: 是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟…

JDY-06蓝牙透传无天线模块介绍

JDY-06蓝牙透传无天线模块简介JDY-06透传模块是基于蓝牙4.0协议标准,工作频段为2.4GHZ范围,调制方式为GFSK,最大发射功率为0db,最大发射距离60米,采用TICC2541芯片设计,支持用户通过AT命令修改设备名、服务…

Alkyne maleimide,Mal-Alkyne,炔烃-马来酰亚胺

中英文别名:CAS号:N/A | 英文名:Alkyne maleimide,Mal-Alkyne |中文名:炔烃-马来酰亚胺物理参数:CASNumber:N/AMolecular formula:C12H14N2O3Molecular weight:234.26Pur…

什么是前后端分离?

当前,数字化发展速度越来越快,前后端分离已经成为今后的发展趋势。在现代化办公管理中,不少企业倾向于使用低代码开发平台实现高效协作办公,那么,什么是前后端分离?都有哪些特点?本文就围绕这个…

【网络安全】渗透测试之linux信息收集

前言 在内网中linux的服务器是占大多数的,主要原因分为以下几点 1.便宜,linux大多为免费的,Windows Server是收费的,对于企业来说为了节约成本,大量采用linux服务器。 2.轻便,linux主要是对服务器进行服务的…