Android開源項目分包方式學習(eoe、oschina、github)

(一) eoe社區 Android 客戶端

srcandroid

├ cn.eoe.app --存放程序全局性類的包 
├ cn.eoe.app.adapter --存放適配器的實現類的包 
├ cn.eoe.app.adapter.base --存放適配器基類的包 
├ cn.eoe.app.biz --存放DAO類的包 
├ cn.eoe.app.config --存放常量,配置和api接口等類的包 
├ cn.eoe.app.db --關於sqlite操做相關的類的包 
├ cn.eoe.app.db.biz --詳細的增刪改查類的包,暫時僅有一個類 
├ cn.eoe.app.entity --實體類包 
├ cn.eoe.app.entity.base --實體類基類包 
├ cn.eoe.app.https --網絡訪問相關類的包 
├ cn.eoe.app.indicator --導航相關的類包 
├ cn.eoe.app.slidingmenu --滑動菜單相關類包 
├ cn.eoe.app.ui --界面相關的包,activity的類 
├ cn.eoe.app.ui.base --activity相關的基類包 
├ cn.eoe.app.utils --工具類包 
├ cn.eoe.app.view --Fragment相關類的包 
├ cn.eoe.app.widget --自定義view組件包git

 

├ com.google.zxing.camera --第三方定義,控制攝像頭包 
├ com.google.zxing.decoding -- 二維碼圖像解碼包 
├ com.google.zxing.view -- 自定義View,控制拍攝取景框和動畫等github

點評:config層是一個全局均可以訪問到的配置層。另外一個就是dao層,這層主要用來從json字符串中將數據提取出來。其餘的也就是比較常見的adatper、ui等層。sql

(二) 開源中國社區 Android 客戶端

src數據庫

├com.weibo.net — 新浪微博SDK源碼包json

├greendroid.widget — 快捷菜單欄組件(國外UI庫GreenDroid)api

├net.oschina.app — APP啓動及管理包網絡

├net.oschina.app.adapter — APP列表適配器包app

├net.oschina.app.api — API訪問包工具

├net.oschina.app.bean — APP實體包

├net.oschina.app.common — APP工具包

├net.oschina.app.ui — APP界面包

├net.oschina.app.widget — APP控件包

點評:開源中國的分包方式簡單明瞭,它彷佛將大量的業務邏輯放在了UI層,不過項目的業務邏輯很少的狀況下,這倒也沒有什麼。Adatper層是UI層的數據源。Bean層中提供了各類實體類。oschina中沒有數據庫訪問相關的包。

(三) github Android 客戶端

因爲我沒有詳細讀過github的源代碼,而且網上也沒有關於github的Android客戶端的分包的解析文章,所以下面github分包的解釋可能有誤。

├─com.github.mobile.accounts --帳戶相關類

├─com.github.mobile.core –業務層,實現整個客戶端中的主要業務邏輯

│ ├─code

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

├─com.github.mobile.persistence –數據持久化層

├─com.github.mobile.sync –同步信息層(不肯定是否是這個做用)

├─com.github.mobile.ui –界面層

│ ├─code

│ ├─comment

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

└─com.github.mobile.util –實用工具層

點評:github的開源客戶端很明顯地實現了UI和業務邏輯的分離。比較有趣的是,github項目中沒有獨立一個adapter層,而是直接放在了UI層。業務邏輯被大量地放在com.github.mobile.core,這個層裏面針對每個界面都單獨地創建了文件夾,界面中的業務邏輯就大量地分佈在這些文件夾中。我感受,跟一個界面相關的業務邏輯直接集中在一個文件夾中,而不是分散在各個不一樣的包中,其實挺方便的。

文中涉及的開源項目

eoe android客戶端

github Android客戶端

oschina android 客戶端

相關文章
相關標籤/搜索