BasePrj使用说明
来源:互联网 发布:js 7.62毫米狙击枪 编辑:程序博客网 时间:2024/05/21 14:56
1、概述
BasePrj包含两部分内容:一是公共资源业务等;一是注册登录个人中心模块。
其中使用到的第三方库包括:时间传递机制:EventBus;json数据解析:Gson;数据库模块litepal,gif图片显示:giflib等。
当然这里还用到了之前提到的VolleySupport和FrescoSupport.
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等问题。内部包含方法cancelAndRemoveByTag
和cancelAndRemoveByNetwork
用于取消请求。
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’,待测试版本稳定后会统一切换正式版。
- BasePrj使用说明
- 使用说明
- 使用说明
- smtp使用说明
- Jam 使用说明
- Itext使用说明
- Exe4j 使用说明
- TortoiseSVN使用说明
- FVWM使用说明
- Jmail 使用说明
- Vi 使用说明
- Eclipse使用说明
- vi使用说明
- ubb使用说明
- sprintf()使用说明
- EhLib使用说明
- Expresso使用说明
- appfusegen使用说明
- mysql字段
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
- hive使用mapjoin
- Day5之运算符相关介绍
- 关于表达式的解析
- BasePrj使用说明
- 分布式搜索Elasticsearch——配置
- JS实现HTML标签转义及反转义
- Intel Edison 移植mjpg-stream
- 【Javascript】什么是事件
- 变量交换
- SVN:安装与配置
- [心得]网页设计十个戒律
- jquery noty插件 消息通知 01