![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 开源框架
文章平均质量分 93
okclouderx
这个作者很懒,什么都没留下…
展开
-
Android Jetpack 之使用 livedata
Android Jetpack 之使用 livedataLiveData 类是 Android Jetpack 的重要组成部分。将数据封装为 LiveData 后,数据变为了可以感知组件生命周期的可观察数据类。LiveData 的优势确保界面符合数据状态使用观察者模式在数据源改变时自动更新界面。不会发生内存泄漏观察者会绑定到 Lifecycle 对象,在组件生命周期结束后自动清理 。不会因为 Activity 停止而导致崩溃如果观察者绑定的 Activity 处于非活跃状态,例如处于返回栈的原创 2021-12-16 15:00:13 · 1813 阅读 · 0 评论 -
RxJava 线程控制
RxJava 线程控制RxJava 可以切换调度线程,控制每个操作在哪个线程执行。RxJava 内置的 Scheduler如果我们不指定线程,默认是在调用 subscribe 方法的线程上进行回调的。如果想切换线程,就需要使用调度器(Scheduler)。RxJava 内置了如下 5 个 Scheduler。Schedulers.immediate:直接在当前线程运行,它是 timeo...原创 2019-08-28 00:36:35 · 256 阅读 · 0 评论 -
RxJava 操作符介绍
RxJava 操作符介绍RxJava 操作符的类型可以分为:创建操作符变换操作符过滤操作符组合操作符错误处理操作符辅助操作符条件布尔操作符算术聚合操作符连接操作符这些操作符类型下面由很多操作符,每个操作符可能还有很多变体。创建操作符创建操作符有 create、just、fromArray,以及 defer、range、interval、start、repeat 和 t...原创 2019-08-26 23:54:30 · 1049 阅读 · 0 评论 -
Android RxJava 基本用法
Android RxJava 基本用法RxJava 使用函数响应式编程方式,它可以简化项目,处理嵌套回调的异步事件。RxJava 依赖这里以 RxJava 2.2.1 为例。在 build.gradle 添加依赖: // rxjava implementation "io.reactivex.rxjava2:rxjava:2.2.11" implementation ...原创 2019-08-20 00:42:51 · 485 阅读 · 0 评论 -
Retrofit 源码分析
Retrofit 源码分析这里以 retrofit2.6.1 版本为例,从 3 个方面分析 Retrofit 的源代码:Retrofit 创建;Call 创建;Call 入队(enqueue).Retrofit 的创建使用 Retrofit 的时候,首先会用建造者模式构造 Retrofit。Retrofit retrofit = new Retrofit.Builder() ...原创 2019-08-20 00:42:10 · 149 阅读 · 0 评论 -
Retrofit 基本用法
Retrofit 基本用法Retrofit 介绍Retrofit 是 Square 开发的 Android 网络请求框架,它是基于 OkHttp 实现的。与其他网络框架不同,它使用运行时注解提供功能。Retrofit 依赖在 build.gradle 配置依赖如下: implementation 'com.squareup.retrofit2:retrofit:2.6.1' ...原创 2019-08-20 00:41:40 · 339 阅读 · 0 评论 -
OkHttp 源码解析
OkHttp 源码解析主要从两个方面分析 OkHttp 源代码。网络请求流程;连接池复用。OkHttp 的网络请求流程网络请求流程不管是异步请求还是同步请求,都会先通过 OkHttpClient 的 newCall 方法构造一个 Call。 /** Prepares the [request] to be executed at some point in the future...原创 2019-08-20 00:41:10 · 102 阅读 · 0 评论 -
Okhttp 基本用法
Okhttp 基本用法Okhttp 是一个 Android 常用的开源网络框架。Github 地址如下:OkhttpOkHttp 当前的版本是 4.0.1,现在同时支持 Java 和 Kotlin。HttpURLConnection 和 OkHttp从 Android 4.4 版本开始,系统内置了 OkHttp。从 URL 类的 createBuiltinHandler 方法可以发现构造...原创 2019-08-20 00:40:39 · 374 阅读 · 0 评论 -
用 RxJava 实现 RxBus
用 RxJava 实现 RxBusRxJava 可以用来实现 RxBus,实现事件发送和监听。创建 RxBuspublic class RxBus { private static volatile RxBus rxBus; private final Subject<Object> subject = PublishSubject.create().toSe...原创 2019-09-01 22:15:05 · 228 阅读 · 0 评论 -
RxJava 结合 OkHttp 访问网络
RxJava 结合 OkHttp 访问网络这里以访问 Github api 为例。创建 Observable首先使用 create 方法创建 Observable,在回调方法中使用 OkHttp 异步请求网络,然后将返回结果发送给 emitter 的 onNext 方法。同时实现 emitter 的 onError 和 onComplete。private Observable<St...原创 2019-08-29 00:42:12 · 879 阅读 · 0 评论 -
RxJava 结合 Retrofit 访问网络
RxJava 结合 Retrofit 访问网络RxJava 可以配合 Retrofit 访问网络,这里以 Github API 为例。使用前配置依赖配置 build.gradle // retrofit implementation 'com.squareup.retrofit2:retrofit:2.6.1' implementation 'com.squareup...原创 2019-09-01 10:59:09 · 189 阅读 · 0 评论 -
ButterKnife View 注解框架原理解析
ButterKnife View 注解框架原理解析这里以 ButterKnife 的 10.2.0 版本为例。10.2.0 版本的 ButterKnife 采用的是运行时注解。@BindView 注解代码如下:@Retention(RUNTIME) @Target(FIELD)public @interface BindView { /** View ID to which the f...原创 2019-09-15 13:21:11 · 422 阅读 · 0 评论 -
Dagger2 依赖注入框架介绍
Dagger2 依赖注入框架介绍Dagger2 是一个标准的依赖注入框架。Dagger2 是 Dagger1(Square 公司开发)的分支,由谷歌接手开发。添加依赖这里以 dagger 2.24 版本为例,在 app 的 build.gradle 添加 dagger 依赖如下:// Add Dagger dependenciesdependencies { api 'com.goo...原创 2019-09-18 23:53:34 · 444 阅读 · 0 评论 -
RxJava 线程切换过程解析
RxJava 线程切换过程解析RxJava 可以配合 RxAndroid 使用 Schedulers 和 AndroidSchedulers 完成线程的切换。线程切换 private void subscribeOn() { Disposable disp = Observable .create(emitter -> { ...原创 2019-09-07 17:43:40 · 272 阅读 · 0 评论 -
RxJava 的 Map 变换过程解析
RxJava 的 Map 变换过程解析这里以 Map 操作符为例解析 RxJava 的变换过程。Map 操作RxJava 中使用 Map 操作符的方式如下: private void subscribeMap() { String start = "start:"; Disposable disp = Observable ...原创 2019-09-04 22:11:09 · 246 阅读 · 0 评论 -
RxJava 订阅过程解析
RxJava 订阅过程解析这里以 RxJva 2.2.11 为例, 从 RxJava 的订阅过程解析 RxJava 源码。RxJava 的订阅过程RxJava 的基本订阅流程如下: private void subcribeSource() { Observable.create(new ObservableOnSubscribe<Integer>() {...原创 2019-09-03 00:09:24 · 195 阅读 · 0 评论 -
Dagger2 依赖注入的原理分析
Dagger2 依赖注入的原理分析因为 Dagger2 的使用情况很多,这里只对基本的使用方法进行分析。以一个简单依赖注入举例如下:创建 Watch 类如下:public class Watch { public Watch() { } public String work() { return "work"; }}创建 Watc...原创 2019-09-20 01:37:16 · 265 阅读 · 0 评论 -
VirtualAPK 插件化框架介绍
插件化框架 VirtualAPK 介绍VirtualAPK 是一个 Android 插件化框架。如果一个 APK 有很多功能,其中一些功能使用的场景比较少,那么可以在这些功能被使用的时候动态加载,而不是一次性打包在整个 APK 中。插件化不仅可以缩小 APK 体积,也方便各个插件特性的动态更新。使用 VirtualAPK 需要对主 APK (宿主)和插件 APK(插件)做一些修改定制。这里以 ...原创 2019-09-21 15:32:55 · 223 阅读 · 0 评论 -
VirtualAPK 插件化原理分析
VirtualAPK 插件化原理分析这里以 VirtualAPK 0.9.8 版本为例,从三个方面介绍 VirtualAPK 的插件化原理。VirtualAPK 如何加载插件 APK 的类VirtualAPK 如何解决宿主 APK 和插件 APK 的冲突VirtualAPK 如何支持四大组件VirtualAPK 插件类的加载VirtualAPK 从外部存储读取到插件 APK 后,调...原创 2019-09-26 01:16:54 · 550 阅读 · 0 评论 -
ButterKnife View 注解框架介绍
ButterKnife View 注解框架介绍ButterKnife 是 Android 系统的 View 注入框架,它可以减少大量的 findViewById 以及 setOnClickListener 代码,简化代码并提升开发效率。但是,Google 官方提倡的 View Binding (MVVM) 架构也可以起到相同的作用。正如 ButterKnife 的作者所说:Attentio...原创 2019-09-14 17:55:04 · 243 阅读 · 0 评论