Android laucher總結

來源:互聯網
上載者:User

在android上做了一個月左右的launcher方面的項目,伴隨著R3的發出,基本進入維護階段,由於大部分時間我都是在android提供的源碼Launcher中做修改,所以對它的整體基本有了概念,現在開始做一些細節上的總結,按照國際慣例和從整體到局部的原則,我還是先對Launcher做一個整體上的描述:

從manifestl開始看起,先是一些許可權方面的設定(補充加上:<uses-sdk android:minSdkVersion="7" />),而後即是一個application(補充加上:android:debuggable="true"),接著是兩個activity,一個就是我們的主程式Launcher了,另一個從名字上看也很清晰WallpaperChooser(用於尋找列出所有帶有特定標記名稱的圖片,並將他們的傳回值作為背景圖 ---> 我對這裡進行了修改,通過startActivityForResult函數來讓他們返回resId,以此作為All
Progaram Page的背景)。

再往下是兩個Receiver用於安裝和卸載shortcut,這裡從名字上看我們不太清楚這裡的shortcut到底指什麼,經過我的嘗試,這裡的shortcut主要並不是指那些application的icon,而是如:開啟瀏覽器,建立一個網頁的捷徑到案頭。這裡的捷徑的建立和卸載便是由這兩個receiver來控制,從他們對應的Java檔案可以看出功能。要注意的是,當manifest中做了receiver的配置時,那麼程式啟動時,receiver就已經伴隨運行了。

最後一部分是一個provider,熟悉android的朋友都知道這是用於管理資料庫,而在Launcher中,有專門的一個類LauncherProvider用於提供對資料庫的具體操作,而資料庫的建立和擷取還是要由SQLiteOpenHelper來完成,這一部分我會在後面慢慢加入。好,現在對manifest的部分已經基本總結完畢,接著來看main.xml(launcher.xml):

它的層次關係非常易讀:DragLayer ---> WorkSpace ---> CellLayout

                                              ---> DeleteZone

                                              ---> MenuBar

                                              ---> ProgramPage

DragLayer對所有位於其中的DragTarget的移動、繪製進行攔截處理(主要是針對螢幕上的Widget、Shortcut、Folder,因為我這裡是不存在Shortcut和Folder的,所以只針對Widget)。

WorkSpace則是一個很關鍵的類,主要是處理螢幕的切換中相關操作(如壁紙的移動,計算移動距離等)、為當前螢幕添加Widget的處理、長按當前螢幕的處理(這裡的setLongclick關係到Launcher等類)和在當前螢幕上尋找空白欄框子用於添加Widget,它包含了5個CellLayout分別代表5個螢幕,CellLayout中定義了橫豎軸各有多少個空格,並用數組儲存了所有的空白欄框子,當佔用一個後就將之對應的Occupied數組位置為true。當然CellLayout中還有許多其他的操作,這裡我們先大概說明一下就好。

MenuBar這個就很簡單了,由於項目需要,我在螢幕下方添加了MenuBar主要用於添加Shortcut,那麼它的操作當然主要就是處理表徵圖的添加和移動,儲存和刪除。

ProgramPage用於顯示所有程式並可以進行分類儲存,同樣移動、添加、切換、儲存、刪除。這個ViewGroup其實是包括兩部分,一個是ProgramCatagoryList,一個是AllProgramPage。

一個Catagory對應一個AllProagramPage。

這裡我已經對manifest和main.xml(launcher.xml)分析完畢,後面的內容則開始對細節上的問題做詳細的闡述。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.