「技术」如何快速开发一款APP?( 五 )
本文插图
所以我们首先去接入我们的MDS的时候 , 我们的离线包首先是发布的MDS上 , 那么MDS会根据你之前配置的一系列的东西 , 去把我们的离线包发布到CDN上 , 然后根据我们之前客户端上的一些条件 , 比如说你是否打开了灰度开关 , 或者说是全网Release , 如果是灰度开通开关的话 , 还需要根据你灰度的一些配置 , 然后通过客户端和服务端这些客户端和MDS之间的一些请求 , 然后把我们的离线包的地址下发到客户端上 , 那么客户端会拿到这个地址 , 从CPN上把我们的离线包下载过来 , 这是我们的提供的一个快速发布的能力 。 那么快速发布既要拥有智能灰度的能力 , 同时也需要提供增量拆分离线包的能力 , 这个能力对于客户来说是不可见的 。 因为客户只用把两个版本的离线包上传到我们的服务端 , 我们服务端自动会算出这两个离线包之间的差异 , 然后把差异下发到客户端 , 我们同时需要保证我们的MDS的性能需要达到非常高的要求 。 那么我们的MDS的性能QPS可以达到5万每秒 , 那么对于端的一个触达率有达到99.99% 。
然后接下来讲的是一个监控和诊断 , 那么监控其实是我们一个非常需要重点关注的维度 , 因为我们把业务开发完毕 , 去下发到用户端的时候 , 如果用户体验非常不好的话 , 那么我们的留存率是非常低的 。 所以说我们需要针对于闪退、流畅度、电量 , 流量之类的 , 还有不可用的一些一些业务都需要做一些埋点 。 我们去埋点之后 , 就是收集完用户的一个使用情况的时候 , 我们需要去上报 。 那么如果做到实时上报的话 , 这个上报的策略其实是不合理的 。
本文插图
因为第一会影响用户的体验 , 因为实时上报的话 , 我们可能一直开着一个进程 , 或者说还有一条线程去上报 。 第二 , 对于用户的流量也会有非常大的影响 。 那么同时我们还需要考虑用户在使用我们APP过程中的一个的情况 , 比如说做一些定制化的开关 , 或者说需要做一些特殊的一些采样 。 比如说如果这个时候一个用户跟我们去报他使用APP的过程中产生的Crash , 那么我们并不需要收集全网Crash情况 , 因为用户他自己的使用场景可能会比较特别 , 所以说我们需要有对于特定的用户有一个固定抓取的能力 。
然后我们上报的方式有有三种 , 第一种就是自动上传 , 第二种是周期性的检查上传 , 比如说每隔一小时或者每隔一天 。 第三点是诊断指令驱动的上传 , 这个意思就是我刚刚说的一个场景 , 一个用户报Crash了 , 那么我们需要用户比如说上报一下他的邮箱 , 或者说账号名字之类的 , 那么我们可以精准的在用户手机上去抓取一段日志 。 那么我们根据用户上传的一些日志 , 我们可以进行进行页面的一个跳转路径的分析 , 然后还有APP自己产生的一些日志做一些分析 , 那么分析完之后 , 我们就可以做出一些决策 , 比如说该怎么优化这些东西 , 那么如果我们的Crash去和ANR的率到达了一定程度的时候 , 我们需要有熔断的一些措施 , 比如说把离线包的页面或者禁用掉 , 那么或者说走fallback , 或者走修复这三个流程 。
本文插图
这个是我们提供的四个能力 。 首先第一点的话是故障隔离 , 就是说如果我们发现这个页面产生了一个故障的话 , 我们需要提前的去开启某个开关 , 如果它是一个新业务的话 , 比如说他开关是开着的情况下 , 我们需要立即把它关掉 , 然后屏蔽掉之后 , 进行一个止血的过程 。
那么第二点 , 如果我们的闪屏页面发生过程 , 因为这个时候用户可能进不了我们的APP,那么需要我们去进一个安全模式 , 这个时候需要对安全模式里面的一些数据进行一些诊断上传 。 然后把我们的APP里面的一些数据清除掉 , 然后再重新开启 。 这个是一个自动恢复的能力 。
推荐阅读
- 「A1canton」智慧酒店震撼来袭——虚拟现实VR篇,五大技术革新传统酒店
- 人民网@【战“疫”说理】疫情防控中如何有效实现经济复苏?
- 「北京头条客户端」科技部:将加大对前沿技术研发的攻关和支持力度
- 『财经涂鸦』三七互娱爆发的秘密:该用技术公司估值模型来看它了
- 『车家号』高低功率如何选?后期改装就能“低变高”了吗?,同一款发动机
- 手机、眼镜如何消毒?清洁要从细节做起
- 『音频』iOS如何导入百度云的音频(易剪和易剪多轨版)
- 2020年你应该关注的8大技术趋势,眺望曙光TVP线上技术闭门会纯享实录
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- 妙家影视■如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
