如何让App首屏启动更快 -- httpdns持久化缓存方案
首屏启动之痛
对于大部分app而言,首屏启动是最为关键的场景之一,一旦出现阻塞将直接影响到用户体验,为此阿里云httpdns sdk推荐异步接口getIpByHostAsync来获取ip,其大致过程如下:
用户从调用getIpByHostAsync接口大致会经历:
- 内存缓存检查
- ip合法性检查
- 异步httpdns请求
从流程中可以看出,由于httpdns请求是异步的,对于app首屏场景来说,httpdns可能正在解析途中,app在解析结果返回前会拿到空的ip,转而去做Local DNS解析。
解决之道:持久化缓存
为了追求极致的性能体验,尽量避免首屏启动时的Local DNS解析,本文推出httpdns的持久化缓存方案,新增接口:
void setCachedIPEnabled(boolean enable);
初始化示例:
service =
