1. 程式人生 > >Android O Settings原始碼流程分析(靜態介面篇)

Android O Settings原始碼流程分析(靜態介面篇)

Android O Settings 

Settings(該程式碼是基於專案的,與原始碼略有出入)

路徑: packages/apps/Settings

主介面和子介面

從清單檔案AndroidManifest.xml中入手:

setting的主介面的Activity為 Settings

Settings.java類看,除了大量靜態類繼承SettingsActivity,就沒什麼東西了。

setting的子介面Activity為 SubSettings

SubSttings java 裡有重寫了兩個方法 向上導航和判斷是否有效fragment,還有一個靜態內部類繼承本身。

Settings與SubSttings 都是空Activity(不繼承7大生命週期)

Settings與SubSttings 都繼承於SettingsActivity

SettingsActivity繼承自SettingsDrawerActivity,而SettingsDrawerActivity是在SettingLib中定義,SettingsDrawerActivity名稱是沿用N版本的名字,但是側滑欄功能在O版本上已經移除了。

主要分析的是SettingsActivity的onCreate()方法;

佈局載入:

主介面的layout為 :settings_main_dashboard.xml:

主介面佈局中包含兩個FrameLayout,一個是頂部搜尋欄,還有下面的主要內容(顯示一級選單)

參考7.0版本主介面佈局:

子介面的layout為 :settings_main_perfs.xml:

子介面由一個LinearLayout和一個RelativeLayout組成。RelativeLayout預設是隱藏的。

介面如下:

Settings介面:

主介面使用DashboardSummary(Fragment)進行填充

子介面則使用各自的Fragment,並設定各自的主題。