架構(gòu)分層:應(yīng)用/模塊層、應(yīng)用框架層、通用技術(shù)庫、性能優(yōu)化等。
1.應(yīng)用/模塊層:App+Module+Core。
App:主應(yīng)用,可按需集成一個(gè)或多個(gè)子模塊。
Module:子系統(tǒng)或應(yīng)用模塊,也可以打包成獨(dú)立App。如CMS、Chat、音視頻會(huì)議、云盤等
Core:供App和Module公用的平臺(tái)核心庫。包括:1.公共接口、實(shí)體類、核心api接口及實(shí)現(xiàn)、aidl接口及服務(wù);2.注冊(cè)注銷、選人、用戶信息頁、登錄、子系統(tǒng)應(yīng)用啟動(dòng)、自動(dòng)更新等。
2.應(yīng)用框架層 App Framework Layer
BaseUI:通用UI庫,string.xml、適配的dimens.xml、style.xml、toast、alertdialog、appacativity、baseacitivity、baseframment、UIWidget(自定義UI組件)等
CommonUtils:通用工具庫,自行封裝的一些必要的工具類。
Auth:身份驗(yàn)證、登錄及第三方登錄方案的封裝。
Router:管理界面跳轉(zhuǎn),引用第三方或自行封。
權(quán)限框架: Permission4M。
NetUtils:Httputils(通用網(wǎng)絡(luò)客戶端組件:請(qǐng)求、上傳、下載、Https,可引用Retrofit2、OkHttp3等)、SocketUtils(常規(guī)Socket通訊和SSL安全的Socket通訊的封裝)、BleUtils(藍(lán)牙通訊庫的封裝)。
DBUtils:封裝數(shù)據(jù)庫工具庫SqlUtils或引入第三方庫GreenDao、Ormlite等。
PreferenceUtils:必要的封裝,便于使用。
ImageLoader方案:引入第三方Fresco、Glide、ImageLoader,可適當(dāng)封裝。
Json解析:使用第三方庫Gson、Jackson等。
Eventbus:事件總線組件??梢肊ventBus、OTTO等。
性能監(jiān)控框架:使用等LeakCanary、BlockCanary等。
其他:Dagger2、RxJava、RxAndroid。
3.通用業(yè)務(wù)組件層:Common Business Libs
音頻、視頻、二維碼、LBS、支付、社會(huì)化分享、即時(shí)通訊等組件封裝。?
音視頻業(yè)務(wù):Audioplayer、Audiorecorder、Ijkplayer
第三方登錄和分享的封裝:socialsdk
第三方sdk及封裝: PaySDK、LBSSDK、Zxing