日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Android开源项目分包方式学习(eoe、oschina、github)

發(fā)布時間:2023/12/20 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开源项目分包方式学习(eoe、oschina、github) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

總感覺Android中關(guān)于分包的文章很少,或者幾乎可以說沒有。但是合理地分包,又可以使整個項目模塊化,減少包與包之間的依賴,讓整個項目的框架更加清晰,更利于后續(xù)功能的拓展。

因為沒有相關(guān)的文章,所以這里曬出三款開源項目的分包方式,供大家學(xué)習(xí)。

(一) eoe社區(qū) Android 客戶端

src

├ cn.eoe.app --存放程序全局性類的包?
├ cn.eoe.app.adapter --存放適配器的實現(xiàn)類的包?
├ cn.eoe.app.adapter.base --存放適配器基類的包?
├ cn.eoe.app.biz --存放DAO類的包?
├ cn.eoe.app.config --存放常量,配置和api接口等類的包?
├ cn.eoe.app.db --關(guān)于sqlite操作相關(guān)的類的包?
├ cn.eoe.app.db.biz --詳細(xì)的增刪改查類的包,暫時僅有一個類?
├ cn.eoe.app.entity --實體類包?
├ cn.eoe.app.entity.base --實體類基類包?
├ cn.eoe.app.https --網(wǎng)絡(luò)訪問相關(guān)類的包?
├ cn.eoe.app.indicator --導(dǎo)航相關(guān)的類包?
├ cn.eoe.app.slidingmenu --滑動菜單相關(guān)類包?
├ cn.eoe.app.ui --界面相關(guān)的包,activity的類?
├ cn.eoe.app.ui.base --activity相關(guān)的基類包?
├ cn.eoe.app.utils --工具類包?
├ cn.eoe.app.view --Fragment相關(guān)類的包?
├ cn.eoe.app.widget --自定義view組件包

?

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

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

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

src

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

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

├net.oschina.app — APP啟動及管理包

├net.oschina.app.adapter — 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控件包

點評:開源中國的分包方式簡單明了,它似乎將大量的業(yè)務(wù)邏輯放在了UI層,不過項目的業(yè)務(wù)邏輯不多的情況下,這倒也沒有什么。Adatper層是UI層的數(shù)據(jù)源。Bean層中提供了各種實體類。oschina中沒有數(shù)據(jù)庫訪問相關(guān)的包。

(三) github Android 客戶端

由于我沒有詳細(xì)讀過github的源代碼,并且網(wǎng)上也沒有關(guān)于github的Android客戶端的分包的解析文章,因此下面github分包的解釋可能有誤。

├─com.github.mobile.accounts --賬戶相關(guān)類

├─com.github.mobile.core –業(yè)務(wù)層,實現(xiàn)整個客戶端中的主要業(yè)務(wù)邏輯

│ ├─code

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

├─com.github.mobile.persistence –數(shù)據(jù)持久化層

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

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

│ ├─code

│ ├─comment

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

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

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


文中涉及的開源項目

eoe android客戶端

github Android客戶端

oschina android 客戶端


轉(zhuǎn)載于:https://my.oschina.net/u/1765449/blog/261181

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Android开源项目分包方式学习(eoe、oschina、github)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。