软件体系结构---安卓系统架构之应用程序框架层分析---1

时间:2021-09-11 03:40:06

本博客只介绍安卓系统架构中的应用程序框架层

  • 什么是应用程序框架?

        应用程序框架可以说是一个应用程序的核心,是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性。其作用是让程序保持清晰和一目了然,在满足不同需求的同时又不互相影响。 

       而对于安卓来说:Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则。我们在开发应用时就是在这个框架上进行扩展。在这个框架中我们可以完全访问核心应用程序所使用的API框架,即我们要实现某个功能就可以调用安卓系统自己身提供的功能;如果不想调用系统功能,我们也可以通过继承而实现个性化扩展。可以说安卓应用程序框架层的主要作用就是:采用重用机制,方便高效的使用安卓平台本身的组件或者替换平台本身的各种应用程序组件。

       

  • 安卓应用程序框架包含什么?

        应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。

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

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

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

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

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

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

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

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

        就是文本框、按钮等。

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

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

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

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

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

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

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

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

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

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

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

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

        用于信息的传输