美文网首页
android平台框架原理

android平台框架原理

作者: IT前沿技术分享 | 来源:发表于2019-03-10 12:00 被阅读0次

    一. Android的系统架构

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

    图1:Android系统架构图

      每层功能简要介绍如下:

    1. 应用程序层

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

    2. 应用程序框架层

      该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

    3. 系统库和Android运行时

    系统库

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

    Android运行时

      包括核心库和Dalvik虚拟机。

    核心库

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

    Dalvik虚拟机

      Dalvik虚拟机是一种基于寄存器的java虚拟机,所支持的字节码(ByteCode)是“dex”文件(Dalvik Executable)
      Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

    4. Linux内核

      核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

    二. 总结

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

    1. 关于Android学习的建议

      Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。

    从事工作或学习 研究层
    Android应用开发 Android的应用框架层和应用程序层
    Android系统开发 Android的系统库和Android运行时
    Android驱动开发 Android的Linux内核

      找准切入点,对我们的学习和工作,无疑是有非常大的帮助的。

    2. 平台与框架 的理解

      每个开发者估计都纠结过平台框架的概念,特别是对新手而言,平台框架似乎总是前辈们口头上惯用的、玄而又玄的名词。
      实际上,我们可以把平台理解为舞台,其强调了事物的支持特性,有如舞台具有支撑舞者在其上进行表演的特性。
      同样,Android平台具有支持Android应用程序运行的特性,具体表现在运行时(Runtime)环境和接口,API。

      框架可以理解为骨架,其强调了事物的可重用性。众所周知,人类无论高矮胖瘦、美丑强弱,其骨架都是相似的。反之,使用一个人类的骨架模型,可以塑造出不同的人体模型。
      在软件开发过程中,使用框架可以开发出界面各异的、某一类应用程序。例如,输入法,有搜狗输入法、国笔输入法、百度输入法……等各有异同的应用程序。
      框架的具体表现为一组协同工作的类,如界面组件类、事件处理类、网络通信类等。借助框架,开发者可以高效地开发出应用程序。

      简而言之,框架帮助应用程序的开发,平台支持应用程序的运行,框架建立在平台之上。

    3. 框架与应用程序

      首先,理解两个概念 抽象和衍生

    • 抽象:从相似的事物中,抽取出共同点,得到相似的结构
    • 衍生:以抽象结构为基础,添加些其他功能,得到具体的事物。

      框架里的函数能够呼叫应用程序之中的函数,通俗的讲是前辈呼叫晚辈,框架先于程序诞生,称之为前辈。程序在框架的基础上诞生,所以称为晚辈。前辈呼叫晚辈,会产生下述几种效果

    • 框架里要定义很多的预设函数,工应用程序调用或者重写
    • 程序员的主要作用就是设计各种函数供框架来调用
    • 如果应用程序中修改或者取代了预设函数,框架就会去调用程序中的函数,反之会去调用预设函数。

      应用框架的典型双向沟通情形

    • 框架中预设了f1(),程序中也定义了f1()。此时优先呼叫晚辈的f1()函数。
    • 框架「虚」设了f2(),亦即f2()是个抽象(abstract)函数。此时您务必
      定义f2()來充实之,并供Linux/Windows 或其它函数呼叫。例如f3()呼叫f2()。
    • 框架预设了f3(),程序并未定义f3()。此时呼叫预设的f3()函数。
    • 框架预设了f4(),您也定义了f4()。此时优先呼叫f4()函数,而f4()可呼叫前辈(预设)的f4()函数。

      从上图可以看到,框架和应用程序之间,主动权掌握在框架手里,框架决定如何呼叫应用程序中的函数。

    相关文章

      网友评论

          本文标题:android平台框架原理

          本文链接:https://www.haomeiwen.com/subject/dmxupqtx.html