开源框架学习
文章平均质量分 93
xk_一步一步来
一步一步
展开
-
OkHttp3-请求器-连接-拦截器
OkHttp3-请求器(Calls)OkHttp客户端负责接收应用程序发出的请求,并且从服务器获取响应返回给应用程序。理论听起来十分简单,但是在实践中往往会出现很多意想不到的因素。请求 (Request)每一个Http请求都包含一个URL和一个请求方式(比如Get或者Post),以及一些请求头信息。请求也有可能包含一个请求主体:当一个数据流存在指定的content type类型的请求头时。...转载 2020-05-01 13:19:51 · 1261 阅读 · 0 评论 -
界面打开SwipeRefreshLayout自动刷新
首先想要在界面一加载的时候出现更新效果,直接调用setRfreshing(true)是出不来效果的,必须调用SwipeRefreshLayout.post(new Runable(){ @Override public void run() { SwipeRefreshLayout.setRefreshing(true); } });关闭的...转载 2020-04-30 12:18:46 · 1263 阅读 · 0 评论 -
Retrofit 2详解和使用(4)——汇总
0X00 写在前面相信做过Android网络请求的同学都绕不开Volley,Retrofit,OkHttp这几座大山,至于他们的前世姻缘以及孰优孰劣,不在本博客的讨论范围。如题,这篇博客主要介绍一个小白(其实就是我自己)的Retrofit2进阶之路,会结合一个开发实例介绍5节内容:Retrofit2 HTTP请求方法注解的字段说明Call<T>响应结果的处理问题Retro...转载 2020-04-30 12:12:06 · 1323 阅读 · 0 评论 -
PhotoView的使用
前言PhotoView是一个常用的图片预览控件,主要用于Android中大图查看,例如结合ViePager完成朋友圈九宫格图片预览功能,前几天我写的ViewPager分页加载数据这篇博客,可以结合起来使用,PhotoView主要的功能有,图片手势缩放,旋转,相比ImageView,用户体验更好。今天我主要介绍两个PhotoView的框架,第一个是(https://github.com/ch...转载 2020-04-01 22:18:20 · 5819 阅读 · 0 评论 -
Android 复杂的列表视图新写法 MultiType (v3.1.0 修订版)
前言MultiType 这个项目,至今 v3.1.0 稳定多时,考虑得非常多,但也做得非常克制。原则一直是 直观、灵活、可靠、简单纯粹(其中直观和灵活是非常看重的)。在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解耦的,我能够轻松将它抽离出来分享,并给它取名为 MultiType.从前,比如我们写一个类似微博列表页面,这样的列表是十分...转载 2020-03-31 23:37:14 · 441 阅读 · 0 评论 -
RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除
前言现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变。有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换,但RecyclerView没有提供现成的API供我们操作,所幸SDK提供了ItemTouchHelper这样一个工具类帮助我们快速实现以上功能。不多说别的,我们来介绍一下ItemTouchHe...转载 2020-03-29 21:02:14 · 702 阅读 · 2 评论 -
RxBus 代替 EventBus 进行组件之间通讯
▲ 前言:事件总线的好处在于方便组件之间的交互,RxBus不是一个库,而是使用RxJava实现事件总线的一种思想。刚好项目中使用到了rxjava,相对于使用eventbus,使用rxbus来的更方便。▲ rxbus和eventbus相比较:RxJava 主要做异步、网络的数据处理,强大之处就是对数据的处理了,而对于处理完后的数据处理是一样的都是观察者模式来通知,也可以把 RxJava 进一...转载 2020-03-28 21:55:54 · 485 阅读 · 0 评论 -
ExoPlayer开发指南(官方文档翻译)
注意解决目前http直接发送请求失败的问题:(Cleartext HTTP traffic to xxx not permitted)https://blog.csdn.net/qq_32534441/article/details/103529449前言播放视频和音乐是Android开发中很常见的需求。 Android框架提供了MediaPlayer这个类,能够用最少代码实现多媒体播放...转载 2020-03-28 20:04:32 · 1460 阅读 · 0 评论 -
RxPermissions
做Android开发的同学应该都知道,Android6.0以后,权限系统有了很大的变化。危险权限,单纯在AndroidManifest中申请权限是没用的,需要动态的获取。今天,来介绍和总结一下RxPermissions的使用,轻轻松松地完成动态权限申请。一.RxPermissions的导入implementation 'com.githu...转载 2020-03-27 16:14:57 · 1044 阅读 · 0 评论 -
JiaoZiVideoPlayer
饺子视频播放器的GitHub地址:https://github.com/lipangit/JiaoZiVideoPlayer。一.JiaoZiVideoPlayer的导入 支持导入jar包或者impletation的方式导入,推荐使用在线导入的方式。除非你工作电脑不允许使用外网,否则不建议使用jar包的形式导入。按照作者的说明,当前的预览版...转载 2020-03-27 16:10:34 · 1761 阅读 · 0 评论 -
RxBinding
在学习了RxJava的使用后,我们已经对响应式编程有了一些了解。在此基础上,我们学习一下RxBinding的使用。什么是RxBinding?从字面上解释:以RxJava的方式去绑定UI事件。RxBinding是UI控件响应式编程框架。通过使用RxBinding,可以用RxJava的方式便捷的实现Android各种控件事件的监听。RxBind...转载 2020-03-27 16:04:27 · 492 阅读 · 1 评论 -
RxJava内存泄漏——(2)AutoDispose解决RxJava内存泄漏
概述在我文章解决RxJava内存泄漏(前篇):RxLifecycle详解及原理分析中,详细阐述了 如何通过使用 RxLifecycle 解决Android开发中RxJava的可能会导致的内存泄漏问题;RxLifecycle 内部的实现原理;在文章的最后,我提到了 AutoDispose 这个库,这个库同样可以解决Android生命周期组件导致的RxJava的内存泄漏情况。但是不得不考...转载 2020-03-27 15:11:03 · 884 阅读 · 0 评论 -
RxJava内存泄漏——(1)例子、RxLifecycle和引出AutoDispose
使用过Rxjava的小伙伴都知道,在使用RxJava时如果处理不当,很可能会产生内存泄漏的问题。我们使用rxjava最大的原因是响应式编程使我们的异步操作代码变得很优雅,在Android中,也使线程切换变得很简单,而产生内存泄漏的大部分原因都是在异步执行耗时操作时,我们关闭了Activity,但是由于rxjava仍然持有Activity的引用,导致Activity无法被内存回收。这样就造成了内存...转载 2020-03-27 15:07:21 · 388 阅读 · 0 评论 -
RecyclerView的好伴侣:详解DiffUtil
一 概述DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集-》新数据集的最小变化量。 说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView。 就我使用的这几天来看,它最大的用处就是在RecyclerView刷新时,不再无脑mAdapter.notifyDataSetChanged()。 以前无脑mAdapter...转载 2020-03-27 14:12:11 · 218 阅读 · 0 评论 -
Android中架构模式——MVVM
MVVM(Model View ViewModel)如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。它是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。结构如下图所示:...转载 2020-03-26 22:17:20 · 179 阅读 · 0 评论 -
Android中架构模式——MVP
MVP(Model View Presenter)作为MVC的演化,解决了MVC不少的缺点,对于Android来说,MVP的model层相对于MVC是一样的,而activity和fragment不再是controller层,而是纯粹的view层,所有关于用户事件的转发全部交由presenter层处理。下面还是让我们看图:从图中就可以看出,最明显的差别就是view层和model层不再相互可知...转载 2020-03-26 22:15:09 · 202 阅读 · 0 评论 -
Android中架构模式——MVC
参考:https://blog.csdn.net/chaoshenzhaoxichao/article/details/79871145Android当中的MVCM:数据库层,数据模型层,网络请求管理,数据存储类的东西,都可以属于M层,简单点理解就是数据层,或者叫基础层。V:这一层在Android当中其实是XML,也就是RES资源文件下的LAYOUT们。可不是ACTIVITY。C:这一层在...原创 2020-03-26 22:11:30 · 187 阅读 · 0 评论 -
Dagger2——(5)Scope注解的使用及源码分析
前言在上一篇文章Android 神兵利器Dagger2使用详解(三)MVP架构下的使用 中,我们以简单的案例对Dagger2依赖注入库在实际开发中的使用方法进行了学习。本文内容: 1.@Singleton 全局单例 注解的使用 2.自定义@Scope 局部单例 注解的使用 3.通过 源码分析 @Singleton和@Scope注解是 如何实现单例 的。一.@Singleto...转载 2020-03-26 18:10:33 · 193 阅读 · 0 评论 -
Dagger2——(3)Module&Component源码分析
前言:各个组件的作用和互相的联系: @Inject : 注入,被注解的构造方法会自动编译生成一个Factory工厂类提供该类对象。 @Component: 注入器,类似快递员,作用是将产生的对象注入到需要对象的容器中,供容器使用。 @Module: 模块,类似快递箱子,在Component接口中通过@Component(modules = xxxx.class),将容器需要的...转载 2020-03-26 18:01:41 · 169 阅读 · 0 评论 -
Dagger2——(2)实现全局单例
@Single可以实现单例模式,但是是局部单例。因为@Single的范围取决于@Compenent,也就是注射器。而通常情况下只能创建多个@Component。所以需要采用别的方式。首先:@Singleton@Component(modules = ShangjiaModule.class)public interface Platform{ ZhaiNan waimai(); ...原创 2020-03-26 16:32:15 · 590 阅读 · 0 评论 -
Dagger2——(1)入门详解
Dagger2 确实比较难学,我想每个开发者学习的时候总是经历了一番痛苦的挣扎过程,于是就有了所谓的从入门到放弃之类的玩笑,当然不排除基础好的同学能够一眼看穿。本文的目的尝试用比较容易理解的角度去解释 Dagger2 这样东西。 Dagger2 是有门槛的,这样不同水平能力的开发者去学习这一块的时候,感受到的压力是不一样的。 我个人总结了大家在学习 Dagger2 时,为什么感觉难于理解的...转载 2020-03-25 22:31:39 · 309 阅读 · 0 评论 -
ButterKnife(黄油刀) 使用方法总结
前言: ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项...转载 2020-03-25 13:45:54 · 2125 阅读 · 0 评论 -
ButterKnife10.0.0环境搭建和插件使用
书上教程为:https://blog.csdn.net/anyong8888/article/details/101827415会报错:Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProce解决:https://blog.csdn.net/l403...原创 2020-03-25 12:45:26 · 1199 阅读 · 0 评论 -
Rxjava2应用篇
https://www.jianshu.com/p/7474950af2df1. 单个网络请求数据并更新UI这个比较简单,整个流程大致是:1.通过Obsrvable.create方法,调用OkHttp网络请求2.通过map方法结合gson,将response转换为bean类3.通过onNext,解析bean中数据,并进行数据库存储4.调度线程5.通过subscribe,根据请求成功或...原创 2020-03-24 23:38:34 · 311 阅读 · 0 评论 -
这可能是最好的RxJava 2.x 入门教程
这可能是最好的 RxJava 2.x 入门教程(一)这可能是最好的 RxJava 2.x 入门教程(二)这可能是最好的 RxJava 2.x 入门教程(三)这可能是最好的 RxJava 2.x 入门教程(四)这可能是最好的 RxJava 2.x 入门教程(五)这可能是最好的 RxJava 2.x 入门教程(完结版)...转载 2020-03-23 19:54:42 · 173 阅读 · 0 评论 -
给初学者的 RxJava2.0 教程 (1-9)
https://juejin.im/user/573dba2171cfe448aa97b7b0/posts转载 2020-03-22 22:01:39 · 145 阅读 · 0 评论 -
RxJava2最全面、最详细的讲解(四)
一、概述RxJava2在第一篇文章作了详细的介绍,第二篇文章中讲解了RxJava的变换操作符,组合操作符,合并操作符;第三篇讲解了延迟、do相关、错误处理等操作符的使用,如果英文比较好而且有兴趣的可以到官网学习:ReactiveX的官方网站。下面开始继续讲解RxJava2的其他用法。(链接和源码在文章最后给出)二、过滤操作符1.filter()filter()对源Observable(被观...转载 2020-03-21 20:26:44 · 228 阅读 · 0 评论 -
RxJava2最全面、最详细的讲解(三)
一、概述RxJava如此受欢迎,是因为提供了丰富且功能强大的操作符,几乎能完成所有的功能需求。下面我们会继续学习其他操作符。RxJava2在第一篇文章作了详细的介绍,是一个基于事件流的异步操作库。第二篇文章中讲解了RxJava的变换操作符,组合操作符,合并操作符(链接和源码在文章最后给出);如果不了解Rxjava2可以参考下RxJava2最全面、最详细的讲解(一),如果英文比较好而且有兴趣的可以...转载 2020-03-21 20:24:56 · 436 阅读 · 0 评论 -
RxJava2最全面、最详细的讲解(二)
一、概述RxJava2在第一篇文章中基本用法作了详细的介绍,是一个基于事件流的异步操作库。相信大家对RxJava有了一定的理解,由于篇幅过长所以重新写了一篇,如果不了解Rxjava2可以参考下RxJava2最全面、最详细的讲解(一)。下面开始继续讲解RxJava2的其他用法。(源码和其他链接在文章最后给出)在使用前记得在build.gradle文件中添加依赖: implementati...转载 2020-03-21 20:23:20 · 997 阅读 · 0 评论 -
RxJava2最全面、最详细的讲解(一)
一、概述提高开发效果,降低维护成本一直是团队追求的宗旨。现在安卓里面RxJava2+Retrofit+OKHttp的网络请求框架是最流行的,几乎一统江湖,配合响应式式编程的RxJava使用也越来越多。如果英文比较好而且有兴趣的可以到官网学习:ReactiveX的官方网站。(源码和其他相关链接在文章最后给出)RxJava到底是什么? RxJava在Git...转载 2020-03-13 23:52:50 · 8551 阅读 · 1 评论 -
Retrofit2源码分析
一、概述 在了解Retrofit2源码架构之前先说明,本文默认读者对Retrofit2框架的使用有一定了解,除此之外还要先熟悉okhttp3框架和Java代理模式中的动态代理,不然后面咱们看Retrofit2源码时会很难理解: Java代理模式 严格地说,Retrofit2并不是一个网络请求交易框架,它只是对网络请...转载 2020-03-20 21:02:42 · 198 阅读 · 0 评论 -
Retrofit2详解和使用(三)——multpart多文件上传详解
可以先看看这个文章: Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传Retrofit2是目前很流行的android网络框架,运用注解和动态代理,极大的简化了网络请求的繁琐步骤,非常适合处理restfull网络请求。在项目中,经常需要上传文件到服务器,有时候是需要上传多个文件。网上文章基本都是单文件上传教程,这篇文章主要讲retrofit的多文件上传实现。 个...转载 2020-03-20 21:40:08 · 2850 阅读 · 0 评论 -
Retrofit2详解和使用(二)——实现(图文上传)文字(参数)和多张图片一起上传
背景在有心课堂《自己动手写HTTP框架》课程中有下列课程:自拍要发朋友圈如何实现 http://stay4it.com/course/4/learn#lesson/208通过自己写的HTTP框架实现将图片和文字等内容在一个接口中提交到服务器。无论哪种网络框架,都要遵守HTTP协议。下面我们简单了解下HTTP协议。HTTP协议其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以...转载 2020-03-20 21:38:41 · 1290 阅读 · 0 评论 -
Retrofit2详解和使用(一)
一、概述1、什么是retrofit retrofit是现在比较流行的网络请求框架,可以理解为okhttp的加强版,底层封装了Okhttp。准确来说,Retrofit是一个RESTful的http网络请求框架的封装。因为网络请求工作本质上是由okhttp来完成,而Retrofit负责网络请求接口的封装。本质过程:App应用程序通过Retro...转载 2020-03-13 23:37:14 · 491 阅读 · 0 评论 -
OkHttp3源码详细解析
OkHttp是一个非常优秀的网络请求框架,已被谷歌加入到Android的源码中。目前比较流行的Retrofit也是默认使用OkHttp的。所以OkHttp的源码是一个不容错过的学习资源,学习源码之前,务必熟练使用这个框架,否则就是跟自己过不去。use -> running source code -> reading & learning the source code.1...转载 2020-03-20 14:59:41 · 228 阅读 · 0 评论 -
OkHttp3 总结研究
OKhttp3 是最近比较主流的网络请求框架。面试中,常会问道你对okhttp3是否有深入的了解。在这篇文章我总结了下okhttp3的原理(非用法,用法自己百度就行),以及大神们根据源码分析OKhttp3比较好的文章。1.首先是大神们对OKhttp3的源码分析:(转载)Android OkHttp(三)源码解析:https://blog.csdn.net/zxw136511485/article/...转载 2020-03-20 14:43:41 · 332 阅读 · 0 评论 -
OkHttp3源码分析
最近半年来身边开发的朋友越来越多的提到OkHttp,上谷歌百度一下,确实OkHttp成了时下最火的HTTP框架,于是我也开始放下Volley,转而关注OkHttp,五一期间仔细看了官方WiKi介绍(我喜欢学习官方的文档),现在把自己整理的官方教程分享给大家,希望给初学者带来帮助。 OkHt...转载 2019-12-14 12:00:14 · 254 阅读 · 0 评论 -
OkHttp3——1.入门使用
一,OKHttp介绍okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。okhttp有自己的官网,官网网址:OK...转载 2019-12-14 11:57:55 · 274 阅读 · 0 评论 -
EventBus源码分析
前言EventBus是一种用于Android的发布/订阅事件总线。它有很多优点:简化应用组件间的通信;解耦事件的发送者和接收者;避免复杂和容易出错的依赖和生命周期的问题;很快,专门为高性能优化过等等。源码分析EventBus源码分析主要分为两个过程:订阅事件发布事件在分析订阅事件之前,我们先来分析一下与订阅事件相关的订阅者索引。订阅者索引默认情况下,EventBus使用Java...转载 2020-03-19 17:53:10 · 126 阅读 · 0 评论 -
EventBus使用详解
前言EventBus是一种用于Android的发布/订阅事件总线。它有很多优点:简化应用组件间的通信;解耦事件的发送者和接收者;避免复杂和容易出错的依赖和生命周期的问题;很快,专门为高性能优化过等等。基础知识EventBus使用了发布者/订阅者模式。发布者通过EventBus发布事件,订阅者通过EventBus订阅事件。当发布者发布事件时,订阅该事件的订阅者的事件处理方法将被调用。使用...转载 2020-03-19 12:31:54 · 1446 阅读 · 0 评论