Cache-Control扩展
rfc5861 定义了两个 Cache-Control 的扩展:
- stale-while-revalidate
- stale-if-error
这是两个扩展都是用来定义缓存过期(stale)后的处理策略,旨在提高用户体验,不过两者是独立使用,并无关联的。
Read More
aar依赖
2017-05-07
问题记录。
今天添加 aar 依赖之后,一直提示找不到 aar 中的定义类,然后发现甚至都没有生成 build/intermediates/exploded-aar 文件夹,原因就是新的 as 版本添加了 aar 缓存,在 .android/build-cache 中,手工添加或者更新 aar 文件之后,缓存并没有刷新,因此导致找不到类或者其他类似问题。
Read More
Pool in Android (0)
2017-03-21
在应用开发中,在某些场景下,需要频繁重复创建某种对象来传递消息或者执行操作,在使用完之后又随即废弃。在这种情况下,会对系统性能造成一定的影响,特别是存在以下特征时:
- 对象频繁创建但是只需要短暂使用
- 对象的创建代价比较高。
比较典型的例子比如 Android 里面的 MotionEvent, 每次触发屏幕...
Read More
缓存设计(1)
2017-03-17
在程序设计中,设计良好的缓存可以避免无意义的重复计算,节省可观的计算资源,从而提高性能。
不过同时,缓存一样要消耗资源,过大的内存一样会造成空间资源的浪费。这些方方面面都是在设计缓存的时候需要考虑的事情。
本文主要关注如何设计一个良好运行,线程安全的缓存方案。
简单实现
一个简单缓存方案的实现如下:
Read More
Rx 宝石图图解
2017-03-05
Read More
Gson解析复杂数据
2017-02-17
本文主要关注所解析的 JSON 对象与已定义的 java 对象结构不匹配的情况,解决方案就是使用 JsonDeserializer 来自定义从 JSON 对象到 Java 对象的映射。
一个简单的例子
有如下 JSON 对象,表示一本书的基本信息,本书有两个作者。
Read More
Cupboard非官方翻译
2017-02-07
Cupboard 是一个适用于 Android 的持久化存储方案,简单而且容易与现有代码集成。
更准确的说, Cupboard 只是一个存取对象方案。为了保简洁,它并不会去维护对象之间的关系,所以也并不是一个真正的ORM。
设计理念
设计 Cupboard 是因为现有的持久化框架并不能满足实际的需求,我们真正想要的是...
Read More
chrome缓存设置
2016-12-18
使用浏览器调试 http 缓存头的时候,有一些需要注意的地方。一个显著的问题是刷新(F5)或者地址栏输入网址方式(Enter)访问页面,所有请求都会自动设置 Cache-Control:max-age=0。
如果是强制刷新(SHIFT + F5)的方式,所有请求都会自动设置 Cache-Control:no-cache。
另外,控制台(Network)也有一个 “dis...
Read More
aar依赖
问题记录。
今天添加 aar 依赖之后,一直提示找不到 aar 中的定义类,然后发现甚至都没有生成 build/intermediates/exploded-aar 文件夹,原因就是新的 as 版本添加了 aar 缓存,在 .android/build-cache 中,手工添加或者更新 aar 文件之后,缓存并没有刷新,因此导致找不到类或者其他类似问题。
Pool in Android (0)
在应用开发中,在某些场景下,需要频繁重复创建某种对象来传递消息或者执行操作,在使用完之后又随即废弃。在这种情况下,会对系统性能造成一定的影响,特别是存在以下特征时:
- 对象频繁创建但是只需要短暂使用
- 对象的创建代价比较高。
比较典型的例子比如 Android 里面的 MotionEvent, 每次触发屏幕...
缓存设计(1)
在程序设计中,设计良好的缓存可以避免无意义的重复计算,节省可观的计算资源,从而提高性能。 不过同时,缓存一样要消耗资源,过大的内存一样会造成空间资源的浪费。这些方方面面都是在设计缓存的时候需要考虑的事情。
本文主要关注如何设计一个良好运行,线程安全的缓存方案。
简单实现
一个简单缓存方案的实现如下:
Rx 宝石图图解
Gson解析复杂数据
本文主要关注所解析的 JSON 对象与已定义的 java 对象结构不匹配的情况,解决方案就是使用 JsonDeserializer 来自定义从 JSON 对象到 Java 对象的映射。
一个简单的例子
有如下 JSON 对象,表示一本书的基本信息,本书有两个作者。
Cupboard非官方翻译
Cupboard 是一个适用于 Android 的持久化存储方案,简单而且容易与现有代码集成。
更准确的说, Cupboard 只是一个存取对象方案。为了保简洁,它并不会去维护对象之间的关系,所以也并不是一个真正的ORM。
设计理念
设计 Cupboard 是因为现有的持久化框架并不能满足实际的需求,我们真正想要的是...
chrome缓存设置
使用浏览器调试 http 缓存头的时候,有一些需要注意的地方。一个显著的问题是刷新(F5)或者地址栏输入网址方式(Enter)访问页面,所有请求都会自动设置 Cache-Control:max-age=0。 如果是强制刷新(SHIFT + F5)的方式,所有请求都会自动设置 Cache-Control:no-cache。
另外,控制台(Network)也有一个 “dis...