Jamendo是一個開源的在線音樂播放器。項目結構如圖所示:
粗略介紹每個包作用:
com.teleca.jamendo.widget.*:用戶自定義組建,主要包括進度條、錯誤條、專輯倒影圖片控件、以及相關接口。
com.teleca.jamendo.util.:用戶自定義視圖切換器、圖片緩存、自定義觸摸監聽器(播放進度)、以及分享,計算音樂時間,設置語言等工具幫助類。
com.teleca.jamendo.util.download.:提供下載遠程音樂任務,以及相關接口回調,同時定義操作數據庫相關接口,以及觀察類。
com.teleca.jamendo.service.*:音樂的播放服務,以及下載服務。
com.teleca.jamendo.media.*:音樂播放器引擎以及相關接口(自定義類繼承播放器MediaPlayer)。
com.teleca.jamendo.gestures.*:讀取raw文件存取手勢類,以及相關接口,同時自定義手勢識別界面,用於手勢操作播放音樂。
com.teleca.jamendo.dialog.*:自定義對話框基類,以及相關對話框。
com.teleca.jamendo.db.*:sqlite數據庫操作相關類以及方法,包括相關基類,泛型。
com.teleca.jamendo.api.*:提供對象實體,歌曲、歌曲條目列表,歌曲專輯,歌手,以及相關IO異常處理等
com.teleca.jamendo.api.impl.*:通過服務端解析JSON格式數據並轉化為相應實體對象,列表等。
com.teleca.jamendo.api.util:提供訪問網絡之工具類,url請求緩存,封裝http請求等等。
com.teleca.jamendo.adapter.*:提供適配ListView列表適配器基類,以及相關子類.
com.teleca.jamendo.activity.*:提供操作界面activity,歡迎頁,關於,播放瀏覽,播放,以及搜索,顯示歌曲等界面。
當然我們可以粗略知道UI布局文件夾,包括UI布局,菜單布局,動畫,xml(設置界面),值文件(不同語言版本),raw(手勢文件)
首先我們對其包結構以及相關包用途有個大致的了解,接下來,再慢慢來看看這些界面,做到心中有數。
首先是:軟件說明,以及歡迎界面。
然后是操作主界面(有音樂文件前,SD卡保存音樂文件后):
然后是設置以及關於,播放界面
搜索、專輯列表、播放列表,下載等界面
好了,就先到這里,接下來再慢慢根據UI分析布局,以及相對應的activity,以及一些主要類方法,因為很多內容都重復了,因此有一些基本的類就不再分析,大家可以用舉一反三,我們這里主要是根據UI,以及模塊功能分析,主要是按全局角度。