原文:eLinux.org
翻译:@willis
校订:@lzufalcon

Android 架构

通过查阅 Google Android 网址 了解 Android 的各个部分,以及架构图。

上文这幅架构图出现在我看过的所有关于 Android 技术主题的演示文稿中(我自己的除外)。

目录

架构图

Android 架构图出自于:
这里

Android-system-architecture.jpg

请也参考 Android 内部图

基本上,Android 存在如下几层结构:

  • 应用(Java 程序语言编写,运行在 Dalvik 虚拟机上)
  • 框架服务和函数库(大多数用 Java 程序语言编写)
    • 应用层以及大多数的 Java 代码运行在虚拟机上)
  • 本地库,守护进程和服务(C/C++ 程序语言编写)
  • Linux 内核。包括
    • 硬件驱动,网络,文件系统以及进程间通信

概要介绍

Android 系统运行明细

快速查阅 Android 启动时的服务和程序:

与 Linux 内核的关系

来自于 2010 年 CELF 峰会的Greg Kroah-Hartmans presentation on Android就 Google/Android 与 Linux 社区如何协作(或者不配合)进行了讨论。

Java

Java 是应用程序编程语言,但是它会通过定制的解释器(Dalvik)解析为运行时的非 Java 字节码。

Java/面向对象思想

Android 系统,实践出真知。

Dianne Hackborn,一位资深的 Android 工程师,他这样写道:

并不是说我是一个不喜欢面向对象设计的 C 程序员。实际上,在从事 Android 之前,我主要的编程语言是 C++。诚实的说,Java 真正困扰我的地方在于,对于同一件事情,它需要太多的重写方法来完成,然而,我能通过 C++ 非常棒的面向对象的理念来得到更轻量级的结果。

尽管在 Android 上,Java 有许多其他很好的属性,但是它也有自身设计上的缺陷和不足,以至于我们不能认为它就是我们心中完美的面向对象。

最终,再往前看,API 规范的定义允许我们在现有的硬件上安置一个运行良好的操作系统。但是 API 的规范也会随着某些情况的发生而发生改变(比如变得慢,却不是足够慢)。然而,我将尽可能的继续保持这些 API 的规范以便于保证现有的所有工作的一致性。当然了,如果 Android 是成功的,那么在从现在起的 10 年内,我们将设计全新的下一代 Android 架构。那么,情况就不一样了。

分类: