本文由
玉刚说写做平台
提供写做赞助html原做者:
两位低调的 Android 高手
前端版权声明:本文版权归微信公众号
玉刚说
全部,未经许可,不得以任何形式转载git
2018年的GMTC大会于6月22号在北京刚刚拉下帷幕,GMTC会议是由极客邦科技和InfoQ中国主办的顶级技术盛会,主要涉猎前端、移动端、终端AI等多个技术领域,从16年到目前总共举办了3届,从今年的火爆程度也能看出GMTC全球大前端开发者技术大会算是大前端的最重要的垂直会议之一了。github
有幸参加了这届GMTC大会,会议的14个专场基本覆盖了大前端的方方面面,满满的日程对于体力也是消耗很是大,不过也收获颇多,除了可以了解到各大公司面临的技术难题与解决思路,还能了解到当前最前沿的技术热点与将来方向。趁热打铁谈谈我的的一些收获与感想,此次会议的专题包括Android新技术专场、iOS新技术专场、Node专场、Web框架专场、UI与动画、PWA专场、终端AI、工程化、跨平台专场、性能优化与监控等14个专题。因为专题比较多,多个专题都是并行演讲,分身乏术,这里主要聊聊我的比较关心的2个专题。数据库
1)Android新技术专场编程
2)性能优化与监控专场json
新技术表明着当前的技术热点与将来方向,做为一个大前端的RD,不得不时刻关注着大前端技术的方向。Android新技术专场主要有三个主题分享,分别是《Android 研发的昨天今天明天》、《当插件化赶上Android P》与《快应用开发与实现指南》。小程序
做者具备丰富的软件研发经验,推进了App组件化、动态部署、热补丁等技术的发展和制定相关的机制,改善了Android设备的体验,包括绿色联盟(Greenify)应用公约、Android6.0-Doze&App Standby/Android7.0-部分限制静态广播注册/Android8.0-全面限制静态广播注册和后台服务等。性能优化
首先,做者认为Android发展的昨天是属于一种流量圈地的时代,起初由简单的WebApp的流量入口,到最后大多数都转到NativeApp的入口;由于流量是互联网的基础概念,有了流量,有了用户,才有更加深刻的转换,因此说流量是关键的第一步,所以昨天属于抢占流量入口的时代。服务器
其次,做者认为Android发展的今天是流量攻守的时代,随着各大应用功能愈来愈复杂,规模愈来愈大,得到了流量的入口,那么就须要攻守兼备,对于攻采用从大型应用到免安装应用的过分,例如像PWA、Google Play Instant、小程序等,对于守采用启动图标+推送的方式,例如Shortcut、Contextual Push、Rich Notification等。
最后,做者认为Android发展的明天是心智渗透的时代,须要针对不一样的群体塑造差别化的认知。做者认为将到来的根本性变动是移动互联网的范式转移和移动应用的技术栈跃迁。
总结,做者认为从技术层面简单来讲:昨天是从Web到Native,今天是跨平台,明天是跨终端。
首先,做者介绍了Android P的时间表,今天3月谷歌发布了Android P的预览版,预计今年Q3会发布最终的release版本;Android P中发布了禁令:禁止调用非SDK的接口,各类访问非SDK接口的方式都会产生错误或者其余不但愿的后果,若是下表中详细说明了各类访问方式及相应的结果。
快应用是九大手机厂商基于硬件平台共同推出的新型应用生态,用户无需下载安装,即点即用,享受原生应用的性能体验。 首先,做者用2段小视频展现了快应用的使用场景和多场景融入的一个示例。快应用与H5均由脚手架生成项目,做者进行了对比和分析,以下图。
最后做者总结了下整个快应用的架构:数据驱动+DOM模型+应用管理。
尤为是这两年,性能优化与监控方向愈来愈受到各大公司的重视,从现场的火爆程度也能反应出来,一整个下午的演讲,会场坐满了人,还有很多是直接坐在地上的,讲台边的,甚至门口还有一大波实在是挤不进来了在门外听的。性能优化与监控专场主要有4个主题的分享,对于这4个主题的最终目标是一致的,所用手段不尽相同,可是总体思路差很少,限于篇幅的关系,这里主要分享一下《LinkedIn移动应用的性能优化之道》。
首先介绍了为何要作性能优化,做者的观点是用户第一,接着展现了当前LinkedIn注册用户超5亿,20多个业务线,团队开发人员200多人,代码行数累积400万;而后做者引出性能问题每每是项目规模太大引发的,所以认为合理的架构设计能够将问题化繁为简,要解决好性能问题,首先就须要好的架构设计;以下图所示,项目组件化应该算是任何项目架构变动的必经之路,将不一样的模块分离出来,拆成独立的组件,能够独立的运行。
1)面向切面编程,尽可能避免侵入业务,作到业务层面无感知;
2)数据采集不只仅是包括性能指标的数据,有时候须要采集发生性能问题的上下文数据,同时须要划分业务线和责任人;
3)数据采集完成后最终都是要上传到服务器上,在上传的过程当中,若是速度太快就会对服务器形成太大的压力,并且可能会把主业务的流量淹没掉,太慢又可能对问题不能及时修复,所以在数据上传的过程当中须要权衡服务器压力与实效性;
4)因为采集的日志量很是大,咱们不可能去分析全部的日志,所以须要对日志作优先级的选择。对实效性要求比较高的数据,例如Crash日志、实时下发的一些自定义事件,但愿很快的上传到服务器,不重要的日志先暂存在客户端,最后通过压缩批量上传;
再次,做者展现了领英从数据采集、存储、上报到数据可视化的整个方案。以下图所示:首先是客户端进行数据采集,通过后台提供的数据上传Api接口把数据上传到后台,后台服务把数据写入到Kafka,接着把数据分发到下游的订阅者:Samza实时任务和HDFS,Samza实时任务主要是流式处理,具备较高的实时性;HDFS是天天或者每一个小时的一个定时任务处理,主要是对离线数据进行批量操做,处理大量的数据,可是实时性就差一些了;当处理完成以后,会把实时数据和定时数据写到数据库里,经过数据可视化工具,就能看到不一样数据对应的表格;最后经过设置数据的性能报警阈值,能够对性能问题进行实时监控。
有了性能日志,那么接下来就是对日志进行分析。首先咱们看下是否可以对当前问题进行重现;而后检测当前网络、数据开关等是否正常;最后再经过一些分析工具对当前获取的日志进行分析并定位问题。问题定位到后,就须要对问题进行修复,经常使用的解决方式主要有:后台服务进行降级处理、客户端发补丁进行热修复、发布新的小版本。问题修复完成后,最后一步就是对刚刚修复的问题进行验证,验证线上是否已经彻底进行修复而且不会对其余功能模块产生影响。
最后,做者介绍了下性能优化在LinkedIn中的具体实践;以下图所示,主要包括:
1)网络优化
2)数据简化
3)布局优化
2)数据优化使用了采用数据精简工具Frontend Deco,删除无用字段,精简数据的模型等;
最后做者进行了一个总结,就很少描述了,附图一张。
GMTC从16年第一届的移动端发展到如今第三届的大前端,知名度也愈来愈高,专题数也扩大至当前的14个。我的感受大方向主要有3个:
第一个是端上的深根细做
,好比性能优化与监控等;第二个是端上的跨界融合
,好比端上AI与音视频等的结合;第三个是大前端的一统江湖
,国外从FaceBook推出的RN到如今Google发布的Flutter,国内从微信的小程序到如今的九大厂商联合推出的快应用,国内外厂商在大前端一统的路上百花齐放,充分说明将来必定是前端、Android与iOS大统一的趋势。以上内容仅表明我的观点,有什么问题欢迎探讨指正。