android故事累积Android知识

BiliBili Android第三方——第1步

2016-02-06  本文已影响1078人  HaKu

Android开发新手,若有错误请指出,谢谢~

blog
github
简书


架构选型

个人感觉现在的软件开发已经主要靠合理的利用、组合各种轮子来满足业务需求(没有轮子就要自己造轮子)。
我使用的是 Retrofit + Fresco + RxJava + ButterKnife + Gson,相信Android开发人员对这些第三方库都很熟悉,如果技能树点的时其他路线的可以看这篇文章

网络请求

Retrofit的使用对于如今大行其道的RESTFUL的API来说简直就是舒服的不能再舒服了,记得在某处看到过一句话:

如果后台使用标准的Restful API,那么使用Retrofit来处理网络请求,网络请求相关的代码量将减少80%

Android网络请求库根据谷歌官方推荐即可,前段时间是Volley,现在是okHttp,使用Retrofit时默认选取okHttp作为底层网络请求实现。

图片加载

图片加载库算是比较难以取舍的,之前流行的是UIL,而现在是Glide、Picasso和Fresco,在本人的Github库中使用后三者方式加载图片,可以看出三种都能较好满足需求,但同时也能明显感觉到Fresco的响应最快,并且Fresco支持的功能最多。有利就会有弊,Glide和Picasso都是可以直接依赖普通的ImageView进行使用,而Fresco则需要使用其自定义的SimpleDraweeView及其相关属性对ImageView进行操作,如scaleType等属性。对于没有特殊要求或限制的项目,本人建议使用Fresco作为图片加载库。

RxJava

使用RxJava处理复杂的异步逻辑可以说是异常的舒服,看着之前用Handler实现功能的代码简直惨不忍睹。以一个简单的Banner(图片轮播)为例,使用RxJava实现无论从代码量还是逻辑上都是更加精简、清晰。使用timer、map、flatMap等各种操作符,非常容易实现想要的异步功能。其实之前的网络访问、图片加载只需要自己封装一层,即可按照自己舒服(习惯)的方式进行操作,而RxJava则是一种独立的编程风格,刚开始接触可能还需要适应一段时间,本人用了2个月感觉仍在磨合期,但却是义无反顾的推荐用其处理异步逻辑。并且,RxJava可以和Retrofit无缝链接,直接异步请求接收数据,回调后进行一系列的异步处理,并能够智能各处理步骤所处的线程,UI的归UI、计算的归计算、IO的归IO,大大提升App的流畅度。

其他使用

未使用

总结

个人对架构的理解、甚至对编程的理解就是尽量少写代码,或者短期内看上去会增加些代码量,但长期会减少正体的代码量。目前,Android开发仍是软件开发最热的部分之一,虽然已有许多成熟的框架给我们使用,但仍有更大量的需求待大家完善、开发(指开源、成熟的解决方案),如复杂动画的实现。本篇文章主要介绍自己在这个项目中使用到的第三方库,希望能够帮助大家。

参考文章
上一篇下一篇

猜你喜欢

热点阅读