Piasy

NEVER STOP

RESTful 安卓网络层解决方案(一):概览与认证实现方案

在拆轮子系列:拆 Okio 最后我曾说过会对 Retrofit、OkHttp、Okio 三者进行一个小结,并且整理一套网络层的“微架构”,今天终于得以完成,在这里一起奉送给大家 :) 🏁 RESTful 安卓网络层解决方案(一):概览与认证实现方案 RESTful 安卓网络层解决方案(二):空 JSON 和 API Error 解析 RESTful 安卓网络层解决方案(三):...

RxJava 复杂场景(一):高级缓存

用 RxJava 处理网络数据和本地缓存这个话题大家肯定听过好多遍了,但今天这里还有点新花样:高级缓存。什么叫高级缓存?我得向大家坦白,题目中的“高级”其实只是为了吸引大家点进来,内容有一定综合性,希望大家喜欢。 1,先理解问题 首先我们当然需要理解清楚问题: 本地缓存了大量的用户信息,放在一张数据库的表中,当我们拿着一个 id 列表批量获取用户信息时,我们需要首先从数据库中查询这些用...

拆轮子系列:拆 Okio

Retrofit,OkHttp,Okio 是 Square 团队开源的安卓平台网络层三板斧,它们逐层分工,非常优雅地解决我们对网络请求甚至更广泛的 I/O 操作的需求。其中最底层的 Okio 堪称小而美,功能也更基础,应用更广泛。这次我们就对它进行一个详细的分析。本文的分析基于 Okio 截至 2016.8.4 的最新源码,非常建议大家下载 Okio 源码之后,跟着本文,过一遍源码。 1,...

拆轮子系列:拆 OkHttp

安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选。“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!”,在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了。本文基于 OkHttp 截至 2016.7.11 的最新源码对其进行了详细分析。 1,整体思路 从使用方法出发,首先是怎么使用,其次是我们...

那些年,我们被人窃取过的博客

很早之前就在博客统计中发现了来自各色奇怪网站的流量,而且之前也遇见过搜索引擎搜自己的博客,结果是各种奇怪的网站排在前面。之前也没在意,反正分了我的流量,我也没啥损失,加了原文链接的还能导点流量过来。今天再次想到了其中之一的“推酷网”,便尝试再搜了一下,看看到底有多少这样的无良网站恶意侵权,不试不知道,一试吓一跳。 搜索引擎 我以一篇博客的标题“深入理解 RecyclerView 系列之一...

拆轮子系列:拆 Retrofit

安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选。“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!”,在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了。本文基于 Retrofit 截至 2016.6.23 的最新源码对其进行了详细分析。 1,整体思路 从使用方法出发,首先是怎么使用,其次是...

安卓 OpenGL ES 2.0 完全入门(二):矩形、图片、读取显存等

在安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world 中,我主要分析了坐标系、基本绘制流程、绘制三角形、投影变换参数意义,在本篇中,我将分析绘制矩形、绘制图片纹理、读取显存的内容,以及一些注意事项,完整代码可以在 GitHub 获取。 1. 绘制矩形 上篇中有提到,三角形是基本形状,利用三角形我们可以“拼出”其他的任何形状,例如矩形。 绘制两个三角形时...

安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world

做安卓开发满打满算也有 3 年了,OpenGL 这块之前完全没有涉及过,这两周一直在整理安卓相机预览、用 GPUImage 进行美颜处理以及美颜后的数据传输这块内容,结果 GPUImage 的美颜原理基本一窍不通,因此就把 OpenGL ES 好好入了个门,并且整理为 安卓 OpenGL ES 2.0 完全入门 系列。本文是系列第一篇,主要是介绍了 OpenGL 的一些基本概念,并且包含了对...

完美的安卓 model 层架构(下)

在完美的安卓 model 层架构(上)中,我主要介绍了网络请求、数据库持久化、Immutable/Value types、Json 序列化与反序列化这四部分内容,而剩下的关于 Parcelable,ZonedDateTime,null safety,rx error handling,config injection以及测试相关的内容,将在本篇中进行介绍。 声明:本文已独家授权微信公众号A...

完美的安卓 model 层架构(上)

前些日子在 Android Weekly 上看到了一篇介绍 SqlDelight 使用的文章,虽然之前了解过 SqlDelight 和 SqlBrite,但却一直没有尝试过。但这次我被文章中的例子惊艳到了,而且 SqlDelight 还能和 AutoValue 兼容使用,进一步打消了我的顾虑,我就赶紧在 AndroidTDDBootStrap 项目进行了尝试,并且甩掉了之前使用的 StorI...