Android技术选型

软件架构

MVC MVP MVVM
介绍 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客户端

HttpClient HttpURLConnection OkHttp
介绍 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使用时需要进行一层封装

封装框架

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

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

图片加载框架

Glide Picasso Fresco
介绍 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拥有前面两个库的优点,但它的包很大,且使用门槛较高,比较适用于图片需求较大的应用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容