Anroid4.3状态栏
姓名时间内容备注
第一部分 状态栏总体介绍:2
1、整体功能介绍,功能操作说明2
2、整体框架图(按照层次结构,划分出各个模块,包括使用的外部模块):3
3、文字描述每个层次的功能说明,以及每一个层次的模块功能说明,并说明各个模块之间的交互关系:5
第二部分 分模块说明5
1模块功能具体介绍5
2、模块的框架原理以及模块类图以及每个类的功能7
3模块主要时序图12
4、对外接口及使用的外部接口15
第一部分 状态栏总体介绍
1、整体功能介绍,功能操作说明
? 自?android2.2?开始?,?原本存在与?framework-res.apk?中的状态栏和下拉通知栏界面控制被分割出一个单独的?apk文件?,?命名为?SystemUI.apk,?保存在?System/app?文件夹中。在?SystemUI.apk?中?,?着状态栏的图标?,和控制文件等?,?这样的分割?,?使我们可以更方便地去。状态栏主要用来显示一些系统图标,应用的通知图标和系统时间。?模块就是控制和管理着这些图标,以及通知信息的显示和一些系统开关的。、状态栏的通知功能(包括时间,通知,系统状态等)状态栏与?Toast?都可以起到通知、提醒的作用。但它们的实现原理和表现形式却完全不一样。?Toast?其实相当于一个?Widget?组件,有些类似于没有按钮的对话框。而?可与系统其它应用进行交互来显示在屏幕上方状态栏中的信息,并且?还可通过图标的显示变化来反应一些系统状态的变换,如电池电量,?wifi?,,闹钟等。状态栏?是一种让你的应用程序或系统信息变化在不使用?Activity?的情况下给用户的提醒和通知。
、状态栏的日期显示
?????
III、状态栏的快捷开关功能
这一功能的设计主要是对系统开关的打开与关闭的操作,通常这些功能是要进入设置界面进行改变的,现在状态栏增加该功能后,直接下拉状态栏便可对其状态进行改变。
2、启动流程
首先我们从SystemUI的AndroidManifest文件可以发现:整个SystemUI是由"SystemUIService"这个服务启动的,而"SystemUIService"这个服务是在SystemServer.java通过startSystemUi方法进行启动的。
接下来,SystemUIService类执行自己的onCreate()方法,这个方法中首先要判断当前要启动的是手机的statusbar service,还是平板的statusbar service。判断结束后,代码调用是mServices[i].start()方法,即调用SystemUI类的Start()方法;SystemUI类又是被BaseStatusBar类实现的;PhoneStatusBar类又继承了BaseStatusBar类,重写了start()方法,因此实际调用的是PhoneStatusBar的start()方法来完成状态栏的启动。
以上主要是4.1状态栏的启动过程,4.3状态栏的启动与4.1基本是一致,只是多了一个用户信息的设置,这个主要与通知栏快捷设置有关。
3、Android4.3状态栏整体框架图(按照层次结构,划分出各个模块,包括使用的外部模块):
在android中,状态栏不属于某个应用程序,而是系统的一部分,是通过StatusBarService来管理的U模式(联通sim卡信号的显示模式)以及我们默认的信号显示模式,如果没有特别指定,我们一般用的都是default模式,它的布局文件中sim卡信号显示对应的id注册会有多个(4.1是两个,4.3对应的是三个)。
根据布局文件,我们画出结构图,对状态栏有一个整体的了解:
状态栏顶层view布局:
图2.1
状态栏顶层的view一般分为两部分:状态栏静止显示的图标和收到通知以后动态显示的图标。
静止显示的图标又分为两部分:状态栏左侧的状态图标和状态栏右侧的静态图标,状态图标一般是不显示,只有在一定条件下才会显示,比如说是状态栏接收到通知等等,才会出现;而静态图标,一般情况下只要打开系统的一些开关,系统的时间,电池电量图标等等,它都是会显示。
要说到动态显示的图标,最常见的,比如说导入导出联系人等等,你都会看到状态栏上出现的图标与文字的切换等等。
状态栏下拉界面view布局:
图2.2
下拉状态栏v