NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

阿里百川技术分享:OneSDK 与手机淘宝技术能力开放

  • 2015-08-03
  • 本文字数:2505 字

    阅读完需:约 8 分钟

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),管理组件生命周期,提供组件运行 必须服务,实现组件间环境隔离、权限控制、运行期性能监控等功能。另外,在基础架构演进、工具体系完善、研发机制变革上,手机淘宝也做了许多工作。


(手机淘宝容器架构)

关于手机淘宝客户端架构演进,阿里无线技术专家李敏在 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。

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

2015-08-03 01:098531
用户头像

发布了 164 篇内容, 共 103.5 次阅读, 收获喜欢 391 次。

关注

评论

发布
暂无评论
发现更多内容

这6个浏览器插件,让你的浏览器大为不同。

彭宏豪95

chrome 浏览器 插件 chrome扩展 4月日更

假期后来一波干货:一文理清JVM和GC

比伯

Java 程序员 架构 JVM 计算机

拍乐云 x 扬帆出海 x LiveCloud:音视频出海专家干货分享

拍乐云Pano

flutter ios android WebRTC RTC

「架构实战营」模块一作业

between

架构实战营

【Java 试题】AQS解析

程序员架构进阶

AQS Java源码 28天写作 4月日更

企业为何开始选择使用成品训练数据集?

澳鹏Appen

人工智能 机器学习 大数据 数据集 数据流

区块链商品溯源平台搭建及防伪溯源解决方案

13828808769

商品溯源

MUSO挖矿系统开发

飞亚科技

书单|互联网企业面试案头书之运营篇

博文视点Broadview

你在备战“字节”时一定需要这个,程序员进大厂指南+算法已开源

Java架构师迁哥

架构训练营

架构训练营

面试笔记(二)线程池连环炮

U2647

Thread 4月日更

BBK智能合约系统开发|BBK智能合约APP软件开发

系统开发

超低功耗LoRa无线通信应用实践

不脱发的程序猿

物联网 无线通信 4月日更 LoRa 无线通信模组

架构实战营模块一作业

sandy

情指勤一体化指挥调度平台建设,重点人员管理平台

CSS实现动画环绕下划线效果

Sakura

4月日更

Crash 游戏是公平的吗?

飞亚科技

有了这个框架,平台开发谁还手敲代码?

华为云开发者联盟

华为云 智慧园区 MainPortal 统一门户 HDC2021

Spring Boot + RabbitMQ实现订单过期自动取消功能

Lonely Sufferer

RabbitMQ springboot

教你一个著名的流行数据格式:Python JSON

华为云开发者联盟

Python 数据 Python JSON JSON序列化 半结构化数据

架构实战营模块 1 作业

Geek_2b52aa

架构实战营

7 个非常实用的 Shell 拿来就用脚本实例!

JackTian

Linux 编程 Shell 脚本语言 运维工程师

牛比特小矿工系统开发|牛比特小矿工软件APP开发

系统开发

Rust从0到1-结构体-定义和实例化

rust struct 结构体

人生苦短,我用Python之小游戏

Bob

开发者 Python 游戏编程 4月日更 -python

3d导航栏

赫鲁小夫

4月日更

手起刀落,连斩获阿里(四面)+字节(四面)+美团(三面)三家一线大厂Offer!

Java架构追梦

Java 架构 面试

区块链BaaS平台的搭建,底层BaaS服务平台的开发

13828808769

行业资讯 产品资讯

对于数据,科技小白提出了灵魂三问:从哪儿来?到哪儿去?能干什么?

华为云开发者联盟

人工智能 安全 数据 数据采集 网络人工智能

平面设计之PS(前序)

空城机

PhotoShop ps 4月日更

阿里百川技术分享:OneSDK与手机淘宝技术能力开放_移动_徐川_InfoQ精选文章