Android 5.0 源代码结构
Posted LoTGu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 5.0 源代码结构相关的知识,希望对你有一定的参考价值。
本节书摘来自异步社区《深入理解Android 5 源代码》一书中的第2章,第2.2节分析Android源代码结构,作者 李骏。
网址:https://yq.aliyun.com/articles/93279?spm=5176.100239.blogcont93310.17.gtBsUg
获得Android 5.0源代码后,源代码的全部工程分为以下3个部分。
Core Project:核心工程部分,这是建立Android系统的基础,被保存在根目录的各个文件夹中。
External Project:扩展工程部分,可以使其他开源项目具有扩展功能,被保存在“external”文件夹中。
Package:包部分,提供了Android的应用程序、内容提供者、输入法和服务,被保存在“package”文件夹中。
在本节的内容中,将详细讲解Android 5.0源代码的目录结构。
无论是Android 1.5还是Android 5.0,各个版本的源代码目录基本类似。在里面包含了原始Android的目标机代码、主机编译工具和仿真环境。解压缩下载的Android 5.0源代码包后,可以看到第一级目录有多个文件夹和一个Makefile文件,如图2-14所示。
由此可见,通过对源代码中根目录的每个文件夹的功能的介绍,可以看出源代码按功能分类还是非常清晰的,可以分为系统代码、工具、文档、开发环境、虚拟机、配置脚本和编译脚本等类别。并且也可以看出涉及的内容比较庞大和复杂,源代码分析工作需要多方面的理论和实践知识。
应用程序主要是UI界面的实现,广大开发者基于SDK上开发的一个个独立的APK包,都是属于应用程序这一层的,应用程序在Android系统中处于最上层的位置。源代码结构中的packages目录用来实现系统的应用程序,packages的目录结构如下所示。
│ ├── BasicSmsReceiver //基础短信接收
│ ├── CellBroadcastReceiver //单元广播接收
│ ├── CertInstaller //被调用的包,在Android中安装数字签名
│ ├── htmlViewer //HTML查看器
│ ├── BugReportSender //Bug的报告程序
│ ├── CameraPreviewTest //照相机预览测试程序
│ ├── ApplicationsProvider //应用程序提供器,提供应用程序所需的界面
│ ├── CalendarProvider //日历提供器
│ ├── ContactsProvider //联系人提供器
│ ├── DownloadProvider //下载管理提供器
│ ├── GoogleContactsProvider //Google联系人提供器
│ ├── TelephonyProvider //彩信提供器
│ └── UserDictionaryProvider //用户字典提供器
通过上面的目录结构可以看出,package目录主要存放的是与Android系统应用层相关的内容,包括应用程序相关的包或者资源文件,其中包括系统自带的应用程序,及第三方开发的应用程序,还有屏幕保护和墙纸等应用,所以源代码中package目录对应着系统的应用层。
应用程序框架是Android系统中的核心部分,也就是SDK部分,它会提供接口给应用程序使用,同时应用程序框架又会和系统服务、系统程序库、硬件抽象层有关联,所以其作用十分重大,应用程序框架的实现代码大部分都在/frameworks/base和/framwworks/av目录下,/frameworks/base的目录结构如下所示。
├── cmds //Android< 以上是关于Android 5.0 源代码结构的主要内容,如果未能解决你的问题,请参考以下文章 android 用代码打开 gprs(流量开关) android 5.0 ROOT android 用代码打开 gprs(流量开关) android 5.0 ROOT android WIFI 设置代理代码 4.4.3——5.0 Android 进程常驻----native保活5.0以上方案推演过程以及代码 如何在带有 Android 5.0 Lollipop 的代码(不是 xml)中以编程方式使用 RippleDrawable?