Cache-Control扩展

2017-05-08

rfc5861 定义了两个 Cache-Control 的扩展:

  1. stale-while-revalidate
  2. stale-if-error

这是两个扩展都是用来定义缓存过期(stale)后的处理策略,旨在提高用户体验,不过两者是独立使用,并无关联的。

Read More

Regex温故知新1

2017-05-08

《正则表达式必知必会》——Ben Forta,回顾笔记。

正则表达式的两种基本用途:搜索和替换。给定一个正则表达式,它要么匹配一些文本(进行一次搜索),要么匹配并替换一些文本(进行一次替换)。

正则表达式的核心难点:验证某个模式能不能获得预期的匹配结果并不困难,但如何验证它不会匹配到你不想要的东西可就没那么简单了。

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

在应用开发中,在某些场景下,需要频繁重复创建某种对象来传递消息或者执行操作,在使用完之后又随即废弃。在这种情况下,会对系统性能造成一定的影响,特别是存在以下特征时:

  1. 对象频繁创建但是只需要短暂使用
  2. 对象的创建代价比较高。

比较典型的例子比如 Android 里面的 MotionEvent, 每次触发屏幕...

Read More

缓存设计(1)

2017-03-17

在程序设计中,设计良好的缓存可以避免无意义的重复计算,节省可观的计算资源,从而提高性能。 不过同时,缓存一样要消耗资源,过大的内存一样会造成空间资源的浪费。这些方方面面都是在设计缓存的时候需要考虑的事情。

本文主要关注如何设计一个良好运行,线程安全的缓存方案。

简单实现

一个简单缓存方案的实现如下:

Read More