这是我参与「第四届青训营 」笔记创作活动的第1天
一、安卓基本信息
- Android操作系统创始人为安迪·鲁宾,其后由Google收购并负责开发
- 基于Linux内核,自由开源
- 2008年上线,现在(2022)版本为Android 13
- 基本用于移动设备:智能手机、平板电脑
二、系统架构
1. 系统应用层(System Apps)
- 处于应用最上层,系统提供的功能可直接调用(拨号、发短信),也可自己开发出类似的调用功能
- 系统基础功能包括:拨号(Dialer)、电子邮件(Email)、日历(Calendar)、相机(Camera)等
2. Java API层
-
提供给开发商的接口,可基于此打造各自的App
-
具体有:
- Content Providers
- View System
- Managers:
Activity、Location、Package、Notification、Resource、Telephony、Window
3. 原生 C/C++层
-
一些核心的系统服务/组件是基于C/C++,可以用Android NDK访问
-
包括:
WebkitOpenMAX ALLibcMedia FrameworkOpenGL ES- ···
4. Android Runtime(ART)
- Android 4.4开始提供的一种虚拟机,能够把应用程序的字节码转换为机器码
- 包括
Core Libraries
5. 硬件抽象层(HAL)
-
提供硬件组件的封装,对上层提供接口、隐蔽底层细节
-
包括:
AudioBluetoothCameraSensors- ···
6. Linux内核
-
Android平台基础是
Linux内核 -
有:
-
Drivers:
AudioBinder(IPC)DisplayKeypadBluetoothCameraShared MemoryUSBWIFI
-
Power Management
三、APK组成
- 全称为:
Android PacKage,即 Android 安装包。将APK文件直接传到 Android 模拟器或 Android 手机中执行即可安装。
- APK 文件其实是 zip 格式,在 windows 上可以通过 WinRar 等程序直接解压查看。
| 文件或目录 | 作用 |
|---|---|
| AndroidManifest.xml | 程序全局配置文件,生命App四大组件 |
| classes.dex | 编写的java代码 |
| libs文件夹 | 存放由C/C++编译而来的so文件 |
| META-INF文件夹 | 描述包信息,存在签名和证书,可用于校验和安全 |
| res文件夹 | 资源文件夹,包括图片、颜色、字符串、XML布局文件 |