与技术大咖探讨移动端开发实战解决技巧

2016年11月19日,在北京京都信苑饭店,“魅族技术开放日第六期暨魅族开放平台开发者大赛颁奖礼”在SDCC2016中国软件开发者大会分会场圆满落幕。本次活动不仅诞生了一批优秀的开发者,而且来自魅族、美团等技术大咖也带来了满满的干货分享。

颁奖结束后,正式进入技术的干货分享环节,来自魅族前端工程师尹凯斐发表《Hybrid App开发解决方案》主题演讲,以及美团外卖大众点评高级安卓工程师董士超发表《美团外卖Android客户端性能监控体系实现》主题演讲。与会开发者与嘉宾积极互动,就相关技术实践做深入探讨,收获满满。

Hybrid App开发解决方案

尹凯斐首先为大家介绍了目前自己所负责的工作,即前端公共平台的搭建和一些基础设施的功能。包括统计分析平台、前后端分离实践、Flyme公共UI组件等等,其中统计分析平台的作用是在用户访问网页时,能够收集浏览器信息、页面用户点击次数、页面报错信息,这些信息收集上来后方便后续的优化工作,以便为用户带来更好的体验。

与技术大咖探讨移动端开发实战解决技巧

魅族前端工程师 尹凯斐

这次尹凯斐为大家带来的是Hybrid App开发解决方案,Hybrid App属于混合开发,从原来客户端开发,变成客户端和前端一起配合开发。但使用Hybrid App开发需要符合一定的应用场景,例如Flyme中的相机就不能通过Hybrid App实现。

与技术大咖探讨移动端开发实战解决技巧

Hybrid App开发解决方案

尹凯斐表示,使用Hybrid有三大好处:其一,缩短开发时间。为什么时间会变短?尹凯斐表示,如果使用Android或者IOS开发语言布局,本身速度就没有HTML和CSS那么快,HTML和CSS也有几十年的历史,且这二种语言就是为web布局而生的,所以开发效率会大大提升;

其二,代码复用率高。开发APP不仅局限于安卓,还会有iOS版本,但这种情况页面是可以共用的,安卓和iOS都可以用。并且在浏览器中同样可以,如果在客户端中嵌入了H5页面,可以放到浏览器里同样访问,只是会牺牲一部分客户端的功能,可以用来给客户端导流;

第三,更新迭代加快。这里主要是指客户端更新,它本身要去发布版本,iOS可能更麻烦一些。但在H5中仅需往服务器更新一个资源包,客户端拉下来就可以更新,并且在线用户是无感知的,可以做到静默更新。

该方案主要由三部分组成,包括通信机制、更新机制以及包管理平台。通信机制又分为前端和客户端交互,提供公共方法两种;更新机制分为全量、增量、灰度三种更新机制;包管理平台则分为管理业务的发布,生成全量包、增量包,存放资源包到CDN以及实现灰度发布等。

美团外卖Android客户端性能监控体系实现

一直以来,包括崩溃、网络延迟、响应速度慢、流量大、耗时耗电等在内的App性能问题都是造成用户流失的罪魁祸首之一,由此让App 性能监测与优化成为了应用开发者们在开发过程中的重中之重。在本次演讲中,美团外卖高级Android工程师董士超从美团外卖App演进过程中所存在的问题源头切入,深度分享了美团外卖在Android端性能监控方面的探索实践。

与技术大咖探讨移动端开发实战解决技巧

美团外卖高级Android工程师 董士超

从开发、测试到上线时期,随着功能需求累加,人员规模扩大,项目越来越复杂,且迭代周期短,用户感知到多种多样的性能问题,但当前Android Profiling/Analysis工具存在着工具零散、不自动化、覆盖狭窄等缺陷,根本无法彻底解决所面临的问题,对于美团外卖开发团队来说,需要这样一款能够实现自动化收集真实性能数据、解放人力、主动预防的整合工具,由此自主研发了移动端性能监控解决方案——Hertz。

在接下来的演讲中,董士超具体分享了Hertz的目标实现、架构设计以及全方位的性能监控体系。

从设计之初,Hertz的目标即是致力于解决软件开发生命周期中从开发到上线所面临的问题,具体包括开发时期,检查性能异常点通知开发者;测试时期,结合现有测试工具,得出性能测试报告;上线时期,监控平台上报性能数据,进而实现问题定位追查。而在架构方面,主要分为接口层、业务层以及数据适配层三层,其中业务层包含页面测数模块和性能采集模块(负责CPU、内存、FPS、堆栈、流量等的采集与卡顿检测),而在数据适配层,Report负责云端监控、堆栈及代码日志上报,HTML/XML则包含QA自动化测试报告、Jenkins集成报告。

与技术大咖探讨移动端开发实战解决技巧

Hertz 架构

在演讲中,董士超就指标获取的卡顿检测方面进行了详细的讲解。卡顿可按耗时、频次的不同进行分类,开发者在抓取卡顿堆栈时需特别注意四点,即抓取时机、卡顿堆栈归类、上报规则以及符号化问题。由此总结出卡顿采集的策略为:N次卡顿超过阈值T。同时,在测量页面加载时间也需要解决三个问题,包括如何衡量页面测试时间,如何不写或少写代码以及如何判断UI渲染完成。在实际应用方面,董士超又分别就界面、卡顿侦测Case、测试期、运维期等几个方面展示了Hertz在性能监测方面的能力。

以上就是本次“魅族技术开放日第六期暨魅族开放平台开发者大赛颁奖礼”活动中的技术分享,在明年的魅族开发者大赛中,相信会有更多的技术大咖带来干货分享。到时让我们依旧相聚于此,共同分享各自的真知灼见。魅族开放平台,为心怀梦想的年轻人插上助力的翅膀。

魅族开发者大赛相关文章链接:

  • Coding哥,魅族让你用洪荒之力来夺宝了!(
  • 专访李柯辰:有效的营销方法很重要 魅族为开发者构筑推广平台(
  • 携手开发者 魅族开放平台筑梦成长(
  • 为有梦青年插上助力的翅膀 魅族开发者大赛取得圆满成功(