以前我的文章分析过
StatusBar
上图标显示的流程,现在分析一下在
Android2.3
中,
StatusBar
的架构,其实
StatusBar
的实现方法还是进行了许多大的修正的,比如原来
StatusBar
的操作都是在
Service
进程中,现在许多图标显示更新等的操作都移到了应用进程中。
代码目录结构
:
主要位于两个目录中
1,frameworks/base/services/java/com/android/server
这个目录在以前版本中也有
2,frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar
这个目录是
2.3版本新增加的,把许多界面的操作做到了应用里。
主要架构:
1、
StatusBarManager是供应用层调用的接口,它会通过
Binder机制调用到
StatusBarManagerService。
2、
StatusBarMangerService位于
Service进程中,是由
ServerThread创建的,它与
NotificationManagerService和
InputMethodManagerService进行交互。
3、
StatusBarManagerService在被创建的时候会启动一个应用层的
Service -StatusBarService,创建
StatusBarView,增加减少
Icon等等的处理,都是在这个
Service中。
架构图如下:
- 大小: 48.2 KB
分享到:
相关推荐
在Android开发中,状态栏(StatusBar)的管理是界面设计中的一个重要环节,它可以极大地影响到应用的用户体验。"Android-gm-statusbar状态栏透明工具类" 提供了一种方便的方式来处理状态栏的透明效果,使得开发者...
### Android2.3状态栏透明修改教程 #### 知识点一:状态栏透明修改方法 **背景介绍:** 在Android开发中,有时为了达到更好的视觉效果或满足特定设计需求,开发者需要对系统的状态栏进行定制化修改。本文将详细...
在Windows Presentation Foundation(WPF)中,状态栏(StatusBar)是一种常见的用户界面元素,用于显示应用程序的状态信息或者提示用户的相关消息。"右下角三角"通常指的是在状态栏中添加了一个可以折叠或展开的...
在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种常见的设计手法,它能够使应用的内容无缝地延伸到状态栏下方,提供更全面、更沉浸的用户体验。这种技术尤其在游戏和全屏应用中非常受欢迎,因为它最大...
在iOS开发中,状态栏(StatusBar)是显示时间、网络信号、电量等系统信息的区域。自定义状态栏可以为应用程序增添独特的视觉效果,提升用户体验。本教程将深入讲解如何在不隐藏状态栏的情况下,利用UIWindow视图来...
在iOS开发中,状态栏(StatusBar)是位于应用程序顶部,显示时间、网络连接状态、电量等信息的小区域。默认情况下,iOS系统会自动处理状态栏的样式和内容,但有时开发者可能需要对其进行自定义,以适应特定应用的...
在Android开发中,自4.4版本(KitKat)开始,系统引入了透明状态栏(Translucent Status Bar)的功能,允许应用的内容延伸到状态栏下方,提供了更沉浸式的用户体验。这个特性同时也带来了自定义状态栏颜色的需求。...
".pbl"扩展名代表PowerBuilder库文件,它们存储了对象定义和代码,如“statusbar_demo.pbl”和“status_bar.pbl”可能包含了状态栏实现的相关对象。“.pbt”是PB的项目文件,如“statusbar_demo.pbt”和“status_bar...
在Android开发中,有时我们可能需要为特定场景禁用状态栏(StatusBar),比如为了实现全屏体验或特殊界面设计。然而,通常情况下,系统权限是不允许应用直接禁用statusBar的,尤其是对于没有获取到SYSTEM_ALERT_...
在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种设计趋势,它使得应用内容可以延伸到手机屏幕的状态栏区域,提供更沉浸式的用户体验。这种效果常见于全屏游戏或视频播放等应用场景,目的是减少界面...
在Android开发中,状态栏透明,也称为沉浸式(Immersive Mode)或者全屏模式,是一种提升用户体验的设计,使得应用内容可以延伸到系统状态栏下方,提供更广阔、更沉浸式的视觉效果。本Demo主要展示了如何实现Android...
在Android系统中,状态栏是显示系统通知和时间等信息的重要区域,而下拉状态栏则通常用于展开快捷设置和查看详细的通知。本篇将详细探讨如何通过编程方式,特别是利用反射机制来控制Android状态栏的下拉行为。 首先...
本篇文章主要介绍了 Android 实现状态栏 (status bar) 渐变效果的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 一、状态栏渐变效果的实现 状态栏渐变效果是指在 Android 应用程序中实现状态栏从一个...
在Android开发中,为了让应用的用户体验更加统一和美观,有时我们需要自定义状态栏的颜色,使其与应用的标题栏颜色保持一致。在iOS系统中,这种效果很常见,但早期的Android版本并不支持这一特性。不过,从Android ...
在Android开发中,状态栏是屏幕顶部显示时间、网络连接、电量等信息的区域,它的样式和行为可以被开发者自定义以实现特定的界面效果。本教程将详细讲解如何修改状态栏的背景颜色、字体颜色,如何隐藏状态栏以及如何...
个人觉得 iOS 的 Status Bar 状态栏也是一个比较坑的地方,所以还是写一个总结,有遇到这方面问题的朋友可以看一下。 下面话不多说了,来随着小编一起学习学习吧 Status Bar 状态栏的隐藏 1. 通过设置 Info.plist ...
在Android系统中,StatusBar是位于屏幕顶部的一条栏,通常显示时间、通知图标以及系统状态信息。在Android 2.3(Gingerbread)版本中,StatusBar默认仅包含一些基本功能,如通知和解锁控件。然而,根据您的标题和...
3. 添加状态栏到 window 上:在 createAndAddWindows() 方法中,StatusBar 还负责将状态栏添加到 window 上。 4. 初始化操作:在 start() 方法和 createAndAddWindows() 方法中,StatusBar 进行了一些初始化操作,...
在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种常见的设计手法,它能让应用界面更加沉浸,提供更好的用户体验。此主题主要探讨如何在Fragment中实现沉浸式状态栏并去除状态栏的阴影。 首先,我们...
在Delphi编程环境中,StatusBar是窗口底部用于显示各种状态信息的组件。为了提供更好的用户界面体验,有时我们需要自定义StatusBar的颜色,使其与应用程序的整体风格相匹配。本篇将详细介绍如何在Delphi中改变Status...