如何让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 = 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启动时发起业务请求时过程:

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

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

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

时间: 2024-09-23 23:32:42

如何让App首屏启动更快 -- httpdns持久化缓存方案的相关文章

让电脑启动更快的十五招

嫌脑启动太慢是每个脑迷的共同心病,让脑启动更快是大家的共同心愿,本人在使用脑过程中总结了加快脑启动速度的"十五式",与您分享. 一.BIOS的优化设置 在BIOS设置的首页我们进入"Advanced BIOS Features"选项,将光标移到"Frist Boot Device"选项,按"PageUP"和"PageDOWN"进行选择,默认值为"Floppy",这表示启动时系统会先从软驱

电脑启动更快的15种方法

电脑启动更快的15种方法 嫌电脑启动太慢是每个电脑迷的共同心病,让电脑启动更快是大家的共同心愿,本人在使用电脑过程中总结了加快电脑 启动速度的"十五式",与您分享. 一.BIOS的优化设置 在BIOS设置的首页我们进入"Advanced BIOS Features"选项,将光标移到"Frist Boot Device"选项, 按"PageUP"和"PageDOWN"进行选择,默认值为"Floppy

快马加鞭,让计算机启动更快

嫌计算机启动太慢是每个计算机迷的共同心病,让计算机启动更快是大家的共同心愿,主要是启动太慢等待过程真心很漫长,为了解决大家的心病,今天我给大家介绍一下平时常用的一些办法! 一.bios的优化设置 在bios设置的首页我们进入"advanced bios features"选项,将光标移到"frist boot device"选项,按"pageup"和"pagedown"进行选择,默认值为"floppy",这

巧设msconfig 让Windows7启动更快一步

  我们知道,在Windows系统里,有个非常实用的程序--msconfig,即系统配置实用程序.该程序为系统启动和加载项设置,合理的配置可以大大提升系统的启动速度和运行效率. 在Windows7系统里,我们可以通过在开始菜单的搜索框里直接输入msconfig后回车,即可打开"系统配置"窗口. ▲在开始菜单里输入程序命令 ▲弹出的系统配置 由于安装的程序越来越多,并且现在很多程序都默认启动系统自动加载,这无疑会使系统启动变得很慢,比如杀毒软件.办公软件.一些优化软件等,在启动系统时,就

设计稿标注首屏线 更易于评估效果

今天看云谦的http://www.aliyun.com/zixun/aggregation/9435.html">blog 看到该文章,211.html">觉得不错 mark一下 对于首屏估计大家都会关注,但设计稿发到不同的人 由于分辨率不同,体验效果其实也不同 正好内部在做新的设计稿也推荐给设计师看了一下 之前注意首屏并没有通过这样详细的统计分析来获得首屏高度 根据内部统计系统中的操作系统.浏览器分布和屏幕分辨率等数据,结合浏览器状态栏.任务栏等高度进行分析: 得出两条首

Firefox 32 Beta 版将带来更快的 HTTP 缓存后端

Mozilla已经推出了 Firefox 32.0 Beta 1 版本和 Firefox Aurora 33.0a2 浏览器.虽然没有令人瞠目结舌的新功能,但是均包含了一些有用的改进,帮助Firefox继续跟上浏览器竞争步伐. Firefox 32带有一个新的HTTP缓存后端,其他改进包括请求排序的优化,以提供更快的加载时间以及对崩溃和挂起应变能力提升. 新版本还改进了密码管理器.加载项管理器.用户还可以连接到通过HTTPS连接HTTP代理,另外集成了垃圾网页回收功能.Firefox 32.0

Android APP 开发首屏广告方案解析

本文我们分享一个Android APP 首屏广告示例, 这里我们主要讲的是实现原理及一些页面的架构,代码只能作参考. 广告需求图: 1. 显示本地存储广告图片, 点击图片, 跳转广告链接, 并提供微信分享功能.2. 异步下载广告信息, 提高启动速度; 异步下载并保存广告和分享图片, 提高加载速度. 开发过程中, 使用了一些小技巧, 我会详细讲解注意的要点, 包括:(1) 使用RxAndroid库, 在新线程上做异步下载广告信息.(2) 使用Picasso库, 异步下载图片(Bitmap)并存储至

让你的网站打开的更快 - 天下武功,唯快不破

不知道从什么时候开始,不管是写独立博客,还是网络应用,甚至写托管博客的人都会朝着"大"网站看齐,去追求网站的响应速度,通俗点说,就是白屏时间,因为据各种报告说,网站打开速度更快一些,带来的用户体验就更好一些,从而带来更多的附加利益.但是对于用户来说,快,并不是简简单单请求数目尽可能少,和服务器吞吐能力尽可能大.那么,怎么快? 谈到速度(参考物和例子稍后一起提),我们首先能想到的事物有: 服务器机器性能 服务器机房带宽资源 服务器软件性能 DNS查询速度 页面资源压缩(服务端+客户端)

猎豹浏览器首次内测 比传统浏览器更快更安全

中介交易 SEO诊断 淘宝客 云主机 技术大厅 [搜狐IT消息]5月3日消息,金山网络旗下猎豹浏览器日前正式开始内部测试. 据金山网络有关人士介绍,首批将邀请1500名热心用户参与内测,主要帮助猎豹浏览器完善功能.提使用建议,以及找出BUG等等. 尽管尚未开放下载,但猎豹浏览器官方网站(liebao.cn)已经放出相关产品介绍视频,据视频内容,众多创新使得猎豹浏览器比传统浏览器更快更安全,同时也帮助网民彻底告别了使用浏览器选安全还是选极速的二选一时代. 比传统浏览器提速30% 根据介绍,猎豹是目