1、支付宝iOS客户端框架概要,大纲,挑战和目标,1,基于框架的开发模式,2,RPC,3,稳定性,4,1,挑战和目标,支付宝钱包产品架构,现阶段面临的挑战,技术目标,2,基于框架的开发模式,Contex & App & Service,接口层,Context,实现层,AppManager,ServiceManager,Webapp(HTML5),WEB,Native,HTML,CSS,JavaScript,快捷支付,语音识别,通讯录,扫码,JSBridge,基于框架的开发模式,MVN 库Frameworks,客户端团队Tb(业务B),基础技术组,框架SDKframeworks,B (编译和开发)B
2、.framework(连调),A(编译开发)A.framework,客户端团队Ta(业务A),获取 框架SDK,获取 框架SDK,SVNA-trunk,组内开发测试,提交A.framework,打包平台,源代码,Frameworks配置,钱包,动态推包平台,SVNtrunk,源代码,App的开发步骤,3,RPC,RPC 自动代码生成,Eclipse插件,RPC 示例代码,Account *account = self currentAccount;AccountService *service = context findServiceById:”account”;service queryB
3、alance:account;,AsyncCaller callBlock: Account *account = self currentAccount; AccountService *service = context findServiceById:”account”; service queryBalance:account;completion: self updateUI;,PRC,未登录?,已超时?,收到请求,前置拦截,执行请求,后置拦截,返回结果,登录,RPC 优化,Keep-AliveGzip压缩压缩率:50%+ETag缓存ETag / If-None-Match / 304命中率:31.02% / 节省流量:6096.47MB批量请求发送时多请求合并接收时分次多次返回,4,稳定性,稳定性 运行状态监控,PV闪退率请求追踪,Monitor,StorageServers,稳定性 异常恢复,自动埋点,测试环境:发送界面截图,线上环境:发送点击事件UIApplication sendEvent:,控制台,界面还原,界面截图,自动埋点,总体架构,Thanks,