刚开始的这些都是我从别人的博客统一总结的,忘了哪一个了,非常抱歉,如有看到,请评论下,我,我注明一下
我自己总结的树状图pdf好像在文章里面上传不了(哭辽);没办法,文末附带几张截图,目录很多很多,花了不少时间整理,用xmind思维导图软件画的,我就放个下载链接
上面这么多文件夹,有些是一直不需要去理会的,比如说接触较多的文件夹:device,build,out,packages。
device下都是一些配置文件,比如Wifi Adb端口如果需要写死,可以添加属性并设置里面的参数
build下是一些编译规则,比如可以设置某些程序是否安装。
out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的
package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等
Android系统源码也不是没有bug的,比如一个Android板子上的Music就有几个bug,需要进去package/apps/Music里面修改源码
把源码修改后重新编译,再把编译生成的镜像文件烧录到Android设备上就可以了。
接下来分析packages中的内容,也就是应用层部分。
1.应用层packages部分
应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都是在应用层。
源码根目录中的packages目录对应着系统应用层。它的目录结构:
可以看到package中还包含内容提供者,像我们在应用上能都访问手机系统通讯录,系统日历,
都是package中写好的内容提供者,所以我们才能调用那些uri对系统数据进行增删改查 *** 作。
2、应用框架层
应用框架层是系统的核心部分,一方面向上提供接口给应用层调用,另一方面向下与C/C++程序库以及硬件抽象层等进行衔接。其中目录结构如下:
av:多媒体框架
base:Android源码的主要核心目录
compile:编译相关
ex:文件解析器
hardware:硬件适配接口
layoutlib:布局相关
minikin:Android原生字体,连体字效果
ml:机器学习
multidex:多dex加载器
native:native实现
opt:一些软件
rs:Render Script,可创建3D接口
support:framework支持文件
wilhelm:基于Khronos的OpenSL ES/OpenMAX AL的audio/multimedia实现
其中base目录中是应用框架层的主要核心代码,部分目录结构如下:
apct-tests:性能优化测试
api:android应用框架层声明类、属性和资源
cmds:android系统启动时用到的commands
core:framework的核心框架组件
data:android下的资源(字体、声音、视频、软盘等)
docs:android项目说明
drm:实现权限管理,数字内容解密等模块的工作
graphics:图像渲染模块
keystore:秘钥库
libs:库信息(界面、存储、USB)
location:位置信息
media:手机媒体管理(音频、视频等)
native:本地方法实现(传感器、输入、界面、窗体)
nfc-extras:近场通讯
obex:蓝牙
opengl:2D和3D图形绘制
packages:框架层的实现(界面、服务、存储)
proto:协议框架
rs:资源框架
samples:例子程序
sax:xml解析器
services:各种服务程序
telecomm:telecomm通信框架
telephony:电话通讯框架
tests:各种测试
vr:虚拟现实相关
wifi:wifi模块
之所以说这个目录重要,我举几个例子你就明白了:
常用的 View 类在 /frameworks/base/core/java/android/view/View.java
常用的 Activity 类在 /frameworks/base/core/java/android/app/Activity
常用的 Bitmap 类在 /frameworks/base/graphics/java/android/graphics/
这几个类在 Android 开发中非常常用,它们都是在 /frameworks/base/目录下的。
Android12系统资源目录分析树状图pdf(使用xmind思维导图软件绘画,导出pdf文件,此是压缩包文件,需解压)-Android文档类资源-CSDN下载
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)