Android 8.0 SystemUI(一):圖文並茂的介紹 :D


我擅長什麼? 
當我想到這個這個問題的時候,腦子裏是一片空白的:哎呀,我什麼都知道點,但是說擅長的,還真沒拿的出手的,這怎麼行! 
因而就有了SystemUI系列的文章。 
—— 猿溼Xoongapp

1、本文結構ide


2、什麼是SystemUI?
做爲Android**系統**核心應用,SystemUI負責反饋系統及應用狀態並與用戶保持大量的交互。耳熟能詳的三欄:StatusBar(狀態欄)、NavigationBar(導航欄)與Notification Panel(通知欄),以及Recents(近期任務界面),使用起來方便又快捷。blog

另外Keyguard(鎖屏界面)也是屬於SystemUI的一部分。而且在Android8.0代碼中,Keyguard模塊已經從外部被合併到SystemUI源碼目錄下。事件

3、SystemUI路徑
與/packages/apps/下許多模塊不一樣的是,SystemUI屬於Android frameworks的一部分。這也就意味着,SystemUI在正常狀況下是不可被替換的(例如,短信應用能夠被三方應用替換,Settings因所需權限太高而除外)。ip

SystemUI 源碼目錄:源碼

/frameworks/base/packages/SystemUI/io

SystemUI APK路徑:權限

/system/priv-app/SystemUI/im

4、SystemUI功能劃分
在Android8.0上,我大體將SystemUI模塊分爲11個子模塊,以下圖所示。其中的StackDivider和PipUI是在Android 7.0新加入的模塊。相信不少人都已經體驗過Android 7.0以後的分屏功能。d3

主要模塊有:

StatusBar:通知消息提示和狀態展示
NavigationBar:返回,HOME,Recent
KeyGuard:鎖屏模塊能夠看作單獨的應用,提供基本的手機我的隱私保護
Recents:近期應用管理,以堆疊棧的形式展示。
Notification Panel:展現系統或應用通知內容。提供快速系統設置開關。
VolumeUI:來用展現或控制音量的變化:媒體音量、鈴聲音量與鬧鐘音量
截屏界面:長按電源鍵+音量下鍵後截屏,用以展現截取的屏幕照片/內容
PowerUI:主要處理和Power相關的事件,好比省電模式切換、電池電量變化和開關屏事件等。
RingtonePlayer:鈴聲播放
StackDivider:控制管理分屏
PipUI:提供對於畫中畫模式的管理
重要模塊在系統中的位置截圖以下:

關於SystemUI的介紹到這裏就結束了,後續會根據模塊進行更爲深刻的分析。  

相關文章
相關標籤/搜索