《架构师》2016年5月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

Native的插件化和HotFix

Native的插件化和HotFix方面,我们在iOS端使用开源的解决方案JSPatch,在Android端采用了自研的解决方案DynamicAPK,可以支持各组件的资源及代码的更新。DynamicAPK方案无需做任何activity/fragment/resource的proxy实现,使得原有的业务代码无需修改即可支持,迁移代码很小,同时可以提升App启动时间,详情请参考GitHub。

其他优化都是针对特定的业务场景展开,例如Android的海外地图没有好的解决方案,iOS的地图控件又存在人在国外看国外和人在国外看国内地图数据精度低的问题,携程基于Google地图开发了Hybrid版地图,用于在特定场景的业务需求;Hybrid网络性能优化,通过Hybrid接口发送Native网络服务,可以避免DNS劫持并且利用Native端的TCP长连接;海外网络性能优化,通过TCP海外加速产品实现链路优化;图片性能优化方面使用了WebP图片格式,可以降低30-40%图片大小,图片分片上传等。

移动端技术发展很快,携程也在积极尝试新技术,例如React Native(已在账户信息部分页面使用),新的网络协议SPDYHTTP/2.0, Apple/Huawei/Samsung Watch App等都做了大量尝试,以期能够提升产品品质。

总之,App架构的技术优化没有尽头,我们会继续以开发效率、性能、质量、新技术几个纬度不断推进,希望未来可以有更多内容分享给业内同行。