[关闭]
@pockry 2016-12-15T17:52:48.000000Z 字数 1914 阅读 1717

中国技术开放日广州站举行 移动开发前沿技术分享

移动


12月9日,中国技术开放日广州站成功举办,来自腾讯、阿里、百度、唯品会的技术专家分享了移动开发前沿技术和一线工程实践。以下是分享内容的简单整理。

微信Mars之高质量网络连接探索

微信的高级工程师周志杰分享了微信Mars跨平台终端组件。

Mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。现正在筹备开源中,它主要包括基础库COMM、通用日志模块XLOG、网络诊断模块SDT、信令传输网络模块STN四个部分。

它的架构如下:

image

本次演讲主要分析了STN信令传输网络,与目前常用的网络组件如AFNetworking、Retrofit、OkHttp相比,STN是跨平台的,基于Socket层的信令网络,主要用于小数据传输。它的特点包括:

在Mars STN的连接策略上,面临诸多困难,如Connect超时的选择,需要同时考虑到可用性和网络敏感性,而官方提供的默认实现因为运营商和平台差异等等实际上不可用。这部分需要根据对不同平台的了解制定灵活的策略。除此之外,还有连接效率、复合连接等等问题。

连接超时机制对于IM来说也是一个坑点,STN通过分层设计和多级超时来解决这个问题。

Mars预计春节前开源,并且保持项目持续维护更新。

Atlas:手淘灵活的容器框架

淘宝资深测试开发工程师李龙(查郁)分享了手淘容器框架Atlas.

Atlas是一个Android客户端容器化框架,主要提供了组件化、动态性、解耦化的支持。支持工程师在工程编码期、Apk运行期以及后续运维修复期的各种问题。

它的整体设计如下:

image

Atlas的容器化实现,即把开发App转换为开发Bundle,为Bundle设计特殊的机制和环境,让Bundle运行在Bundle runtime而非Android系统里。

Atlas的动态化实现,最主要是bundle类部署的diff算法,通过将Dex逆向为Smali,然后通过算法生成diff.dex实现修改本地代码。另外还有资源部署等问题。

百度iOS输入法性能优化

百度资深研发工程师胡官钦为我们分享了百度iOS输入法性能优化的经验。

自从iOS 8支持第三方输入法以来,百度输入法就开发了iOS版本并进行不断的优化。iOS第三方输入法面临问题主要包括,键盘无法弹出、弹出不流畅、显示异常、异常消失、系统限制等等。

百度iOS输入法在性能优化过程中总结了5条方法论,包括:

胡官钦在演讲中总结了很多案例,并且以输入法皮肤为例进行了一次性能优化实操。

和时间赛跑的移动电商演进

唯品会移动开发总监蔡镜明分享了唯品会移动平台技术。

唯品会作为做特卖的品牌电商,经常做促销活动,对内容和页面的动态化要求极高,因此采用了Hybrid开发技术。整体技术架构如下:

image

唯品会选择了Cordoba框架支持Hybrid开发,在Native/H5交互协议方面采用SDK代替URL,是返回结果多样化,扩展方式更灵活。

在WebView的选择上,唯品会在iOS平台使用了WKWebView代替UIWebView,在Android上则是使用了第三方的X5 WebView。通过使用这些新版和增强WebView,App性能体验得到明显提升。

在基础组件方面,包括离线缓存、异常收集上报、智能路由等,唯品会也做了专门的优化。

另外,唯品会还尝试了当前非常火热的React Native,积累了一定的实践经验。React Native和Hybrid方案相比,性能的确有明显提升,但是也存在一些坑,主要是内存方面的一些问题。

本次广州站的分享内容充实,只讲干货,受到了参会者的认同和赞扬。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注