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

BIOS与0x7C00

2016-12-17

你知道 0x7C00,这个在 x86 汇编中的一个神秘数字吗? 0x7C00 是一个内存地址,BIOS 就是将 MBR (Master Boot Record, hdd/fdd 的第一个 sector) 读入 0x7C00 这个地址, 然后进行后续引导的。

操作系统或是 bootloader 的开发者必须假设他们的汇编代码被加载并从 0x7C00 处开始执行。 不过,为...

Read More

Android Splash实践

2016-09-30

Splash 就是通常说的启动页,启动页不是必须的,也不一定要用单独的 Activity 实现。使用 Splash 的大致出于以下看考虑:

  1. 为了加入开屏广告,在 App 广告中,这种开屏广告价格是比较高的。
  2. App 从启动到到进入第一个功能界面需要一定的时间,App 会持续一段时间的白屏。特别是冷启动,以及第一次安装启动的时候,这种...
Read More

Android 多语言切换

2016-08-04

这里的多语言切换专指应用内的多语言切换,不涉及直接通过应用修改系统语言设置的功能。比如微信里面的

我 -> 设置 -> 通用 -> 多语言
<...
      
Read More