ServiceManager所管理的所有Service都是以相应的Manager返回给客户端,因此,这里简述一下Framework中关于Manager的语义。在我们中国的企业里,Manager一般指经理,比如项目经理、人事经理、部门经理。经理本身的含义比较模糊,其角色有些是给我们分配任务,比如项目经理;有些是给我们提供某种服务,比如人事经理;有些则是监督我们的工作等。而在Android中,Manager的含义更应该翻译为经纪人,Manager所manage的对象是服务本身,因为每个具体的服务一般都会提供多个API接口,而Manager所manage的正是这些API。客户端一般不能直接通过Binder引用去访问具体的服务,而是要经过一个Manager,相应的Manager类对客户端是可见的,而远程的服务类对客户端则是隐藏的。
而这些Manager的类内部都会有一个远程服务Binder的变量,而且在一般情况下,这些Manager的构造函数参数中会包含这个Binder对象。简单地讲,即先通过ServiceManager获取远程服务的Binder引用,然后使用这个Binder引用构造一个客户端本地可以访问的经纪人,然后客户端就可以通过该经纪人访问远程的服务。
这种设计的作用是屏蔽直接访问远程服务,从而可以给应用程序提供灵活的、可控的API接口,比如AmS。系统不希望用户直接去访问AmS,而是经过ActivityManager类去访问,而ActivityManager内部提供了一些更具可操作性的数据结构,比如RecentTaskInfo数据类封装了最近访问过的Task列表,MemoryInfo数据类封装了和内存相关的信息。
这种通过本地Manager访问远程服务的模型如图5-6所示。
图5-6 Manager类和Service类之间的关系
原文地址:http://book.51cto.com/art/201109/291235.htm
分享到:
相关推荐
androidSDKManager国内镜像更新方法;速度更新SDk
在Android开发中,DownloadManager是处理长时间下载操作的一个系统服务。通过使用DownloadManager,开发者可以实现应用的自动更新功能,并通过监听下载进度,向用户展示当前下载状态。下面详细介绍一下Download...
总之,Android SDK Manager是Android开发者的工作台,它提供了一个统一的入口来获取和管理开发过程中所需要的各种资源和工具,确保开发者能够高效地进行应用开发、调试和测试。随着Android系统的不断更新和进化,SDK...
Android SDK Manager是一款重要的工具,用于管理和更新Android开发者所需的软件开发工具。在Android应用程序开发过程中,`build-tools`组件扮演了核心角色,它包含了构建应用所必需的各种工具。本主题聚焦于"Android...
Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示。
在Android系统中,联系人管理器(ContactManager)是一个核心组件,它负责处理用户的联系人数据,包括存储、检索和更新联系人信息。这个组件对于开发者来说尤其重要,因为它是构建社交类应用或者任何需要与用户...
**AVD Manager (Android Virtual Device Manager)** 是Android Studio中用于创建和管理Android虚拟设备(模拟器)的工具。它提供了丰富的配置选项,允许开发者自定义模拟器的硬件和软件特性。 **基本步骤**: 1. **...
在Android开发中,处理文件下载是一项常见的任务,无论是更新应用、获取用户数据还是提供多媒体内容,都需要高效可靠的下载管理机制。Android系统自带了一个名为DownloadManager的服务,它为开发者提供了便捷的方式...
解决Android SDK Manager国内无法更新的解决方案,使用后可完美解决无法获取各个版本SDK的问题!
SDK Manager中Extras下没有Android Support Library.docx
在Android系统中,实现双屏显示是一项复杂但有趣的功能,尤其对于开发多媒体设备、智能电视或者需要多窗口操作的应用来说至关重要。本篇文章将深入探讨如何使用Android原生的`DisplayManager`和`Display`类来实现这...
android 一个好用的filemanager
DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request。DownloadManager.Request用来请求一个下载,DownloadManager.Query用来查询下载信息,这两个...
在Android系统中,Task Manager(任务管理器)是一个至关重要的组件,它负责管理和调度系统中的各个任务和进程。它监控应用的内存使用、CPU占用率以及电池消耗,帮助优化系统的性能。用户可以通过Task Manager查看...
1. **启动SDK Manager**:在Android Studio中,可以通过顶部菜单栏选择“Tools” -> “SDK Manager”来打开SDK Manager。 2. **选择组件**:SDK Manager界面分为“SDK Platforms”和“SDK Tools”两个选项卡,你...
标题中的"Android SDK Manager tools升级版本24.3tools_r24.3-windows.zip"表明这是一个针对Windows平台的特定版本升级包,用于将SDK中的tools组件更新到24.3版本。 在Android开发过程中,SDK Manager工具通常包含...
《Android Download Manager详解》 Android Download Manager是一款专为Android系统设计的高级下载管理工具,它提供了全面且强大的功能,能够满足用户对下载任务的各种需求。本文将深入探讨其主要特性,包括多任务...
在Android开发中,保持应用程序的更新对于提供最新的功能和修复潜在问题至关重要。Android Studio提供了丰富的API和工具,使得开发者能够方便地实现应用的自动更新。本篇将详细讲解如何使用Android自带的`Download...
在Android应用开发中,有时我们需要实现一个功能,即使用系统内置的`DownloadManager`服务来下载APK文件,并在下载完成后自动提示用户进行安装。这个功能对于应用的更新或者安装外部资源非常实用。本文将详细讲解...