cms自助建站系统,做h5商城网站,wordpress条文件夹,网页设计与制作微课教程第4版答案Android进阶#xff1a;一口气读完《Android进阶解密》 - 掘金
Android AMS#xff08;Activity Manager Service#xff09;实现的功能
**管理应用程序的生命周期#xff1a;**启动、停止、暂停、恢复和销毁应用程序。 **控制应用程序的启动顺序#xff1a;**确保应用程…Android进阶一口气读完《Android进阶解密》 - 掘金
Android AMSActivity Manager Service实现的功能
**管理应用程序的生命周期**启动、停止、暂停、恢复和销毁应用程序。 **控制应用程序的启动顺序**确保应用程序以正确的顺序启动以避免冲突。 **维护应用程序状态**跟踪应用程序的当前状态如正在运行、已暂停等。 **管理应用程序权限**授予和撤销应用程序的权限。 **处理应用程序间通信**允许应用程序通过 Binder IPC 机制进行通信。 **提供应用程序信息**提供有关已安装应用程序的详细信息例如其名称、版本和权限。 **优化内存使用**管理应用程序的内存使用以防止内存泄漏和系统崩溃。 **处理低内存情况**当系统内存不足时终止低优先级的应用程序以释放内存。 **提供调试和诊断工具**允许开发人员调试和诊断应用程序问题。 AMS 交互的模块
**WindowManagerService (WMS)**管理应用程序窗口。 **PackageManagerService (PMS)**管理已安装的应用程序。 **ContentProviderManagerService (CPMS)**管理内容提供程序。 **InputManagerService (IMS)**管理输入事件。 **NotificationManagerService (NMS)**管理通知。 **AlarmManagerService (AMS)**管理闹钟。 **JobSchedulerService (JSS)**管理作业调度。 **ConnectivityManagerService (CMS)**管理网络连接。 **BatteryManagerService (BMS)**管理电池信息。 **SensorManagerService (SMS)**管理传感器。 **LocationManagerService (LMS)**管理位置信息。
WindowManagerService与AMS有哪些交互实现了哪些业务逻辑 WindowManagerService (WMS) 与 Activity Manager Service (AMS) 的交互
WMS 和 AMS 密切交互以管理 Android 设备上的应用程序窗口。以下是它们交互的一些关键方面
**AMS 通知 WMS 创建窗口**当 AMS 启动一个应用程序时它会通知 WMS 创建一个窗口来显示应用程序的 UI。WMS 负责管理窗口的生命周期包括创建、显示、隐藏和销毁窗口。
**WMS 通知 AMS 窗口状态更改**当 WMS 的窗口状态发生更改时例如窗口获得或失去焦点它会通知 AMS。这使 AMS 能够相应地更新应用程序的状态例如暂停或恢复应用程序。
**AMS 控制窗口的显示顺序**AMS 负责控制窗口的显示顺序。它决定哪些窗口应该在前台显示哪些窗口应该在后台显示。WMS 根据 AMS 的指示管理窗口的堆叠顺序。
**WMS 执行 AMS 的窗口操作**AMS 可以向 WMS 发出命令来执行各种窗口操作例如 * 创建窗口 * 销毁窗口 * 移动窗口 * 调整窗口大小 * 更改窗口属性
**WMS 提供窗口信息**WMS 可以向 AMS 提供有关窗口的信息例如 * 窗口的当前状态 * 窗口的尺寸和位置 * 窗口的透明度 * 窗口的输入焦点
实现的业务逻辑
WMS 和 AMS 之间的交互实现了以下业务逻辑
**应用程序窗口管理**WMS 创建、管理和销毁应用程序窗口确保应用程序 UI 正确显示。 **窗口状态跟踪**WMS 跟踪窗口的状态并通知 AMS 任何状态更改。这使 AMS 能够相应地更新应用程序的状态。 **窗口显示控制**AMS 控制窗口的显示顺序确保前台应用程序的窗口始终可见。 **窗口操作执行**WMS 执行 AMS 发出的窗口操作命令允许 AMS 动态控制应用程序窗口。 **窗口信息提供**WMS 向 AMS 提供有关窗口的信息使 AMS 能够做出明智的决策并管理应用程序窗口。 总之WMS 和 AMS 之间的交互对于管理 Android 设备上的应用程序窗口至关重要。它使 AMS 能够控制窗口的显示和行为而 WMS 负责执行这些操作并提供有关窗口状态的信息 窗口不直接在 Activity 中创建和管理而是使用 WindowManagerService (WMS) 进行管理的主要原因如下
1. 解耦应用程序和窗口系统 WMS 将应用程序与底层窗口系统解耦。这允许应用程序专注于其业务逻辑而无需担心窗口管理的复杂性。
2. 集中式窗口管理 WMS 提供了一个集中式机制来管理所有应用程序窗口。这确保了窗口的一致性、堆叠顺序和资源分配。
3. 跨进程边界 WMS 作为一个独立的系统服务运行与应用程序进程隔离。这允许它管理来自不同应用程序的窗口而无需担心进程崩溃或安全问题。
4. 性能优化 WMS 针对窗口管理进行了优化可以高效地创建、销毁和管理窗口。它还处理窗口动画和过渡以提供流畅的用户体验。
5. 安全性 WMS 充当应用程序和窗口系统之间的安全边界。它可以验证应用程序对窗口操作的请求并防止恶意应用程序访问或修改其他应用程序的窗口。
6. 兼容性 WMS 提供了一个跨不同 Android 设备的标准化接口来管理窗口。这确保了应用程序在各种设备上的一致行为。
7. 可扩展性 WMS 是一个可扩展的系统允许添加新功能和特性例如多窗口模式、画中画模式和窗口动画。
8. 调试和诊断 WMS 提供了调试和诊断工具允许开发人员识别和解决窗口管理问题。
总之使用 WMS 来管理窗口而不是在 Activity 中直接创建和管理窗口提供了许多好处包括解耦、集中管理、性能优化、安全性、兼容性、可扩展性和调试能力。 AMS和WMS之间定义了哪些通信接口 AMS 和 WMS 之间定义了以下通信接口
1. IWindow
允许 WMS 与应用程序窗口进行交互。 提供创建、销毁、移动、调整大小和获取窗口属性等方法。 2. IWindowManager
允许 AMS 与 WMS 进行交互。 提供创建、销毁、移动、调整大小和获取窗口属性等方法。 还提供控制窗口显示顺序、获取窗口列表和设置窗口标志等方法。 3. IAppOpsService
允许 WMS 查询和修改应用程序操作权限。 例如WMS 可以检查应用程序是否具有在其他应用程序之上绘制窗口的权限。 4. IPermissionController
允许 WMS 查询和修改应用程序权限。 例如WMS 可以检查应用程序是否具有访问特定窗口属性的权限。 5. IActivityManager
允许 WMS 与 AMS 进行交互。 提供启动、停止、获取和修改应用程序活动状态的方法。 6. IActivityTaskManager
允许 WMS 与 AMS 进行交互。 提供创建、销毁、移动和调整任务大小的方法。 7. IDisplayManager
允许 WMS 与 DisplayManagerService (DMS) 进行交互。 提供获取和修改显示属性的方法。 8. IInputManager
允许 WMS 与 InputManagerService (IMS) 进行交互。 提供处理输入事件和管理输入设备的方法。 9. IStatusBarManager
允许 WMS 与 StatusBarManagerService (SBS) 进行交互。 提供控制状态栏可见性和行为的方法。 10. INotificationManager
允许 WMS 与 NotificationManagerService (NS) 进行交互。 提供控制通知可见性和行为的方法。 这些接口通过 Binder IPC 机制进行通信。AMS 和 WMS 使用这些接口来交换有关窗口、应用程序和设备状态的信息并协调窗口管理操作。