开发者社区> mqc> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何让App首屏启动更快 -- httpdns持久化缓存方案

简介: httpdns作为解决域名劫持,调度不精准问题的一剂良药,很大程度上改善了app的用户体验。为了追求更加极致的性能体验,本文推出httpdns持久化缓存方案,让app首屏启动更快!
+关注继续查看

首屏启动之痛

对于大部分app而言,首屏启动是最为关键的场景之一,一旦出现阻塞将直接影响到用户体验,为此阿里云httpdns sdk推荐异步接口getIpByHostAsync来获取ip,其大致过程如下:

_a

用户从调用getIpByHostAsync接口大致会经历:

  • 内存缓存检查
  • ip合法性检查
  • 异步httpdns请求

从流程中可以看出,由于httpdns请求是异步的,对于app首屏场景来说,httpdns可能正在解析途中,app在解析结果返回前会拿到空的ip,转而去做Local DNS解析。

解决之道:持久化缓存

为了追求极致的性能体验,尽量避免首屏启动时的Local DNS解析,本文推出httpdns的持久化缓存方案,新增接口:
void setCachedIPEnabled(boolean enable);

初始化示例:
service = HttpDns.getService(getApplicationContext(), ACCOUNT_ID);
service.setCachedIPEnabled(true);

当setCachedIPEnabled(true)被调用时,httpdns解析记录从持久化缓存同步到内存缓存。httpdns请求成功,解析记录会同步更新到内存缓存和持久化缓存,其大致过程如下:

  • Step1 httpdns sdk初始化
  • Step2 持久化缓存开启
  • Step3 持久化缓存记录更新到内存缓存
  • Step4 调用getIpByHostAsync
  • Step5 检查ip是否合法
  • Step6 拿到ip,发起http请求

采用持久化缓存前,APP启动时发起业务请求时过程:

_b

采用持久化缓存后的过程如下:

_c

有了持久化缓存,app首屏启动就能立刻拿到解析好的ip,同时,阿里云httpdns sdk内部的过期机制也能保证拿到ip的可靠性。此外,网络切换发生后,SP(Server Provider,服务提供商)也可能发生变化,相同Host在不同SP下获取的ip也会区别对待。httpdns sdk会结合当前网络环境,通过SP和Host共同确定ip,让app拿到的结果更加精准。

持久化缓存功能在Android v1.1.2 及以上版本添加,ios版本也将在近期上线,敬请期待!使用过程中如果遇到什么问题,可以加入钉钉群进行交流,群号:11777313。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
uniapp清理app缓存
uniapp清理app缓存
0 0
后端接口临时补救方案:Mock Server
后端接口临时补救方案:Mock Server
0 0
iOS优化App启动时间优化(2021-09更新)
当用户按下Home键的时候,iOS的App并不会马上被杀掉进程,还会继续存活若干时间。理想情况下,用户点击App的图标再次回来的时候,App几乎不需要做什么,就可以还原到退出前的状态,继续为用户服务。这种持续存活的情况下启动App。
0 0
高可用后端架构设计实战-利用request cache请求缓存优化批量查询接口
高可用后端架构设计实战-利用request cache请求缓存优化批量查询接口
0 0
如何让App首屏启动更快 -- httpdns持久化缓存方案
httpdns作为解决域名劫持,调度不精准问题的一剂良药,很大程度上改善了app的用户体验。为了追求更加极致的性能体验,本文推出httpdns持久化缓存方案,让app首屏启动更快!
0 0
让App首屏启动更快 -- httpdns持久化缓存方案
httpdns作为解决域名劫持,调度不精准问题的一剂良药,很大程度上改善了app的用户体验。为了追求更加极致的性能体验,本文推出httpdns持久化缓存方案,让app首屏启动更快!
0 0
接入高防后为什么有一些网站,APP等会出现延迟,打开速度慢等问题?
我们常见的一些网站,APP等用户在接入高防后,会出现延迟,打开速度慢等问题,假如出现这样的情况请大家不要惊慌失措,短暂的时间内出现延迟,打开速度慢是正常的。
1327 0
+关注
mqc
文章
问答
文章排行榜
最热
最新
相关电子书
更多
移动 App 性能监测实践(iOS篇)
立即下载
移动App性能监测实践(ios篇)
立即下载
使用TensorFlow搭建智能开发系统自劢生成App UI代码
立即下载