微前端架构如何改变企业的开发模式与效率提升
950
2022-10-30
CFramework 基于DataBinding的一个基本框架,网络层使用okHttp
CFramework的介绍
基于DataBinding的一个基本框架,网络层使用okHttp。 第一次写框架,定有不妥之处,望大家留言指出。 框架介绍也写的一般,比较乱。会慢慢更正。 outlook:guoshichaocc@live.com gmail:guoshichao-@gmail.com
CFramework的依赖
添加依赖
在Project的build.gradle中添加:
allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } }}
在Module的build.gradle中添加:
dependencies { compile 'com.github.super-cc:CFramework:v1.0.3'}
在Module的build.gradle中android中添加:
dataBinding { enabled = true}
记得添加网络权限
CFramework的使用
基础框架
先看文件夹的图片:
先简单的了解一下:
base:基础的Activity,Adapter,Http等。constant:一些常量。db:数据库操作。lock:给xml设置的类model:DataBinding数据模型network:网络的封装。response:网络请求返回的Json解析类service:服务类。ui:Activity,Fragment,Adapter界面类。utils:工具类。view:自定义控件。
基本使用
在model下新建Demo类:
/** * 创建日期:2017/10/31 on 14:46 * 描述:数据模型Demo,如果需要数据刷新就继承BaseObservable * 作者:郭士超 * QQ:1169380200 */public class Demo extends BaseObservable{ private String name; private String age; public Demo(String name, String age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }}
在model下新建DemoItem类:
/** * 创建日期:2017/10/31 on 16:47 * 描述:在ListView或RecyclerView中使用的数据模型 * 作者:郭士超 * QQ:1169380200 */public class DemoItem { private String name; private String age; public DemoItem(String name, String age) { this.name = name; this.age = age + "岁"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }}
在lock下新建DemoLock类:
/** * 创建日期:2017/10/31 on 13:54 * 描述:DemoLock,处理一些网络数据,和一些逻辑 * 作者:郭士超 * QQ:1169380200 */public class DemoLock extends CBaseLock
新建xml文件activity_demo布局:
在ui下新建DemoActivity类:
/** * 创建日期:2017/10/30 on 13:55 * 描述:一个Demo * 作者:郭士超 * QQ:1169380200 */public class DemoActivity extends BaseActivity { @Override protected void initBinding() { // 数据绑定操作,可以套用代码 ActivityDemoBinding mBinding = DataBindingUtil.setContentView(this, R.layout.activity_demo); DemoLock demoLock = new DemoLock(this, mBinding); mBinding.setDemoLock(demoLock); }}
现在已经可以运行代码。
如果是在Fragment中使用:
/** * 创建日期:2017/10/31 on 14:07 * 描述: * 作者:郭士超 * QQ:1169380200 */public class DemoFragment extends CBaseFragment { @Override protected View initBinding(LayoutInflater inflater, ViewGroup container) { FragmentDemoBinding mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_demo, container, false); DemLock demLock = new DemLock(mActivity, mBinding); mBinding.setDemLock(demLock); return mBinding.getRoot(); }}
如果需要自定义Adapter:
/** * 创建日期:2017/10/31 on 15:44 * 描述:继承BaseListViewAdapter,只需要复写subTask就可以 * 作者:郭士超 * QQ:1169380200 */public class DemoAdapter extends CBaseListViewAdapter{ public DemoAdapter(Context context, List list, int layoutId, int variableId) { super(context, list, layoutId, variableId); } @Override protected void subTask(ViewDataBinding binding, int position) { super.subTask(binding, position); // 这里可以写自己一些自己的逻辑,如果不需要,一般直接用BaseListViewAdapter就可以,不需要再构建 // 写法大概如下 ((ItemDemoBinding)binding).tvName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); }}
依赖使用
如果依赖使用的话,最好是自己再写一个BaseActivity和BaseLock分别继承与CBaseActivity和CBaseLock,在里面写一些自己项目需要的东西。
其它用法
Connection类
这个类是单例模式,调用方法就是:
Connection.getInstance().post();
这个类封装了get,post的方法,主要使用这两种形式就可以。 还有一些其它的post方法(重点的两个):
postLogin:登入时自动保存userId和token。postToken:访问直接带userId和token。
里面还有一个toLogin()方法没有写,这个方法用于如果token不对,跳回到LoginActivit。 这个也可以自己仿照自己封装一个。
RunTime类
这个类是一些运行时的临时数据。 是使用容器实现单例模式。
UrlConfig类
这个类存放项目的接口url。
工具类
主要工具类有:
AppUtil:App相关辅助类。AtyManager:Activity管理类。DensityUtil:屏幕常用单位转换的辅助类。KeyBoardUtil:软键盘相关辅助类。LogUtil:Log统一管理类,上线时把isDebug设置为false。NetUtil:跟网络相关的工具类。ScreenUtil:获得屏幕相关的辅助类。SPUtil:SharePreference存储工具类。ToastUtil:Toast统一管理类。UnicodeUtil:utf-8和unicode汉字码转换器。
工具类的注释很详细,如果需要查看,在代码中import,然后ctrl+鼠标左击,进入代码中查看。
写在后面
自己第一次写框架,写自己的教程,写的很乱,我会慢慢更正。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~