Jokerlibrary——Android應(yīng)用開(kāi)發(fā)框架

1.描述
經(jīng)過(guò)工作的沉淀,自己一直希望能夠按自己的想法,封裝一個(gè)屬于自己的Android開(kāi)發(fā)框架。因?yàn)槠綍r(shí)工作很忙,所以斷斷續(xù)續(xù)地經(jīng)過(guò)了兩個(gè)月,利用空閑時(shí)間,終于完成第一版的開(kāi)發(fā)框架Jokerlibrary。以下是Jokerlibrary的使用說(shuō)明以及設(shè)計(jì)思想,我會(huì)將其發(fā)不到JCenter方便大家引用??蚣苤皇浅醪酱罱?,還有很多細(xì)節(jié)上需要調(diào)整,希望大家給意見(jiàn)和建議。
2.介紹
框架的結(jié)構(gòu)設(shè)計(jì)以mvp模式為基準(zhǔn),類封裝為主。以下是框架目錄結(jié)構(gòu)。核心部分在http這個(gè)文件夾里,里面包含封裝好的http訪問(wèn)類。Jokerlibrary底層是基于Retrofit2的二次封裝,支持常用get post 請(qǐng)求,支持上傳下載文件,加入之前寫的PopularRefreshLayout 兼容性不錯(cuò)的上拉下載組件。


3.思路介紹
1.底層訪問(wèn)網(wǎng)絡(luò)先初始化一個(gè)RetrofitClient單例,所有網(wǎng)絡(luò)接口調(diào)用,都通過(guò)該對(duì)象實(shí)現(xiàn)。
2.定義Retrofit的反射接口類BaseInterface,常用get ,post 有參無(wú)參方法,文件上傳下載方法
3.定義對(duì)外訪問(wèn)網(wǎng)絡(luò)公用類HttpResquestService,定義post、get 方法,請(qǐng)求參數(shù)封裝在RequestParam類里面
4.重寫refrofit 回調(diào)的Callback<ResponseBody> 對(duì)應(yīng)的 onSuccess,onFailure方法,處理接口返回的數(shù)據(jù),封裝數(shù)據(jù),生成對(duì)應(yīng)響應(yīng)HttpResponse對(duì)象。
5.定義BasePresenter基類,繼承HttpResquestService,這樣,之后的P類只要繼承BasePresenter就可以獲得訪問(wèn)網(wǎng)絡(luò)的方法。


4.輔助功能
定義bindViewAClick 方法,根據(jù)類view變量名 自動(dòng)完成初始化對(duì)象,減少findbyId編寫,并且自動(dòng)根據(jù)注解click設(shè)置view 的OnClick事件,減少setClickListener設(shè)置。


4.使用方式
1.gradle 引用compile 'com.awarmisland.android:jokerlibrary:2.0.1' ,然后在application中配置jokerlibrary context 和 接口訪問(wèn)基礎(chǔ)路徑
2.設(shè)置present類,定義訪問(wèn)接口方法,初始化RequestParam,構(gòu)造函數(shù)RequestParam(String url,String action) 設(shè)置接口路徑,對(duì)應(yīng)發(fā)起網(wǎng)絡(luò)標(biāo)記action
3.通過(guò)返回httpResponse action 區(qū)分同類發(fā)起網(wǎng)絡(luò)請(qǐng)求,body中返回接口數(shù)據(jù)
4.view層,通過(guò)反射機(jī)制,簡(jiǎn)化view的初始化和設(shè)置onClick事件,
(1)繼承BaseActivity 只要定義全局變量并且變量名和xml設(shè)置view id一致就可以自動(dòng)完成實(shí)例化
(2)通過(guò)注釋@Click 程序會(huì)自動(dòng)設(shè)置view的onClick事件,在繼承OnClick事件中 通過(guò)View 的id 區(qū)分view的點(diǎn)擊的點(diǎn)擊事件
(3)如果不想寫注釋,可以通過(guò)設(shè)置viewId名_onClick 程序會(huì)自動(dòng)findById 并且setOnClick綁定定義的事件,例如如下圖所示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容