OneSDK与手机淘宝技术能力开放

该文章来自阿里巴巴技术协会(ATA)精选集 

OneSDK与手机淘宝技术能力开放

7月16日,阿里巴巴集团在杭州召开阿里百川无线开放大会,来自阿里巴巴的技术专家向与会观众介绍了百川无线开放背后的技术细节。


阿里百川阿里巴巴集团无线开放平台,为移动开发者(涵盖移动创业者)提供快速搭建APP、加速APP商业化、提升用户体验的解决方案。在阿里百川无线开放大会的技术专场,阿里技术专家分享了关于TAE 2.0、OpenIM、移动安全等方面的技术细节,InfoQ之前已对TAE和OpenIM的技术负责人做过采访,今天就让我们来了解一下阿里百川无线开发SDK以及手机淘宝技术能力开放。


OneSDK:组件式架构解决SDK集成问题


阿里巴巴共享业务事业部的高级无线技术专家王玉明给大家分享了阿里百川的开放SDK技术:OneSDK,致力于解决大量SDK带来的集成问题。


对于目前的移动开发来说,诸如推送、IM、广告、统计等功能,开发者自己开发耗时耗力,使用第三方服务是明智选择,而使用这些服务都会用到它们提供的SDK。因此除了少数应用外,大量使用第三方SDK是不可避免的趋势。


但是,随着大量第三方SDK的使用,一些问题也慢慢暴露出来,比如:

  • 多平台。不同的App管理体系,多个密钥带来的安全问题,以及多次接入带来的集成成本。

  • 多风格。不同SDK的初始化方法、接口标准,以及编程风格。

  • 复杂依赖。不同SDK本身的依赖不同,会带来依赖关系混乱,版本冲突,以及引入不需要的依赖的问题。

  • 包大小。由于不同SDK可能包含重复能力,带来重复依赖,以及不需要的资源导入,会带来包大小的超标。


阿里百川因为同时开放了很多服务,会带来很多SDK,因此它推出了OneSDK来解决这个问题。使用OneSDK,开发者只需要下载一个SDK包,一次接入动作,一个初始化入口即可完成集成,为开发者带来一致性的体验。


在架构上,OneSDK分为业务组件、技术组件和组件容器。业务组件包括淘宝电商、云账号、OpenCRM等。技术组件包括推送、多媒体云、通讯、安全、 Cache、网络等。组件容器包括总线、组件管理、系统服务三大类。其中最关键的是组件管理,包括组件发现、依赖管理以及生命周期管理功能,通过这些功能 实现SDK的组件化。


OneSDK通过统一接入层与百川云服务进行交互,统一接入层包括网关、CDN、IM、数据同步等,因为涉及到多个业务,统一接入层是由淘宝和阿里云联手打造,并支撑多次双十一,在安全方面,能做到全链路加密和会话级安全,并且进行了无线网络、流量、电量等优化,让SDK更高效。


另外,OneSDK还接入了阿里百川的统一支撑体系,包括自动降级、监控支撑、修复响应等,加强SDK的稳定性和处理能力。其中OneSDK还接入了Crash监控,能监控并统计应用的Crash信息。


OneSDK还接入了高德、友盟等第三方SDK,并同样的提供一致体验,开发者只需选择想要使用的SDK即可生成最小化的SDK包。


OneSDK所接入的服务和能力中还包括了手机淘宝所开放出来的能力,手机淘宝经过多年架构演进也积累了很多经验,这次技术分享上,手淘也分享了它们开放出来的能力。


手机淘宝技术能力开放


阿里巴巴无线事业部总监吴志华给大家分享了手机淘宝技术能力开放的话题,包括手机淘宝的架构治理、移动网络建设、重点组件产品介绍等。


移动开发技术已经经过了10年发展。从2005年的KJava为代表的单进程技术,到2008年Symbian的应用级动态部署,再到2010年左右以iOS/Android为代表的多进程,其后涌现出来的进程级动态部署的插件化,以及2014年到如今的容器级动态部署。


淘宝从2009年开始关注移动端,先后经历了WAP、Mobile Web,到API网关、HTML5容器,以及2014年的容器架构。经历了很长时间的架构治理之路。在2013年淘宝对移动实行ALL IN战略之后,手机淘宝开始反思客户端App架构该如何设计,以及如何应对大量业务同时涌入、超10个团队的代码整合等问题。他们思考的结果就是一切皆组 件(Bundle),Bundle装载在容器里,任一Bundle均可以动态部署,阿里无线终端容器框架(Altas),管理组件生命周期,提供组件运行 必须服务,实现组件间环境隔离、权限控制、运行期性能监控等功能。另外,在基础架构演进、工具体系完善、研发机制变革上,手机淘宝也做了许多工作。

OneSDK与手机淘宝技术能力开放
(手机淘宝容器架构)


关于手机淘宝客户端架构演进,阿里无线技术专家李敏在2014年ArchSummit北京上做过分享,InfoQ也做过详细报道,感兴趣的可以查看,这里就不再赘述。


在 移动网络建设上,手机淘宝采用了SPDY协议来降低延迟,加速数据传输,并且上马了异地多活与容灾措施以保障业务的高可用性。另外还推出了有特色的移动云 通道服务,该架构有高实时高到达率双向通道、海量长连接的接入层服务Aserver、使用无线特色的TLS加密协议Slight SSL 0RTT、灵活的网络调度功能(AMDC)等特点。


在手机淘宝技术能力开放方面,他们对手机淘宝的能力做了一个全面梳理,分为基础研发平台、基础服务能力、无线电商能力三部分。其中基础研发平台包括研发支撑、运维平台、容器架构、 HotPatch、Push和数据统计等,基础服务包括网络通道服务、多媒体服务、安全、算法能力等,无线电商能力则是淘宝相对于其它第三方开发者服务特 有的能力,包括交易组件、店铺对外开放等。


在开放出来的技术能力中重点的组件产品有:

  • Crash上报能力,支持NDK C/C++ crash上报和分析,并提供实时监控平台,分析crash趋势并告警。

  • 性能栅栏,通过AOP注入方式,进行非侵入式的性能监控。收集的性能指数包括绘图性能(帧率、ANR、View层级)、内存性能(内存泄露、 OOM、内存占用)、耗电分析、网络性能、调度性能(非线程池中Thread对象的监控)、代码缺陷(开启严格模式并收集代码缺陷)。

  • Agoo推送,业内领先的单台服务器建链400万,同时在线长连接1.2亿+,接入集团内部应用,经历了3次双十一。并且支持消息盒子和国际化。

  • WEBP/BPG,手淘使用WEBP和BPG减小图片尺寸,优化解码性能。


另外,手机淘宝还在内部推动一些通用底层技术的开源,在最近开源了其HotPatch技术:无侵入AOP框架Dexposed,InfoQ对其有过报道,将来手淘还会开源其客户端容器框架Atlas。


从上面我们可以看到,阿里百川的确是以技术作为驱动,输出自己的技术能力帮助开发者和移动创业者走向成功,而开放的心态,将帮助它走得更远。


原文系InfoQ报道。


MTT是手机淘宝技术团队(Mobile Taobao Tech team)的英文缩写,欢迎关注手机淘宝技术团队,一起交流分享无线技术,共创移动开发无限未来!扫描微信二维码关注我们!我们将分享更多的独家技术细节!

OneSDK与手机淘宝技术能力开放

上一篇:IDEA13+Maven + Jetty-plugin 调试项目


下一篇:一起谈.NET技术,巨大转变!ASP.NET MVC2行为方法新改进