`
mmdev
  • 浏览: 12844504 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android 框架研究:(一)框架概要 —— 1.2 Android系统架构

 
阅读更多

Android采用“分层”的架构设计,分为4个层:应用层、应用框架层、库与运行环境以及内核层。

Android操作系统的主要组件。

1. 应用层(Applications)

Android将配备一系列核心应用程序,包括电子邮件客户端,短信程序,日历,地图,浏览器,通讯录等。所有的应用程序都是使用Java编程语言。

2. 应用框架层(Application Framework)

通过提供一个开放的开发平台,Android提供给开发者建立极其丰富和创新应用的能力。开发者自由地享有硬件设备的优势,访问本地信息,运行后台服务,设置警示,向状态栏添加通知等。

开发人员可以使用和核心应用程序使用的完全相同的API框架。应用程序架构的设计的目的是为了简化组件的重用;任何应用程序都可以发布它的功能,其他的应用程序可能会利用到这些功能(需遵守框架提供的安全约束)。依靠同样的机制,组件可以被用户所取代。

底层的所有的应用程序是一组服务和子系统,包括:

  • 一组丰富并且可扩展的view,这组view可以被用来构建一个应用程序,包括列表,表格,文本框,按钮,甚至可嵌入的Web浏览器。
  • 一组Content Providers,可以使应用程序访问其它应用程序的数据(比如通讯录),或者共享自己的数据。
  • 一个资源管理器(Resource Manager),提供对非代码资源的访问,比如本地化的字符串,图形和布局文件。
  • 一个通知管理(Notification Manager),可以使所有的应用程序在状态栏显示定制的提醒。
  • 一个Activity管理(Activity Manager),它管理的应用程序的生命周期,并且提供了一个通用的后台切换栈。

3. 库(Libraries)

Android包括了一套C/C++库,这套库被Android系统的各个组件使用。通过Android的应用框架,这些功能被开放给开发者。

其中的一些核心库如下:

  • 系统C库(System C library) -一个继承自BSD的标准C系统实现(libc),被调整成面向基于linux的嵌入式设备。
  • 媒体库(Media Libraries) -基于PacketVideo的的OpenCore;该库支持回放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG格式。
  • Surface管理器(Surface Manager) -管理显示子系统,并能无缝地组合多个应用的2D和3D图像层。
  • LibWebCore -一个流行的Web浏览器引擎,它对Android浏览器和嵌入式Web视图具有良好的支持。
  • SGL -底层的2D图形引擎。
  • FreeType -位图和矢量字体渲染。
  • SQLite -所有的应用程序使用并且强大而轻量级的关系型数据库引擎。

4. 运行时环境(Android Runtime)

Android包括一个核心库的集合,它们提供了Java编程语言的核心库中的绝大多数功能。

每一个Android应用都在它自己的进程中运行,该进程也属于某个Dalvik虚拟机的实例。Dalvik被设计成能让设备高效地运行多个虚拟机。 Dalvik虚拟机执行的是.dex结尾的Dalvik可执行文件格式,该格式被优化为最小内存使用。虚拟机是基于寄存器的,并且运行那些Java编程语言所编译的类,这些类被内置的dx工具转换为.dex格式。

Dalvik虚拟机依赖Linux内核来提供底层的功能,比如线程和低级内存管理。

5. Linux内核(Linux Kernel)

Android依赖Linux 2.6来提供核心系统服务,比如安全、存储管理、进程管理、网络栈和驱动模型。该内核同时扮演着介于硬件和软件栈的其余部分之间的一个抽象层。



分享到:
评论

相关推荐

    鄞州实验中学七年级上数学:特殊的相交线——垂线课件ppt(共概要PPT课件.pptx

    鄞州实验中学七年级上数学:特殊的相交线——垂线课件ppt(共概要PPT课件.pptx

    Android框架揭秘.pdf

    《Android框架揭秘》通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    Android框架揭秘(完整版pdf)

    其中的主要内容包括:通过启动程序了解Android框架的概要,移植Android以及如何开发适合各种机器的应用程序,分析Android框架所需的基础知识,JNI(Java Native Interface)与Binder基础知识,Zygote、Service Manager...

    FPGA概要——浙大_生仪学院

    FPGA概要——浙大_生仪学院 FPGA概要——浙大_生仪学院

    [Android框架揭秘].金泰延等.扫描版

    《android框架揭秘》通过对android系统源代码的分析,主要介绍android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    ANDROID框架揭秘

    《android框架揭秘》通过对android系统源代码的分析,主要介绍android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    Android框架揭秘

    《android框架揭秘》通过对android系统源代码的分析,主要介绍android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    Android系统架构概要

    Android系统架构概述,初学者可选择阅读,对安卓加深理解

    FPGA概要——浙大生仪学院

    FPGA概要——浙大生仪学院

    基于架构设计五视图法的案例:酒店管理系统概要设计.doc

    基于架构设计五视图法的案例:酒店管理系统概要设计.doc

    ANDROID框架揭秘.pdf下载高清完整扫描版

    《android框架揭秘》通过对android系统源代码的分析,主要介绍android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    ANDROID框架揭秘-加书签

    《Android框架揭秘》通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    项目管理系统——概要设计.pdf

    项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目管理系统——概要设计.pdf项目...

    项目管理系统——概要设计.docx

    项目管理系统——概要设计.docx项目管理系统——概要设计.docx项目管理系统——概要设计.docx项目管理系统——概要设计.docx项目管理系统——概要设计.docx项目管理系统——概要设计.docx项目管理系统——概要设计....

    医学信息系统:医院信息系统的功能概要设计.pdf

    医学信息系统:医院信息系统的功能概要设计.pdf医学信息系统:医院信息系统的功能概要设计.pdf医学信息系统:医院信息系统的功能概要设计.pdf医学信息系统:医院信息系统的功能概要设计.pdf医学信息系统:医院信息...

    软件工程课程设计----酒店客房管理系统

    一、摘要: 5 二、可行性分析 6 1.编写目的: 6 2.项目背景: 6 2.1项目总述: 6 2.2相关定义: 6 3可行性研究的前提 6 3.1欲开发软件的基本要求: 6 3.2目标: 7 3.3条件、假定和限制: 7 3.4进行可行性研究的方法...

    微服务概要设计说明书模板

    文档:概要设计文档,可以帮我们处理程序性能瓶颈,程序移植性短板,也方便后期维护拓展,文档输出也方便后期交付和交接。 项目目录: 1 文档简介 1.1 编写目的 1.2 文档范围 1.3 缩略语 2 项目概述 2.1 建设...

    Android架构概要介绍和学习计划

    Android架构概要介绍和学习计划 ,看完以后,android架构基本上就明了了。

    大学软件工程课程设计:电影信息管理系统概要设计说明书

    [2] 概要设计说明书(GB8567——88国家标准) 编写目的 此概要设计说明书,就是根据需求分析阶段产生的电影管理系统的需求规格,拟定相应的系统说明书,建立管理系统的总体结构。此份文档将确定系统中每个程序是由...

Global site tag (gtag.js) - Google Analytics