前言:
一天跟朋友吃饭听说他准备写书,分享他多年的工作技巧以及经验,我不禁心中滂湃写一篇微博总结下工作经验和自己开发的Easy框架(之前有写过一篇但不完整)。干一行爱一行从工作中找到乐趣找到成就感,我个人喜欢思考探索钻研,总结开发经验写出Easy框架和一些UI控件,并且用于开发中让开发简单、简洁、灵活。当然很多框架是很大,有的几十M也有几百M,Easy框架不到1M只有几十K,麻雀虽小五脏俱全,以下详细说明框架和简单说下控件。
一、网络请求框架(基本数据、文件上传下载)
1、基本数据请求
a.要求简便灵活性。记得刚接触Java那时写网络请求参数时用双引号写死,然后手动进行格式传递到服务端,不但效率慢而且容易出错,维护还很麻烦。Java开发要注重面向对象思想,我看到过有些人写的对象功能掺和其他不相关的功能,甚至一个方法掺和他不相关的逻辑;android开发不单单只是注重页面UI开发,更重要的是注重Java思想,不但要会简单面向对象继承抽象接口多态等,也要学会多种设计模式算法等。多说了两句,下面看下请求的参数对象:
b.要求效率。App前端界面要美观外性能要求也是至关重要的,其中大多App网络数据请求必不可少,XML格式请求逐渐淘汰,目前Json格式比较XMl更有优势,数据格式比较简单,易于读写,格式都是压缩的,占用带宽小(当然要做到更小带宽的是二进制)。服务器响应速度前端无法优化,唯一可以优化的是返回时数据解析,下面Easy框架Http请求模块数据解析时间测试。(筛选EasyHttp日志)
c.面向对象思维。Java是面向对象,那就该用面向对象思想进行开发。在工作中发现有些人还是使用面向过程思维进行开发,而且很多都是copy+copy,永远是代码的搬运工,不但使代码越来越繁琐越来越难维护,而且没有技术进步。
请求实体对象信息:
新建EasyHttp实例或者继承,执行start方法开始执行网络请求
请求数据Log日志打印的信息:
返回数据Log日志打印的信息:
下图调试看到解析后数据完成的对象值,接着就可以用对象更新UI了。
返回的实体对象
调试信息如下:
好了,请求示例就这样子。接下来说下Easy框框Http请求模块使用。
第一,首先是请求参数,上面也请求实体对象信息截图,接下来再来一张更详细的说明,例如新建一个类SampleRequest如下图:
例如,发起网络请求
SampleRequest request = new SampleRequest();
request .setId1("1111");
request .setId2("2222");//等
EasyHttp http = new EasyHttp();
http.start(request );
如请求的Jsongets如下:
EasyHttp: 网络请求:POST http://xxx.xxxx.com/xxx/request
请求头部:Content-Type=application/json
请求参数:{"id1":1111,"id2":2222,"id3":"3333","name1":[4444,5555],"name2":{"first":"6666","last":"7777"},"names":[{"first":"8888","last":"9999"},{"first":"aaaa","last":"bbbb"}]}。请求字段值为null时不会作为字段传给服务端。
请求方式:上面是Post请求(@EasyHttpPost),如果是Get请求就要使用@EasyHttpGet。
请求地址:UrlBase = “http://xxx.xxxx.com/xxx.request”,
有时候请求字段名称
二、数据库框架SQL
三、Logcat小工具
四、ViewBind工具
五、UI部分
- RecycleView+Adapter
- ViewPager+Fragment+TagBar
- Dialog、PopupWindow
- TimePick
- ShapeView
- SharedPreferences
其他自定义控件