当前位置:   article > 正文

android 体系架构_activity manager(活动管理器)属于android系统架构中的哪一层

activity manager(活动管理器)属于android系统架构中的哪一层

Android的四层架构:

       应用层是Java语言编写的运行在虚拟机上的程序。谷歌在Android系统中捆绑了一些核心应用,例如浏览器,日历,联系人等。  

         应用框架,本人是这么理解的:就是给出应用需要遵循的规则,所有的应用都要在这个规则下去扩展,这样既有一致性又有多样性。

             对于Android来说,Android系统也给开发者一个框架,开发者需要按照一定的规则去编写程序。利用这些规则去实现各种功能。可以举个例子:我们给建筑工人(开发者)各种各样的工具和使用说明(应用框架),工人们建造出各式各样的房子(应用)。

            Android程序框架包含十个部分。

  • 应用层
  • 应用框架层

 1. Activity Manager(活动管理器):管理各个应用程序的生命周期以及通常的导航回退功能。

           作用:负责一新ActivityThread进程创建,Activity生命周期的维护。其自身也存在一个框架,本文就不再讨论,有兴趣的可以看一看。

2. Window Manager(窗口管理器):管理所有的窗口程序

          在安卓应用框架中窗口主要分为两种:一是应用窗口(一个activity有一个主窗口,弹出的对话框也有一个窗口,Menu菜单也是一个窗口。在同一个activity               中,主窗口、对话框、Menu窗口之间通过该activity关联起来。)二是公共界面的窗口(系统级别的窗口如:最近运行对话框、关机对话框、状态栏下拉栏、           锁屏界面等)

          窗口管理系统是基于C/S模式的。整个窗口系统分为服务端和客户端两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等。

3. Content Provider(内容提供器):使得不同应用程序之间存取或者分享数据。

        就是可以配置自己的Content Provider去存取其他的应用程序或者通过其他应用程序暴露的Content Provider去存取它们的数据,总的来说就是提供了一个数据共享机制。

4.View System(视图系统):构建应用程序的基本组件

        就是文本框、按钮等。

5.Notification Manager(通告管理器):使得应用程序可以在状态栏显示自定义的提示信息。

        通过NotificationManager 、 Notification这两个类可以完成在状态栏显示提示的信息。

6.Package Manager(包管理器):安卓系统内的程序管理

        Package Manger是一个实际上管理应用程序安装、卸载和升级的API。当我们安装APK文件时,Package Manager会解析APK包文件和显示确认信息。

7.Telephony Manager(电话管理器):管理所有的移动设备功能

        用于管理手机通话状态、获取电话信息(设备、sim卡、网络信息),监听电话状态以及调用电话拨号器拨打电话。

8.Resource Manager(资源管理器):提供应用程序使用的各种非代码资源。

        提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

9.Location Manager(位置管理器):提供位置服务

        LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置、注册和注销来自某个                     LocationProvider的周期性的位置更新、注册和注销接近某个坐标时对一个已定义的Intent的触发等。总的来说就是提供有关位置的操作。

10.XMPP Service(XMPP服务):例如提供Google Talk 服务

        XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议):是一种即时消息协议

        用于信息的传输

       程序库:
  Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
  *系统C库-一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。
  *媒体库-基于PacketVideoopencore;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
  *SurfaceManager-对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
  *LibWebCore-一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
  *SGL-底层的2D图形引擎
  *3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
  *FreeType-位图(bitmap)和矢量(vector)字体显示。
  *SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
  Android运行库:
  Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
  每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。
  Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。 

    Android的核心系统服务依赖于Linux2.6内核,如安全性内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

 

文章中参考了:https://www.cnblogs.com/chrisbosh/p/5372990.html

 

  • 系统运行层
  • Linux内核

  

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/472014
推荐阅读
相关标签
  

闽ICP备14008679号