Android 技术重温系列 ( 1 ) - Android 平台架构

阅读本文大概需要5分钟

一、前言

其实早就发现自身的一个问题,学习 Android 技术过程中一是花费时间长;二是过段时间就印象变浅。可能会说大部分人都会出现这个问题,不经常使用的技术会慢慢淡忘,需要回顾总结才能加深印象。对于我来说自身问题的原因应该是基础不扎实,学习过程中没总结。所以为了更好更快更有效的解决自身问题,决定开系列进行重温 Android 技术。
之前学习 Android 技术一直查看相关书籍 ( 一般是网上下载 pdf,当然经济状况允许情况下还是购买正版的好 ),或者登陆相关 blog 查看大牛的讲解,又或者上 github 查看开源 lib。对于该系列内容我将会以 developer.android.google.cn 中的内容为主,技术书籍为辅,并会在文章末尾进行引用说明的。

二、Android 平台架构图

image

System Apps

俗称系统应用层。包含了如电话、浏览器、相机、相册、音乐等常见App。

Java API Framework

翻译过来就是 Java API 框架。包含了 Content Provider、View System以及各种的 Manager,主要作用是提供 API 允许我们这些开发者与 Android 系统进行交互。

Native C/C++ Libraries

原生 C/C++ 库。用于支持许多框架函数的实现。如,图形绘制、数据存储、网页浏览等。一般来说,开发者不能直接调用这些 C/C++ 库函数,但可以通过 Android NDK 进行调用,这里对 NDK 先不做介绍,以后文章内在做分析。

Android Runtime

Android 运行时。这里由两部分组成:Android 核心库集和 ART 虚拟机。其中核心库集提供了 Java 语言核心库所能使用的绝大部分功能;虚拟机则负责运行 Android 应用程序。
Android 5.0 之前的 Android Runtime 是由 Dalvik 虚拟机和 Android 核心库集组成的,Android 5.0 之后的版本则如图所示。

Hardware Abstraction Layer ( HAL )

简称硬件抽象层。向外提供设备硬件功能,如相机、蓝牙等。

Linux Kernel

Linux内核。Android 系统底层的支持库,提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。

三、总结

  1. Android 自身自带的各种 Apps 经由外界调用所需的权限,路径都不相同,需要编写小案例来感受一下外部 app 是如何使用 Android 自带的 Apps。
  2. 对于常见的四大组件以及各种 UI 的使用,后续再提。
  3. Android NDK 可以进行初步的了解,https://developer.android.com/ndk/guides/index.html

参考资料

  1. https://developer.android.com/guide/platform/index.html#linux-kernel
  2. https://developer.android.com/ndk/guides/index.html
  3. 《疯狂 Android 讲义》
RiderWu wechat
欢迎您扫一扫上面的微信公众号,目前试运营当中。