EventBus源码学习

前言 之前使用EventBus不多,所以也没有比较好的去学习它,后来使用得比较频繁,而且感觉很好用,所以对它的使用进一步学习外,最近还对它的实现进行学习。 EventBus的创建 EventBus采用单例和Builder模式对本身进行创建: public static EventBus getDe...

2019-04-19 19:24:57

阅读数 8

评论数 0

使用Flutter编写应用(五)

前言 如果你从第一篇连读到本文,可能你已经把天气app的简易版写出来了,但是数据的缓存或者列表的美观度还是远远不够。本文将对城市列表进行改动并且对获取到的网络数据通过文件缓存起来,在拿不到网络数据的时候使用。 1.修改成宫格 将CityWidget中的build方法返回改成宫格的Widget ...

2019-03-19 13:45:21

阅读数 26

评论数 0

使用Flutter编写应用(四)

前言 前面分享了天气详情页与城市列表页,但是它们目前还是相对独立的,也就是没有任何的数据传递与之间的切换。本文将分享如何将它们连接起来,实现页面间的跳转与数据传递。 开始 1.页面跳转 a.定义路由名字 在MaterialApp中定义routes: routes: { &quo...

2019-03-08 18:08:15

阅读数 66

评论数 0

使用Flutter编写应用(三)

前言 前两篇实现了从实时天气的界面,这次将分享获取城市列表的数据并展示出来。获取数据和刷新的流程跟天气获取展示是一样的,不一样的是通过本文可以认识新的组件ListView。 开始 1.创建城市Widget class CityWidget extends StatefulWidget { @...

2019-03-07 18:49:05

阅读数 25

评论数 0

使用Flutter编写应用(二)

前言 上一篇分享了如何搭建界面,但是没涉及到数据的获取与操作。本文将分享如何异步从网络获取数据并显示出来。 开始 1.引入网络请求包和json转换包: import 'dart:convert'; import 'dart:io'; 2.创建数据实体类: class WeatherData { ...

2019-03-06 17:29:31

阅读数 26

评论数 0

使用Flutter编写应用(一)

前言 搭建好Flutter的开发环境后,便可以开始应用的编写,关于环境如何搭建上篇文章已有分享。现在进入使用Flutter来编写一个小应用,由于自己没时间去搭建服务端和写接口,所以直接去申请天气预报接口,然后开始了应用的实现。 开始 本文分享的是构建天气详情页,展示的数据暂时写死,后面会通过网络接...

2019-03-01 19:11:00

阅读数 94

评论数 0

入门Flutter——初体验

前言 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生应用界面,它是开源的。使用Dart作为开发语言,如果有Java编程经验,Dart语言很好上手。最开始接触的时候,对于它的编码有点抗拒(虽然现在还有点,应该是不熟悉的原因吧),但不用具备移动开发经验的人也可以...

2019-02-28 18:09:32

阅读数 80

评论数 0

Activity将View添加到Window的过程

前言 在开发的时候,我们经常会因为跳转到另外的界面而去启动Activity,然后被启动的Activity就会呈现在屏幕上。实际启动的过程很复杂,涉及IPC、Window 的添加等等。本文章将分享Activity的View被添加到Window的过程。 正文 在Activity的启动过程中,会调用Ac...

2019-02-27 10:14:30

阅读数 69

评论数 0

OkHttp源码学习(二)拦截器

前言 OkHttp同步或者异步都会通过getResponseWithInterceptorChain方法获取响应,此方法通过一系列的拦截器进行处理。这些拦截器分别有:RetryAndFollowUpInterceptor(重试或者重连)、BridgeInterceptor(request和res...

2018-11-30 20:39:55

阅读数 43

评论数 0

RecyclerView的复用与回收机制

前言 最近学习了RecyclerView的进阶使用,同时也学习了它的缓存机制,以下是通过看它相应的源码去了解它的获取View(ViewHolder)缓存的过程。 寻找获取缓存起点 获取缓存的起点为绘制流程的onLayout方法,然后追寻相关方法:dispatchLayout()—&am...

2018-11-10 20:02:49

阅读数 262

评论数 0

RecyclerView的进阶使用(分割线、拖拽、动画)

前言 使用RecyclerView已经很久了,它相对于ListView和GridView方便很多,使用LayoutManager等类可以给它的使用带来很大的便利。但是后面发现,使用RecyclerView的功能只是那么一小点,也就是都它的基本使用,所以最近对它进一步学习和使用。 添加分割线 R...

2018-11-08 21:41:42

阅读数 101

评论数 0

重温RxJava(使用Kotlin编写)

前言 使用RxJava挺久的了,但是这后面接触的少,所以有一些淡忘了,于是今天再一次总结了一下,刚好最近都在用Kotlin,所以以下代码是使用Kotlin编写的。 RxJava可以说是这样的: 异步:可以很方便地切换线程 简洁:在复杂的逻辑中保持代码简洁 基本使用 1.创...

2018-09-15 23:41:06

阅读数 409

评论数 0

Retrofit源码学习

前言 学习Retrofit的源码已经有一段时间了,最近又翻了一遍,然后总结了一下。它里面用到了很多个设计模式,有工厂模式、代理模式、适配器模式等。 Create方法 mRetorfit.create(Service.clss) create方法的返回语句如下: ret...

2018-09-05 23:55:27

阅读数 72

评论数 0

从生成代码来学习Dagger2的注入过程

前言 用过的同学都会知道,Dagger2用于去除依赖,通过注解便可以为我们生成创建对象的代码。通过apt插件在编译阶段生成注入代码,反射只在编译阶段使用,在应用运行阶段没有涉及到注解反射。下面直接进入生成代码的分析,这也是我最近对生成代码学习的记录。 当我们使用Dagger编写好代码后...

2018-09-04 20:56:47

阅读数 52

评论数 0

OpenGL ES 2.0学习(一)入门知识点

前言 一个多月前开始学习Android OpenGL ES,起初是因为需要做滤镜,然后慢慢发现很有趣。但是自己感觉学起来并没有想象那么容易,主要涉及太多的转换,还有着色器语言等,但它确实强大,可以做一些滤镜,很炫的3D效果/全景等。目前自己还处于入门阶段。 OpenGL ES ...

2018-08-30 21:04:01

阅读数 160

评论数 0

自定义一个很舒服的视频录制按钮

前言 最近开发了相机的相关功能,其中包括了视频的录制。当做好录制功能时,学长就要求要把录制的按钮改成比较友好和美观,过后按照了提出的效果自定义了这个录制按钮。今天分享给大家。 ...

2018-07-21 01:09:57

阅读数 301

评论数 0

Architecture Component—Paging 的使用及源码阅读

Paging Libray 简单来说,Paging Libary用于数据的加载,然后显示到UI上。它是很有趣并且很方便于我们的一个库,比如在后台线程加载好数据,然后在主线程中将数据展示出来。实现了数据的加载处理与UI分离开,并且可以在用户不知不觉中加载更多的数据,使之能够无限的加载更多,不用待到...

2018-07-03 21:33:39

阅读数 543

评论数 0

Java基本类型与包装类型

前言 从开始接触Java到现在也有两年的时间了,还记得最开始就是学数据类型,这是最基础的,可能大家会觉得这有什么好讲的,但是很多时候我们在开发中可能会忽略关于它们的一些知识点,这篇文章将给大家带来关于Java基本类与String的一些知识。 基本类型 以下通过一个表格来说明它们: ...

2018-05-13 21:22:55

阅读数 82

评论数 0

OkHttp使用与源码学习(一)

前言 从开始使用OkHttp已经很久了,它是一个很nice的网络框架,其功能强大,可进行失败重连,在连接中出问题时自动恢复。最近在复习的时候学了它的源码,以下主要是写它的使用和源码学习。 使用 GET请求 //异步请求 OkHttpClient client=new OkH...

2018-05-03 22:25:51

阅读数 123

评论数 1

设计模式之观察者模式

概述 日常生活中,我们在某个应用中订阅某一主题的信息,那么该应用会向我们推送我们所订阅类型的相关信息;或者说我们定了X类型的报纸,那么送报员每天会给我们送来X类型的报纸,让我们能够得知该类型的最新动态。以上的两种场景,就是观察者模式的表现。我们就像是观察者,而我们订阅的主题就像是被观察者,...

2018-04-29 22:39:06

阅读数 42

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭