本文是基于B站视频https://www.bilibili.com/video/BV1PE411u7ox?p=1的学习笔记。
一、Android总体架构图
1、Linux内核
- Android平台的基础是Linux内核。首先,android runtime需要利用Linux内核来执行底层功能,如多线程管理,底层内存管理等。其次,基于Linux内核可以保证android平台的安全,android平台可以调用Linux内核的硬件设备驱动程序来使用硬件,等。
2、硬件抽象层
- 硬件抽象层夹在android框架和Linux内核之间,主要达到了解耦的目的,让android平台不用直接与linux内核联系,而是通过硬件抽象层来提供硬件驱动程序。
3、Android RunTime
- android runtime即安卓运行环境。手机上每一个app应用都一个独立进程,并且需要运行在android runtime之中,此外,android runtime是通过执行DEX文件来运行多个虚拟机的。其中,DEX文件是一种专门为android设计的字节码文件。而android应用都是基于java语言开发的,需要通过jack编译工具将java源代码转成DEX文件,然后该应用才能够在android runtime下运行。
4、原生C++/C库
- android平台提供了原生C/C++库来实现2D或者3D绘图等功能。若android平台需要使用这些功能,可以使用android框架提供的java api来调用这些基于C/C++所写的功能。
5、Java Api框架
- 可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这
6、系统应用
- android平台随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。系统应用可以作为用户的应用。
二、Android开发四大组件
1、活动(Activity)
- Activity是最基本的模块之一,一个android应用是由多个Activty组成的。
2、服务(Service)
- Service是没有界面的,只能在后台运行的,并且能够与其他组件交互的的组件。在手机中玩游戏时,后台运行的音乐app就是由Service来控制的。
3、广播接收器(BroadcastReceiver)
- 广播接收器用于在应用之间传播信息。
4、内容提供者(Content Provider)
- Content Provider可以用于访问第三方应用数据。android中每个应用的数据,文件都是无法直接相互访问的,只有通过Content Provider才能跨应用访问数据。