摘要: httpdns作为解决域名劫持,调度不精准问题的一剂良药,很大程度上改善了app的用户体验。为了追求更加极致的性能体验,本文推出httpdns持久化缓存方案,让app首屏启动更快!
首屏启动之痛
对于大部分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。
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com
相关推荐
使用sqlite数据库本地缓存
uniapp+vue3+pinia框架 uniapp:导航栏双页切换 vue3+pinia:实例化+参数输出+方法调用+模块化+持久化存储 购买后任何问题请私信沟通或添加技术服务群咨询。
账号申请-发布问题-证书与配置文件申请-打包流程-appstore审核-Testflight方案-itms-services方案
Could not find :alicloud-android-httpdns-0.0.0.1-local-SNAPSHOT-end2end-forTest:. 请先执行 ./gradlew copyAARForApp 运行测试case // end2end test ./gradlew clean :app:testDebugUnitTe
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台,不管领导...
Appinventor2 游戏源码--仿像素鸟 (包含资源文件,如图片 音效等)
本地O2O,商场购物超市app方案解决--诺必行@么柚智创.pdf本地O2O,商场购物超市app方案解决--诺必行@么柚智创.pdf本地O2O,商场购物超市app方案解决--诺必行@么柚智创.pdf本地O2O,商场购物超市app方案解决--诺必行@么柚...
本地O2O,商场购物超市app方案解决--诺必行@么柚智创.docx本地O2O,商场购物超市app方案解决--诺必行@么柚智创.docx本地O2O,商场购物超市app方案解决--诺必行@么柚智创.docx本地O2O,商场购物超市app方案解决--诺必行@...
react-native-clear-app-cache 功能介绍 支持 iOS Android 清理app缓存 安装使用 npm install --save react-native-clear-app-cache Then link with: react-native link react-native-clear-app-cache 运行示例
在线开户APP业务系统开发方案--修改过的.pdf
在线开户APP业务系统开发方案--修改过的参考.pdf
在线开户APP业务系统开发方案--修改过的分享.pdf
数据洞察APP买量趋势-Appgrowing-0518.pdf
单页应用会随着项目越大,导致首屏加载速度很慢!!!以下给出在下知道的几种优化方案 使用CDN资源,减小服务器带宽压力 路由懒加载 将一些静态js css放到其他地方(如OSS),减小服务器压力 按需加载三方资源,...
基于外部flah的FPGA多重启动程序,在应用程序启动失败时能自动返回到基础程序
本案例汇编收录了最终参与专家评审的四十一个案例,重点展示各 APP 的功能、创新点以及技术方案,可以为工业 APP 方案提供商、工业 APP 应用企业等提供参考,以促进整个产业的发展。