android SystemUI全解析

本文深入解析Android SystemUI,涵盖状态栏、导航栏和复合栏的定义,重点讨论Android 4.0及以后如何根据设备类型(Phone、Tablet/Tv)自动匹配SystemUI。SystemUI服务在SystemServer中启动,并通过canStatusBarHide()判断设备类型,加载相应组件,如PhoneStatusBar或TabletStatusBar,展示和管理设备的状态和导航元素。
摘要由CSDN通过智能技术生成

本文由以下博客转载解释编辑而成:

希望以一种更好的理解和解释帮助大家和自己了解android SystemUI

首先了解android系统栏(SystemUI)

  1.   状态栏(statusBar)

    在左侧显示等候处理的通知以及在右侧显示一些设备状态,包括时间,电量等级,信号强度。轻轻的向下滑动状态栏将显示通知的细节。

  2. 导航栏(navigationBar)

    这是Android 4.0 手机上的新功能,导航栏目前只会出现在没有传统的物理按键的设备上。它囊括了设备的导航控制,包括返回,回到主界面,最近使用,同时在Android 2.3或者更早版本编写的应用程序中扮演了Menu的角色。

  3. 复合栏

    在平板电脑上,状态栏和导航栏结合在一起显示在屏幕底部。

1.初始SystemUI

我们知道Android 同时适用于Phone和Tablet(TV),因此,对于Phone来说SystemUI指的是:

StatusBar(状态栏)、NavigationBar(导航栏)。而对于Tablet或者是TV来说SystemUI指的是:

CombinedBar(包括了StatusBar和NavigationBar)

知悉statusBar 和navigationBar 含义请查看我的

 

首先来看看SystemUI的代码位置,路径:SourceCode/frameworks/base/packages/SystemUI

在Android 4.0及以上中,Google整合了Phone和Tablet(TV)的SystemUI,也就说可以根据设备

的类型自动匹配相应的SystemUI

通过我的Android Frameworks层开发之SystemUI分析,我们可以知道

SystemUIService是在SystemServer.java中被启动的

[java]  view plain copy
  1. static final void startSystemUi(Context context) {  
  2.     Intent intent = new Intent();  
  3.     intent.setComponent(new ComponentName("com.android.systemui",  
  4.                 "com.android.systemui.SystemUIService"));  
  5.     Slog.d(TAG, "Starting service: " + intent);  
  6.     context.startService(intent);  
  7. }
这里的startSystemUi()方法则在ServerThread的run()方法中被调用。这里提到SystemServer就不得不提及Android的启动流程

 Android的启动分为内核启动、Android启动、launcher启动,我们的SystemServer就处于Android启动中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值