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

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


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


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


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

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

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

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