Andorid Launcher程式碼分析

來源:互聯網
上載者:User

Launcher是Android系統的案頭系統,是比較重要也比較複雜的程式,這裡對其代碼做一個分析,希望起到拋磚引玉的作用。


1. Launcher有什嗎? live folder , widget , shortcut , wallpaper ,見 onActivityResult 

2. UI 分成 3 部分: workspace,  slibingdrawer,  deletezone 

3. Menu: 見 onCreateOptionsMenu in launcher.java 

4. launcher 類是個 activity, 遵循 activity 的生命週期。 

5. 資源檔比較多,這裡只關注 Layout 相關的檔案 



程式碼分析的主線: 


1.  瞭解類 

2.  瞭解類的關係 




Launcher工程中的類: 




AddAdapter: 維護了 live fold  , widget , shortcut , wallpaper 4 個 ListItem , 長按案頭會顯示該列表 

AllAppsGridView :顯示 APP 的網格 

ApplicationInfo :一個可開機應用 

ApplicationsAdapter : gridview 的 adapter 

BubbleTextView: 一個定製了的 textview 

CellLayout: 螢幕網格化 

DeleteZone : UI 的一部分 

DragController , dragscroller, dragsource, droptarget: 支援拖拽操作 

DragLayer :內部支援拖拽的 viewgroup 

FastBitmapDrawable :工具 

Folder : Icons 的集合 

FolderIcon: 出現在 workspace 的 icon 代表了一個 folder 

FolderInfo: ItemInfo 子類 

HandleView :一個 imageview 。 

InstallShortcutReceiver , UninstallShortcutReceiver :一個 broadcastrecier 

ItemInfo: 代表 Launcher 中一個 Item (例如 folder ) 

Launcher: Launcher 程式的主視窗 

LauncherApplication :在 VM 中設定參數 

LauncherAppWidgetHost , LauncherAppWidgetHostView ,: Widget 相關 

LauncherModel : MVC 中的 M 

LauncherProvider :一個 contentprovider ,為 Launcher 儲存資訊 

LauncherSettings: 設定相關的工具 

LiveFolder , LiveFolderAdapter , LiveFolderIcon , LiveFolderInfo : livefolder 相關 

Search : 搜尋 

UserFolder , UserFolderInfo :檔案夾包含 applications ,shortcuts 

Utilities: 小工具 

WallpaperChooser :選擇 wallpaper 的 activity 

Workspace: 螢幕上的一塊地區 

widget : 代表啟動的 widget 執行個體,例如搜尋 



Launcher中類的關係,見(由於篇幅有限,不能把所有關係一一畫出)。 





總結 

1) Launcher中實現了MVC模式(M:launchermode , V:draglayer ,C: launcher),以此為主線,可以得到 Launcher對各個組件管理的細節(如drag的實現)。 

2) 如果開始就深入各個實現細節則會發現千頭萬緒,很難有個清醒的方向。




本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/fly123456/archive/2010/10/12/5935589.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.