launcher3主要的類

LauncherModel:他跟數據有關係的,保存了桌面運行時的狀態信息,也提供了讀寫數據庫的API,他有一個內部類LoaderTask,桌面啓動從數據庫中讀取數據並把圖標和小工具添加上去的時候用的就是他。

BubblTextView:圖標都是基於他,他是繼承自TextView

DragController:DragLayer只是一個ViewGroup,具體的拖拽的處理都放到了DragController中。

LauncherAppState:單例模式,主要在啓動的時候用,他初始化了一些對象,並且註冊了廣播監聽器和ContentObserver。

DragView:在拖動圖標的時候跟隨手指移動的View就是他。

DragSource,DropTarget:跟拖拽相關的接口,DragSource表示圖標從哪裏被拖出來,DropTarget表示圖標可以被拖到哪裏去。

Folder:文件夾打開時候那個view。

FolderIcon: 文件夾圖標。

LauncherProvider:數據庫類,Launcher3使用了SQLite,數據庫文件保存在/data/data/包名/databases/launcher.db 下

ItemInfo:運行時保存了桌面上每個項目的信息,包括圖標在第幾屏,第幾行第幾列,高度寬度等信息,每一個ItemInfo對象都對應着數據庫中的一條記錄。在Launcher3源碼路徑下,會有很多以Info結尾的類,這些類都是ItemInfo的子類,具體代表了桌面上的某個項目。比如說FolderIcon和FolderInfo是對應的,BubbleTextView和ShortcutInfo是對應的,AppWidgetHostView和LauncherAppWidgetInfo是對應的。有了對應關係,可以這樣通過view獲取ItemInfo對象:
ItemInfo info = (ItemInfo)bubbletextview.getTag();
這樣這裏的info其實就是ShortcutInfo對象了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章