2019年3月15日,由安卓绿色联盟、网易、华为终端开放实验室联合举办的第24期主题技术沙龙活动于杭州网易研究院圆满结束。
本期沙龙邀请了来自网易云音乐、网易考拉、网易严选及华为终端的六位技术大咖为现场及线上近五万名开发者分享应用高效开发最佳实践经验。接下来让我们一起来回顾一下本期精彩瞬间。
1、Android ABTest 框架设计
应用开发过程中,会涉及很多A/B测试相关的逻辑,有些与纯逻辑相关,有些与UI界面相关,这些逻辑的存在可以在应用版本更新迭代过程中,帮助开发者分析评估出最能满足用户需求的应用版本。
本议题网易严选Android资深开发张云龙从A/B/n设计与实现、ViewID 实现与优化、UI 属性动态修改、UI 重排版与替换四个方面以网易严选的实践为例对Android客户端的ABTest框架如何实现以及部分UI相关的测试数据如何生成进行详细讲解。
2、Weex 在考拉内应用实践
Weex是一款能够完美兼顾性能与动态性的框架,可以让移动开发者通过简捷的前端语法写出Native级别的性能体验,而且支持iOS、安卓、YunOS及Web等多端部署。
本议题网易考拉Android资深开发周俊从技术选型、实践成果、Js Bridge方案设计、缓存方案设计、辅助开发工具集成五个方面介绍了Weex框架在网易考拉内的实践经验。
Weex框架凭借着跨平台、实时部署、性能好、良好的Web开发体验等优势成为网易考拉首选应用的框架,并在网易考拉交易业务、活动搭建业务、种草社区、钱包等业务模块得到广泛应用。在实际应用过程中,网易考拉又对Js Bridge设计方案、Js 缓存设计、辅助开发工具集成等模块进行了优化,实现了性能与动态性的完美兼容。
3、考拉安卓组件化实践
在应用功能集成日益庞大的今天,为了解决应用因各种功能集成带来的编译速度慢、重复代码多、编译分支合并复杂、小改动大等问题,组件化成为解决以上问题的最佳选择。
本议题网易考拉Android资深开发朱佳骏从路由与服务、考拉拆分的过程举例、工程组合与协作方式等方面对网易考拉的组件化实践进行了分享。
在组件化过程中,一些分离的组件往往需要相互通讯,这就需要借助路由与服务的生成与加载功能;网易考拉通过对应用整体工程节奏的考量,将社区业务进行独立,同时又区别对待组件化集成与单工程的处理,实现了应用的组件化过度。
4、云音乐Android自动埋点实践
在开发过程中,一些业务逻辑并不是很复杂的点,如果由人工进行埋点,一来比较机械,二来容易漏埋、错埋,网易云音乐通过以上共性问题分析,实现了埋点的自动化实践。
本议题网易云音乐高级Android工程师张丹从背景、View唯一标识、事件拦截、业务数据搜集四个方面对网易云音乐的Android自动埋点实践进行分享。
网易云音乐通过View标识的唯一性(ID的唯一性)利用Activity + idName + (position)方案对一些业务逻辑进行自动化埋点。对控件被点击时进行的拦截通过编译期插桩方案进行解决,从而实现了业务数据的进一步搜集。
5、云音乐Android自动化性能测试实践
在应用开发过程中,性能作为一项重要指标决定着用户对应用体验的整体感知。
本议题网易云音乐高级Android工程师李宗骏从云音乐性能测试目标、卡顿监控中的实践、从测试闭环到开发闭环三个方面对云音乐Android自动化性能测试实践进行分享。
在性能测试过程云音乐一直以具有可执行的标准、可分析的问题、持续集成能力、向开发侧闭环为目标,针对应用卡顿问题进行重点监控,通过将问题按照场景进行细分对卡顿处理模式进行定制化组合,从而有效对应用卡顿问题进行有效监控,实现了应用性能测试从测试闭环到开发闭环。
6.应用低功耗开发探讨
随着智能手机的普及以及各类大型应用的层出不穷,安卓应用的功耗设计直接影响着广大用户对应用的体验,低功耗的应用开发越来越受开发者的广泛重视。
本议题华为终端功耗架构师钱华君从安卓绿色联盟功耗标准解读、谷歌与华为功耗管理方案分析、资源使用案例分享和建议三方面对当前应用低功耗开发设计进行详细讲解。
从硬件与软件两方面分析,影响手机耗电的因素有很多,用户的对手机使用的个人偏好也导致不同程度的手机耗电,为此,谷歌与华为分别制定了不同的功耗设计方案。为了实现应用的低功耗开发,开发者在应用资源使用过程中要尽可能多采用合理定时任务、统一网络请求、合理使用Wakelock。