![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android第三方开源库
文章平均质量分 83
Munt
这个作者很懒,什么都没留下…
展开
-
Ijkplayer_基于FFmpeg的轻量级视频播放器
https://github.com/Bilibili/ijkplayerAndroidStudio gradle导入allprojects { repositories { jcenter() }}dependencies { # required, enough for most devices. compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8' compile 'tv.dan原创 2021-02-06 00:28:14 · 969 阅读 · 0 评论 -
视频缓存AndroidVideoCache
今天分享一个开源库 AndroidVideoCache 。这个库主要是做视频缓存管理功能,支持边下边播,离线播放,缓存管理等。用过MediaPlayer的小伙伴都知道,可以支持在线播放和播放本地资源,但是不支持缓存,这样很消耗用户流量,这个时候AndroidVideoCache就派上用场了AndroidVideoCache的用法 1.添加依赖 compile 'com.danikula:videocache:2.7.1' 2.在Application里面创建全局单例 HttpProx...转载 2021-02-03 00:41:01 · 1768 阅读 · 0 评论 -
Glide 要点记录
前言Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。Glide 充分考虑了Android图片加载性能的两个关键方面:图片解码速度 解码图片带来的资源压力为了让用户拥有良好的App使用体验,图片不仅要快速加载,而且还不能因为过多的主线程I/O或频繁的垃圾回收导致页面的闪烁和抖动现象。Glide使用了多个步骤来确保在Android上加载图片尽可能的快速和平原创 2021-01-15 13:34:55 · 178 阅读 · 0 评论 -
Retrofit2.0 学习笔记(二)
基本用法要了解一个框架的源码,肯定要知道它的基本用法。然后从基本用法里选择一个入口方法,这样就可以跟着用法读下去了。1、定义请求接口public interface GitHubService { @GET("users/{user}/repos") Call<List<UserBean>> listRepos(@Path("user") String user);}2、初始化Retrofit Retrofit retrofit = n转载 2021-01-10 23:14:03 · 177 阅读 · 0 评论 -
Retrofit2.0 学习笔记(一)
Retrofit其实就是一个对Okhttp网络请求框架的包装,它通过注解去定义一个HTTP请求,然后在底层通过Okhttp发起网络请求,就是这样的一个简单的过程,其间运用了很多的设计模式:Builder 设计模式、动态代理模式、适配器模式、工厂设计模式等。1 Builder 设计模式:Retrofit retrofit = new Retrofit.Builder() // 访问后台接口的主路径 .baseUrl("http://19原创 2021-01-10 19:05:36 · 108 阅读 · 0 评论 -
RxJava 是如何实现线程切换的(下)
前言通过前一篇的RxJava2 是如何实现线程切换的 (上)我们已经知道了在RxJava中,subscribeOn 将上游线程切换到指定的子线程是如何实现的。这里就接着来看,observeOn 是如何将下游线程切换到指定线程的。RxJava - subscribeOn这里可以通过UML图简单回顾一下subscribeOn的原理。通过 subscribeOn 我们完成了以下操作:创建了一个 ObservableSubscribeOn 对象,本质上来说他就是一个Observable.转载 2021-01-10 00:09:24 · 246 阅读 · 0 评论 -
RxJava 是如何实现线程切换(上)
前言通过前一篇的从观察者模式出发,聊聊RxJava,我们大致理解了RxJava的实现原理,在RxJava中可以非常方便的实现不同线程间的切换。subscribeOn 用于指定上游线程,observeOn 用于指定下游线程,多次用 subscribeOn 指定上游线程只有第一次有效,多次用 observeOn 指定下次线程,每次都有效;简直太方便了,比直接使用Handler省了不少力气,同时也不用去关注内存泄漏的问题了。本篇就来看看在RxJava中上游是如何实现线程切换。RxJava 基础原理为了转载 2021-01-09 23:22:07 · 374 阅读 · 0 评论 -
从观察者模式出发,聊聊RxJava
1.RxJava 是什么RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.以上是RxJava在Github上的介绍,大概意思是,针对于JVM(Java虚拟机)的响应式扩展实现,一个在Java VM上使用可观察的序列来组合实现异步的、基于事件编程的库。转载 2021-01-06 23:03:10 · 198 阅读 · 0 评论 -
Okio原理解析
随着越来越多的应用使用OKHttp来进行网络访问,我们有必要去深入研究OKHTTP的基石,一套更加轻巧方便高效的IO库okio。一、OKIO的介绍:okio是大名鼎鼎的square公司开发出来的,其是okhttp的底层io操作库。其相对于原生的Java IO 读写,更具有(1)紧凑的封装 是对Java IO/NIO 的封装使用,支持文件读写,也支持Socket通信的读写,不需要再套上一系列的装饰类;(2) 使用简单 不用区分字符流或者字节流,也不用记住各种不同的输入/输出流,统统只有一个输入原创 2020-12-26 18:37:34 · 822 阅读 · 0 评论 -
OkHttp原理解析
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录 目录 OkHttp介绍 使用流程 分发器 同步请求 异步请求 请求流程 分发器线程池 拦截器责任链 责任链模式 拦截器流程 拦截器详情 一、重试及重定向拦截器 二、桥接拦截器 三、缓存拦截器 四、连接...转载 2020-12-21 18:33:34 · 498 阅读 · 0 评论 -
第三方开源库 EventBus 源码分析和手写
EventBus官方介绍为一个为Android系统优化的事件订阅总线,它不仅可以很方便的在同线程中传递事件或者对象,还可以在不同线程中实现事件或对象的传递,用法比较简单,可以很好地完成一些在原生系统中的Intent,Handler等可以完成的工作,在Android开发过程中用途及其广泛。当然这里不介绍它的具体用法,只走源码,然后自己动手写一下加深映象。很多人都说用了观察者设计模式,如果非得要往上靠,只能说不是正常的观察者。当然我们也不用太关注,你就认为它是反射加注解。如果你会 RXjava 也可以用 RxB转载 2020-12-09 22:56:24 · 143 阅读 · 0 评论