首页 存档 技术 查看内容

带你学开源项目:Meizhi Android之RxJava

2018-3-30 13:00 |来自: 互联网 325 0

摘要: 快,点击蓝色“字体”关注这个公众号,一起涨姿势 大幅提高自身技术实力最有效的途径之一就是学习世界级优秀开源项目的精髓,而本人的《带你学开源项目》系列文章将持续更新,对当前Android开发界最优秀的开源项目进 ...

快,点击蓝色“字体”关注这个公众号,一起涨姿势


大幅提高自身技术实力最有效的途径之一就是学习世界级优秀开源项目的精髓,而本人的《带你学开源项目》系列文章将持续更新,对当前Android开发界最优秀的开源项目进行深入分析.


零、背景


比起阅读枯燥的技术文档,独自苦苦摸索新技术的基本用法,还有一种更好更快速也更有效的提高自身技术的方法,那就是阅读学习优质的开源项目,通过仿写、练习最终达到理解,潜移默化提升自身编程技能。


《带你学开源项目》系列将带领你深入阅读及分析当前流行的一些开源项目,并针对其中采用的新技术与精妙之处进行细致的阐述,以期让你快速掌握Android开发中的多种强大技能点。


一、本期开源项目Meizhi Android


本次的开源项目选择了Meizhi Android,本文主要介绍该项目中采用的RxJava、Retrofit两种技术,这二者在Android开发者中非常流行,不仅能够优美地处理异步回调,而且能提高代码的性能和稳定性。而Meizhi Android中较好的覆盖了二者的多种应用场景,能够给多数开发者一个全面的学习。


下面本人会对原项目的代码进行详细的介绍,同时为了读者看的清楚其中的逻辑关系,可能会做一定调整以帮助读者理解,比如把lambda表达式还原成普通java函数形式,以避免很多读者对lambda并不熟悉。


二、原项目分析


0. clone项目到本地


第一步当然是把项目clone下来,编译,运行。有兴趣的同学可以执行这一步。


1. 添加Stetho抓包工具


首先,由于我们要分析retrofit,所以为了查看app的网络请求,有兴趣的同学可以手动在代码里添加Stetho。Stetho是Facebook推出的一款黑科技,能够在chrome里轻松查看app所有的网络请求,比起iOS需要装个Charles查看http请求方便多咯。



Stetho使用场景


2. Retrofit结构


从下图我们可以看到,首页里有很多card,每一个card里有两个元素:妹纸图片, 描述文字,具体UI实现我们不在乎,只要明白一点,这两个元素数据是来自于两个不同的api。其中,妹纸图片来自于http://gank.io/api/data/福利/10;描述文字来自于http://gank.io/api/data/休息视频/10。


app中为了请求网络数据,采用了Retrofit。具体关于retrofit如何配置请各位参考官网,这里只讲解如何使用Retrofit。


该项目中主要创建了以下几个类来实现Retrofit结构,大家可以作为参考用于自己的项目中。


i. GankApi:这个类用来定义相关的http接口,这是符合retrofit规范的定义形式,每一个api返回的为Observable

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部