初识Android系统 | 青训营笔记

158 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1

一、安卓基本信息

  • Android操作系统创始人为安迪·鲁宾,其后由Google收购并负责开发
  • 基于Linux内核,自由开源
  • 2008年上线,现在(2022)版本为Android 13
  • 基本用于移动设备:智能手机、平板电脑

二、系统架构

1. 系统应用层(System Apps

  • 处于应用最上层,系统提供的功能可直接调用(拨号、发短信),也可自己开发出类似的调用功能
  • 系统基础功能包括:拨号(Dialer)、电子邮件(Email)、日历(Calendar)、相机(Camera)等

2. Java API层

  • 提供给开发商的接口,可基于此打造各自的App

  • 具体有:

    • Content Providers
    • View System
    • Managers:ActivityLocationPackageNotificationResourceTelephonyWindow

3. 原生 C/C++层

  • 一些核心的系统服务/组件是基于C/C++,可以用Android NDK访问

  • 包括:

    • Webkit
    • OpenMAX AL
    • Libc
    • Media Framework
    • OpenGL ES
    • ···

4. Android Runtime(ART)

  • Android 4.4开始提供的一种虚拟机,能够把应用程序的字节码转换为机器码
  • 包括Core Libraries

5. 硬件抽象层(HAL)

  • 提供硬件组件的封装,对上层提供接口、隐蔽底层细节

  • 包括:

    • Audio
    • Bluetooth
    • Camera
    • Sensors
    • ···

6. Linux内核

  • Android平台基础是Linux内核

  • 有:

  • Drivers:

    • Audio
    • Binder(IPC)
    • Display
    • Keypad
    • Bluetooth
    • Camera
    • Shared Memory
    • USB
    • WIFI
  • 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布局文件

四、参考

  1. 【Android 客户端专场 学习资料一】第四届字节跳动青训营 - 掘金 (juejin.cn)
  2. 其他信息来源于网络