1.2.2 动态视角的体系结构
静态的体系结构是从横向分层的角度诠释Android是什么。如果静态的体系结构不足以让读者理解Android的运行机制,我们可以看看Google工程师Sans Serif是怎么描述Android体系结构的,如图1-3所示。

注意 这里内容来源于Sans Serif的一篇博文,原文网址如下:http:// www.tbray.org/ ongoing/When/201x/ 2010/11/14/What-Android-Is。

在图1-3中,将Android划分为两个交互的空间:用户空间和内核空间。

1.用户空间

用户空间分为两个交互的子系统:Native子系统和Java子系统。两个子系统通过JNI技术连接在一起,建立在内核空间之上。

Native子系统主要由NDK开发的App、应用框架层Native部分和标准库C/C++部分组成。

Java子系统主要由SDK开发的App、系统内置App、应用程序框架层Java部分、标准库的Java接口组成。

运行时,Java应用程序调用应用框架层的接口使用标准库提供的服务。整个系统的运行环境和进程管理便由Dalvik和Linux Kernel负责。

2.内核空间

内核空间分为两部分:Linux内核和Android扩展支持,用于完成操作系统运行支持。其中Android扩展部分包括Binder、Logger、OOM等机制。

熟悉了Android的体系结构,接下来我们就要下载Android源码看个究竟。

《Android的设计与实现:卷I》——第1章 1.2.2动态视角的体系结构的更多相关文章

  1. 《深入理解Android 卷III》第二章 深入理解Java Binder和MessageQueue

    <深入理解Android 卷III>即将公布.作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分. ...

  2. android 界面设计基本知识Ⅲ

    本章继续讲述在android界面设计中相关的知识点.介绍内容包括BroadcastReceiver(广播),Service(服务),Widget(小部件),WebView(网页加载控件). 1.Bro ...

  3. 安卓app设计规范整理和Android APP设计篇(转)

    随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...

  4. Android动画设计源码地址

    Android动画设计源码地址 http://blog.csdn.net/shanghaibao123/article/details/45223825

  5. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面

    [Android UI设计与开发]第05期:引导界面(五)实现应用程序只启动一次引导界面 jingqing 发表于 2013-7-11 14:42:02 浏览(229501) 这篇文章算是对整个引导界 ...

  6. 【译】Design For Maturing Android-为日渐成熟的Android做设计

    为日渐成熟的Android做设计 [声明] 本篇博文英文版原文来自Smashing Magazine,本人经Smashing Magazine邮件授权后翻译,转载请注明出处.谢谢!原文地址. 我将不定 ...

  7. (转)Android Binder设计与实现 – 设计篇

    原文地址(貌似已打不开):Android Binder设计与实现 – 设计篇 ------------------------------------------------------------- ...

  8. 详解 “Android UI”设计官方教程

    我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...

  9. 移动周报:十款最实用的Android UI设计工具

    上一周可以说是一个不断Mark周,从最实用的Android UI设计工具.免费移动应用测试框架推荐,到HTML5开发框架等等,各种开发工具.框架精彩丰呈,看得小伙伴们是不亦乐乎.当然,还有不容错过的M ...

随机推荐

  1. BigDecimal 笔记

    参数 BigDecimal 类主要有如下几个参数 这几个参数都比较好理解,看过这两个例子基本都能明白,现在总结一下就是 scale // 小数点后位数 precision // 一共位数 intCom ...

  2. Flask 和Django

    软件系统发展到今天已经很复杂了,在服务端软件,设计的知识很广泛,为了降低开发难度,提高开发效率,在某些方面去使用别人成熟的框架. 一些事务处理,安全性,数据流控制等都可以让框架处理,而开发人员把更多的 ...

  3. 基于 Spring Cloud 的微服务架构实践指南(下)

    show me the code and talk to me,做的出来更要说的明白 本文源码,请点击learnSpringCloud 我是布尔bl,你的支持是我分享的动力! 一.引入 上回 基于 S ...

  4. Dos 命令启动网卡

    禁用网卡: netsh interface set interface "本地连接" disabled 启用网卡 : netsh interface set interface & ...

  5. 17-jmeter相关插件介绍

    转--https://www.cnblogs.com/imyalost/p/7751981.html

  6. 如何提高你使用windows的逼格(windows用成Linux的赶脚)

    一.准备工作 作为一个整洁而有内涵的人,电脑桌面一定要清洁 二.桌面整洁了,软件怎么打开呢?     方案一 方案二.敲重点   我们可以使用终端指令打开windows安装的任意软件: 打开Windo ...

  7. input相关

    input相关 在ios中输入英文首字母默认大写取消方法 <input autocapitalize="off" autocorrect="off" /& ...

  8. Extjs——简单的Grid panel小实例

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  9. 架构师修炼之微服务部署 - Docker简介

    Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是 ...

  10. radio取值

    假设代码如下: 1) <input type="radio"   name="radio"   id="radio1"  checke ...