`
暗月苍云
  • 浏览: 6770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android开发之Android系统架构

阅读更多

       Android的系统架构采用了分层架构的思想,如图所示。

       从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。


Android系统架构图

       每层功能简要介绍如下:

       一、 应用程序层  

       该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

       

       二、 应用程序框架层

       该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其 它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

       隐藏在每个应用后面的是一系列的服务和系统, 其中包括;

       Views System:丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。

       Content Providers(内容提供器):使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。

       Resource Manager(资源管理器):提供非代码资源的访问,如本地字符串,图形,和布局文件( layout files )

       Notification Manager(通知管理器):使得应用程序可以在状态栏中显示自定义的提示信息。。通知列设定在手机的顶部,像短信(short Message),Voice mail都会在此进行提示。

       Activity Manager(Activity管理):用来管理应用程序生命周期并提供常用的导航回退功能。

 

       

       三、 系统库和Android运行时

       系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。

       Android Runtime包含下面两个核心。

       Core Libraries

       Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。

       Dalvik Virtual Machine

       每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行 多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编 译器编译,然后通过SDK中 的 “dx” 工具转化成.dex格式由虚拟机执行。Dalvik Virtual Machine是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。Android虽然使用Java程序语言来开发应用程序,但是却不使用一般大家目前在用的J2ME版本来执行Java程序,而是采用Android自有的Android Runtime来执行。

       面试时经常会问到这样一个问题:Android dvm的进程和Linux的进程应用程序的进程是否一样?事实上DVMdalivk的虚拟机每一个Android应用程序都在它自己的进程中运行都拥有一个独立的Dalvik虚拟机实例而每一个DVM都是在Linux 中的一个进程所以说可以认为是同一个概念。

       

       四、 Linux内核

       Android平台的操作系统用的是Linux,内核版本为2.6版,包含的主要功能有安全(Security)、内存管理(Memory Management)、进程管理(Process Managemen)、网络协议栈(Network Stack)、硬件驱动(Driver Model)等,Linux内核也同时作为硬件和软件栈之间的抽象层。

关于 Android 对 kernel 的修改,Google 的简报还提供了两个重点:

       Binder (IPC):提供有效率的程序间沟通管道(Inter-Process Communication)。Android 系统中有很多服务,而上层的应用程序经常要取用这些服务,一般的 Linux 系统已经提供了不少 IPC 的方式,不过 Android 还是搞了套自己的。虽说文件中解释原因为「一般 IPC 会造成额外资源花费,以及安全问题」,但其实这些都是可以基于原有架构在 kernel 外头解决的,为何要改在 kernel 里头,笔者对此存疑,也只能等找时间去研究程序代码才知了。

       Power Management:与桌上型计算机或笔记型计算机不同,手持装置的电源一向相当有限,必须无所不用其极的去想办法省电,但又不损及顺畅的使用经验。Android 在此采取了颇为积极的作法:「没有人说要用,就关掉」。例如某程序在放 MP3 音乐,于是此程序会需要 CPU 的计算能力,那就得开口要。如果与此同时没其它程序在执行,那么 LCD 显示器就可能被关掉,藉以省电。另一特别处,是在于 Linux kernel 一般考虑的都是在计算机上的作法,所以多半只有进入暂停、休眠等等的选择,而不会如此细致的去控制到各个小装置的电源供应。

       总结:

       1、Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。

       2 、Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;若是从事Android系统开发,那应该研究Android的系统库和Android运行时;若是从事Android驱动开发,那应该研究Android的Linux内核。总之,找准切入点,实践出真知。

分享到:
评论

相关推荐

    Android的系统架构之开发基础

    Android的系统架构采用了分层架构的思想。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

    Android系统架构及应用程序开发探索.pdf

    自3G 网络普及以来, 智能手机在移动互联网领域迅速 占领市场, 尤其是搭载 Android 系统的智能手机得到 了非’ 泛的开发, 众多移动端应用应运而生, 手机不再只是单纯地作为收发信息和 电话的工具, 传递改变了...

    Android开发之旅 完整版pdf

    作者:吴秦 ...本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). • Android 开发之旅:环境...• Android开发之旅: Intents和Intent Filters(理论部分)

    Android开发之旅

    Android开发之旅:android架构 3 Android开发之旅:应用程序基础及组件 4 Android开发之旅:应用程序基础及组件(续) 5 Android开发之旅:活动与任务 6 Android开发之旅:进程与线程 7 Android开发之旅:组件...

    android系统原理及开发要点详解

     1.1.1 Android开发系统的由来 1  1.1.2 移动电话系统开发模式 2  1.1.3 未来移动电话的功能及Android的优势 4  1.2 Android的开发工作 6  1.2.1 Android移植开发 6  1.2.2 Android应用开发 8  1.2.3 Android...

    Android系统架构概述PPT

    Android系统 = Linux...这个PPT从一个通用的应用程序架构开始,概述Android系统的专用驱动、HAL、关键服务、Dalvik、窗口机制和四大组件等。这个PPT 作为前面第1个PPT的延续,帮助进一步了解Android系统的具体实现。

    Android开发之旅——完整版

    • Android 开发之旅:android架构 • Android 开发之旅:应用程序基础及组件 • Android 开发之旅:应用程序基础及组件(续) • Android 开发之旅:活动与任务 • Android 开发之旅:进程与线程 • Android ...

    Android 系统架构及应用程序开发探索

    随着网络信息技术的飞速发展,互联网为人们的生活带来了很大的...基于此,本文从Android系统的发展现状着手,分析了Android系统的架构设计,随后探讨了基于Android系统的应用程序的开发。以此来供相关人士交流参考。

    离线架构Android开发环境

    离线架构Android开发环境

    移动操作系统原理与实践——基于Java语言的Android应用开发.zip

    第2章Android开发环境搭建 2.1JDK安装与配置 2.2安装Android Studio 2.3安装Android SDK 2.4创建Android模拟器 本章总结 本章练习题 第3章第一个Android应用程序 3.1使用Android Studio工具创建项目

    基于Android+JAVAEE架构的校园信息交互系统

    本文针对一个基于Android+JAVAEE架构的校园信息交互系统的设计与开 发工作进行论述与说明。首先,简单的介绍校园信息交互系统相关的研究背景, 包括涉及的开发平台及技术规范;其次,分析说明了整个系统的设计与架构...

    老罗android开发视频教程全集百度网盘下载

    Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何...【第一版第十五章】老罗Android开发视频--百度地图实战开发(10集)

    【android开发】android快速开发框架 已经搭好的android架构

    【android开发】android快速开发框架 已经搭好的android架构 可在上面延伸开发 【实例简介】android快速开发框架 已经搭好的android架构 可在上面延伸开发 关于android快速开发框架 已经搭好的android架构 可在上面...

    基于插件架构的android开发

    本文阐述“柯元旦”Android内核剖析中基于类装载器的“插件”架构。 插件的概念: 1、插件不能独立运行,而必须运行于一个宿主程序中,即由宿主程序去调用插件程序。 2、插件一般可以独安装。 3、宿主程序中可以管理...

    Android架构师手册

    Android架构师手册_建模与图形思考_高焕堂

    Android开发之多进程架构 任玉刚.pdf

    Android开发之多进程架构 任玉刚.pdf

    Android mvp架构设计demo

    Android mvp开发架构demo

    Android开发之旅(2):android架构.doc

    Android开发之旅(2):android架构

    Android的架构与应用开发分析.pdf

    智能型手机是现在生活里手机的主角,Android是智能手机平台,是一个系统。探讨Android的构架。充分了解An droid的功能特点、构成原理等,与其他智能手机发平台进行比较,发现不足、体现优点。通过实际应用,验证...

    《Android系统级深入开发—移植与调试》 PDF

    《Android系统级深入开发:移植与调试》介绍了从Android开源工程到一个基于实际硬件产品中的主要工作,一方面让读者清晰把握各个子系统的架构,另一方面让读者把握移植这个开发核心环节的要点。 读者对象:Linux开发...

Global site tag (gtag.js) - Google Analytics