Sub*_*rat 1 boot android android-source android-statusbar
如何知道系统UI何时在Android启动过程中加载?状态栏和导航栏视图的确切位置在哪里?作为SystemUI特权应用程序,它是否在启动器应用程序(主屏幕)启动之前加载?我不确定.任何建议都是受欢迎的.
下面是一系列简要说明的步骤,希望能够阐明在启动时"加载"系统UI组件的顺序.我将在Android4.2 上演示它,尽管其他版本的序列非常相似.
SystemServer核心系统服务(包括StatusBarManagerService*)"完成"时,它会通知第三方代码系统已准备好并启动系统UI(第870行),或者更准确地说,SystemUIService在com.android.systemui包**中.SystemUIService它只是一个Android 应用程序组件,其onCreate()方法启动/初始化UI组件并存储对类型mServices[]数组中组件的引用SystemUI.第一个元素(mServices[0])是状态栏或系统栏(状态+导航栏).BaseStatusBar,抽象SystemUI类的实现,做一些UI的东西(比如添加视图WindowManager等).另外,它声明了一系列createAndAddWindows()由子类实现的抽象UI相关方法(例如),例如PhoneStatusBar.BaseStatusBar的PhoneStatusBar,TabletStatusBar等***处理多类基本上都是从子类View,其绘图(也是如此状态栏的绘图)发生在onDraw()方法.Activity(带有一个android.intent.category.HOME)onResume()方法返回(并且bootanimation退出),尽管状态栏组成的所有视图都有已经布局了. AOSP:
*frameworks/base/services/java/com/android/server /
**frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
***frameworks/base/packages/SystemUI/src/COM /安卓/ systemui /状态栏/