Android技术选型

软件架构

MVCMVPMVVM
介绍Model:数据结构相关的类
View:XML文件
Controller:Activity
view:Activity,Fragment,Adapter等直接和UI相关的类
Model:数据结构和操作相关的类
Presenter:作为View与Model交互的中间纽带,处理与用户交互的业务逻辑
iew interface:需要View实现的接口,View通过View interface与Presenter进行交互
MVVM可以算是MVP的升级版,Model和View类似MVP
VM是ViewModel的缩写,ViewModel可以理解成是View的数据模型和Presenter的合体
优点代码结构简单view层和model层分离
可将一个Presenter用于多个视图
方便单元测试
用户直接交互的是View
View和ViewModel是多对一的关系
View和ViewModel的双向数据绑定
缺点xml作为view层,可控性较差
view层和model层存在耦合
Activity代码臃肿
由于通过接口进行控制,接口粒度不好控制
UI驱动,要考虑线程及生命周期
V层和P层存在耦合
复杂业务也会导致P层代码臃肿
由于去除了Presenter层,会导致view层依然过重

网络加载框架

HTTP客户端

HttpClientHttpURLConnectionOkHttp
介绍Apache的一个三方网络框架一个多用途、轻量级的http客户端Square 公司封装的一个高性能 http 请求库
优点网络请求做了完善的封装,api众多,用起来比较方便,开发快。实现比较稳定,bug比较少由于API比较简单,使得我们可以更加容易的去使用和拓展它链接复用
Response 缓存和 Cookie
默认 GZIP
请求失败自动重连
DNS 扩展
Http2/SPDY/WebSocket协议支持
缺点由于其api众多,是我们很难再不破坏兼容性的情况下对其进行扩展,在android5.0被废弃,6.0逐渐删除它对网络请求的封装没有HttpClient彻底,api比较简单,用起来没有那么方便okhttp请求网络切换回来是在线程里面的,不是在主线程,不能直接刷新UI,需要我们手动处理。封装比较麻烦

总结:Android2.3以前适合使用HttpClient,而2.3以后适用于OkHttp,HttpURLConnection在Android4.4以后已将底层改用OkHttp,但是OkHttp使用时需要进行一层封装

封装框架

volleyRetrofit
介绍一个简单的异步http库Square 公司出品的默认基于 OkHttp 封装的一套 RESTful 网络请求框架
优点支持图像加载
自带缓存,支持自定义请求
轻量级网络交互,适合大量的,小数据传输。
彻底解耦
默认使用 OkHttp ,性能上要比 Volley 占优势
支持同步、异步和RxJava
缺点不支持 post 大数据,不适合上传文件
图片加载性能一般
比较高的门槛

总结:volley使用简单,适合用于多次的小数据传输;Retrofit适用范围较广,API使用简单,但有一定使用门槛,配合RxJava使用更佳

图片加载框架

GlidePicassoFresco
介绍2014年 Google 员工的开源项目2013年 Square 开源的项目2015年Facebook开源的图片框架
优点可接受Activity/fragment的context,控制生命周期
支持git
支持okhttp,Volley
内存友好
2级缓存
自带统计监控功能
使用复杂的图片压缩转换来尽可能的减少内存消耗
图片的渐进式呈现
图片存储在安卓系统的匿名共享内存,无OOM
很好的支持 GIF
自定义居中焦点
缺点大小和方法数均大于Picasso(500k和2678)不支持git
无自动控制生命周期
2级缓存
包较大(2~3M)
使用复杂

总结:Glide除了包较大几乎拥有Picasso的所有优点,比较适合非专业的应用中的图片处理;Fresco拥有前面两个库的优点,但它的包很大,且使用门槛较高,比较适用于图片需求较大的应用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值