Android源代码结构
发布日期:2021-06-30 21:23:35
浏览次数:2
分类:技术文章
本文共 1733 字,大约阅读时间需要 5 分钟。
Android源代码结构:
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示: . |-- Makefile (全局的Makefile) |-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器) |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具) |-- dalvik (JAVA虚拟机) |-- development (程序开发所需要的模板和工具) |-- external (目标机器使用的一些库) |-- frameworks (应用程序的框架层) |-- hardware (与硬件相关的库) |-- kernel (Linux2.6的源代码) |-- packages (Android的各种应用程序) |-- prebuilt (Android在各种平台下编译的预置脚本) |-- recovery (与目标的恢复功能相关) `-- system (Android的底层的一些库)Android源码根目录 | 描述 |
abi | 应用程序二进制接口 |
art | 全新的ART运行环境 |
bionic | 系统C库 |
bootable | 启动引导相关代码 |
build | 存放系统编译规则及generic等基础开发包配置 |
cts | Android兼容性测试套件标准 |
dalvik | dalvik 虚拟机 |
developers | 开发者目录 |
development | 应用程序开发相关 |
device | 设备相关配置 |
docs | 参考文档目录 |
external | 开源模组相关文件 |
frameworks | 应用程序框架,Android系统核心部分,由Java和C++编写 |
hardware | 主要是硬件抽象层的代码 |
libcore | 核心库相关文件 |
libnativehelper | 动态库,实现JNI库的基础 |
ndk | NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码 |
out | 编译完成后代码输出在此目录 |
packages | 应用程序包 |
pdk | Plug Development Kit 的缩写,本地开发套件 |
platform_testing | 平台测试 |
prebuilts | x86和arm架构下预编译的一些资源 |
sdk | sdk和模拟器 |
system | 底层文件系统库、应用和组件 |
toolchain | 工具链文件 |
tools | 工具文件 |
Makefile | 全局Makefile文件,用来定义编译规则 |
上面这么多文件夹,有些是一直不需要去理会的,比如说我接触较多的就文件夹:device,build,out,packages。
device下都是一些配置文件,比如Wifi Adb端口如果需要写死,可以添加属性并设置里面的参数
build下是一些编译规则,比如可以设置某些程序是否安装。
out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的
package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等
Android系统源码也不是没有bug的,比如我之前的一个Android板子上的Music就有几个bug,需要进去package/apps/Music里面修改源码
把源码修改后重新编译,再把编译生成的镜像文件烧录到Android设备上就可以了。
接下来分析packages中的内容,也就是应用层部分
应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都是在应用层。
源码根目录中的packages目录对应着系统应用层。它的目录结构:packages目录 | 描述 |
apps | 核心应用程序 |
experimental | 第三方应用程序 |
inputmethods | 输入法目录 |
providers | 内容提供者目录 |
screensavers | 屏幕保护 |
services | 通信服务 |
wallpapers | 墙纸 |
转载地址:https://liwangjiang.blog.csdn.net/article/details/90754799 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月18日 20时08分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
51Nod - 1183 编辑距离 (dp)
2021-07-03
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2021-07-03
反向传播&梯度下降 的直观理解程序(numpy)
2021-07-03
ACM 2017 南宁区域赛 Rake it in(对抗搜索)
2021-07-03
CodeForces - 931B World Cup (思维 模拟)
2021-07-03
CodeForces - 996D Suit and Tie (暴力)
2021-07-03
ACM 2017 香港区域赛 E - Base Station Sites(二分)
2021-07-03
ACM 2018 青岛区域赛 J-Books (模拟)
2021-07-03
ACM 2016 沈阳区域赛 E - Counting Cliques (dfs)
2021-07-03
ACM 2017 北京区域赛 J-Pangu and Stones(区间dp)
2021-07-03
HDU - 5643 King's Game (约瑟夫环变式)
2021-07-03
UVA - 1452 Jump (约瑟夫环变式)
2021-07-03
POJ - 3517 And Then There Was One (约瑟夫环变式)
2021-07-03
HDU - 2068 RPG的错排 (错排+组合数)
2021-07-03
CodeForces 591C Median Smoothing(思维 模拟)
2021-07-03
升级yosemite后java出错的解决
2019-04-30
mac || Linux 命令行下实现批量重命名
2019-04-30
java常用类 String面试题
2019-04-30