BasePrj使用說明

1、概述

BasePrj包含兩部分內容:一是公共資源業務等;一是註冊登錄個人中心模塊。

其中使用到的第三方庫包括:時間傳遞機制:EventBus;json數據解析:Gson;數據庫模塊litepal,gif圖片顯示:giflib等。

當然這裏還用到了之前提到的VolleySupportFrescoSupport.

2 公共業務

該模塊位於`com.het.common下.以下是模塊UML圖:
這裏寫圖片描述

其中,AppContext(圖中未給出)是改模塊全局註冊類,包含一個初始化方法init,初始化了volley,Fresco,litepal等模塊。建立使用此模塊時,在你的應用的application的onCreate中調用此方法(只調用一次)

NetworkBuilder和IBaseNetwork是對外提供的網絡請求基類,用於處理網絡訪問。HetNetworkBuilder和IHetBaseNetwork是針對Het服務器業務的封裝。
其中build部分參數說明詳見註釋,很清晰。

對於服務器數據的解析,提供了接口IJsonCodeParse。目前有兩個實現

BaseJsonCodeParse:對服務器返回的數據未做處理,直接返回。
HetJsonCodeParse:解析了json最外層的RetModel,處理了token相關的錯誤,並根據code區分業務是成功還是失敗。

MulipartBaseNetwork是針對上傳流的封裝。

NetworkQueueManager用於管理請求隊列,協助處理token異常下刷新token等問題。內部包含方法cancelAndRemoveByTagcancelAndRemoveByNetwork用於取消請求。

TokenManager 用於全局管理token,所有的token處理操作,包括登陸時設置,退出登陸時候取消(詳細見後面登錄公共模塊分析),強烈建議統一走此入口。

模塊中包含了utils包,全局工具類。還包含了resource,全局公共控件庫。

2.1 公共模塊使用說明

接口使用方式示例:

  public static void login(ICallback callback, String account, String password, int id) {
        TreeMap<String, String> params = new TreeMap<String, String>();
        params.put(ParamContant.User.ACCOUNT, account);
        params.put(ParamContant.User.PASSWORD, SecurityUtils.encrypt4login(password, AppContext.getAppSecret()));
        new HetNetworkBuilder(new HetBaseNetwork()).setCallBack(callback)
                .setParams(params).setUrl(ComUrls.SERVER_HOST + AccountUrls.Login.LOGIN).setMethod(Request.Method.POST).setId(id).setNoAccessToken().setSign().setHttps().commit();
    }

對於het業務的請求,使用默認的HetJsonCodeParse解析就好,會最終回調callback接口給ui層處理業務邏輯

對於其他第三方的請求,可以參考HetJsonCodeParse,完成解析和回調。

這一層主要是處理網絡請求,時序圖如下:

這裏寫圖片描述

3 賬號體系

這部分請豔國更新和完善,一下爲簡單介紹:

該模塊處理了用戶註冊登錄找回密碼等內容(包括第三方登錄部分)

提供了幾個對外接口:

LoginManager:登錄的全局管理類,包含以下:
    HetLogin het登錄
    SinaWeiboLogin  新浪微博第三方登錄
    WeiXinlogin 微信第三方登錄

UserManager 用戶信息管理全局類:所有的用戶操作走此接口。

目前登錄/註冊等完成後都會初始化房間信息,好友信息(從服務器獲取)。可以直接使用。

4 好友模塊

friend包下

提供了一個FriendManager全局類,用於管理好友。強烈建議所有好友操作的入口爲此類。

當好友信息變更的時候,會拋出eventbus事件FriendChangeEvent;當有選擇好友列表中的好友事件時,會拋出eventbus事件FriendChooseEvent;需要捕獲此類事件的activity可以通過如下代碼獲取事件監聽回調。

public void onEventMainThread(FriendChangeEvent event){
    //處理業務邏輯UI線程        
}

public void onEvent(FriendChooseEvent event){
    //處理業務邏輯非UI線程        
}

5 房間模塊

room包下

提供了一個RoomManager全局類,用於管理房間信息。強烈建議所有房間操作的入口爲此類。

當房間信息變更的時候,同樣包含兩個eventbus事件RoomChangeEvent,RoomChooseEvent,用法同上。

6 個人中心模塊

這部分請豔國更新和完善。

7 源碼和maven

源碼地址爲:見svn的maven目錄。
svn請使用測試版地址:compile ‘com.android.common:BaseProject:1.2.0-SNAPSHOT’,待測試版本穩定後會統一切換正式版。

發佈了46 篇原創文章 · 獲贊 66 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章