带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(3)

简介: 带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(3)

带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)https://developer.aliyun.com/article/1340358?groupCode=taobaotech


总结一下设计原则9个字:最小够用可扩展原则。


平台

包大小(kb, 基础功能)

说明

ANDROID

43kb

动态库,v8a

IOS

116

静态库,实际占app大小

Windows

47kb

x86


包大小情况如图(未包含淘宝天猫基础客户端能力,包含后略增加60k左右)。

 

目前Lite库已经作为淘系C++基础库集成在集团的近100个App里,除了包大小优势外,稳定性也极佳,百万分之1 左右的崩溃率(淘宝双端统计),同时与淘宝天猫架构组合作,无缝提供淘宝天猫客户端基础能力(log、埋点、键值存储等)。

 

关于跨平台的架构选择

 

通常技术还是为业务服务,还是贴近业务来讲述,能更有体感一些,这样也更直观的把我们遇到的问题和背后思考透漏给大家,作为参考,还是以消息为例:

 

我们面临的问题和诉求:

屏蔽通道,以统一的数据模型方式对外提供:底层需要对接3个服务端(多通道),同时每个server端提供的能力、功能又高度相似,需要抽象后统一屏蔽提供给上层,此外相关数据需要跨通道或者屏蔽通道存储。

调用方线程不统一:业务部分需要处理来自不同线程的高并发(于客户端而言)请求。

多语言:接入层需要适配不同平台,ANDROID-JAVA,IOS、MACOS-Object C,WIN-C++。

 

多维度支持定制:

 

  1. 业务定制:业务上需要面对不同的APP可以有不同的功能定制,这里还包括支持通道的可配置,业务能力的可定制等,举个例子:在淘特里无群聊服务,但是在淘宝里这一部分又是需要的,在千牛里需要有商家群,但不需要有淘友关系群,等等基于业务、以及包大小考虑的定制。

 

 

 

  1. 线程调度定制:基于耗电量、系统资源、平台特性等考虑,需要线程调度方案的可定制。在移动端对耗电量比较敏感且系统资源有限,但是PC端上对性能要求会更高一些,如何在统一的方案里支持线程调度的平台级、甚至是业务级别定制。
  2. 网络流量管理定制:对网络能力一方面要有统一的监控,方便判断MTOP的各种API调用情况分析,另一方面需 要有统一的切面能力,在MTOP的调用上做二次业务级别的网络流量接口优化定制。
  3. DB管理定制:基于FD、平台特定等考虑,需要DB管理可以根据不同的平台有不同的定制策略,在移动端采用  单用户一库多表的形式,在pc端性能最大化采用多库多表甚至需要支持不同app的不同db管理方案可定制。

 

基础能力复用:对于集团通用的基础组件,需要有统一的能力从外部获取从而方便c++层使用。稳定性保障:是否方便做单元测试,设计上如何避免单元测试对内部代码的入侵。

 

基于以上,我们设计了MessageSDK的架构大致如下:

 

image.png


带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(4)https://developer.aliyun.com/article/1340356?groupCode=taobaotech

 

相关文章
|
开发工具 C++ 容器
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
122 0
|
中间件 开发工具 Android开发
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
117 0
|
3月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
68 3
|
3月前
|
存储 文字识别 算法
解析!文档扫描 SDK 中的高级图像处理技术
本博客讨论了图像质量在文档扫描中的重要性,解决了扫描过程中遇到的常见挑战,以及文档扫描 SDK 利用先进的图像处理技术来应对这些挑战。
|
5月前
|
编解码 Linux 开发工具
大牛直播SDK跨平台RTMP直播推送模块技术设计和功能列表
大牛直播SDK是一款跨平台RTMP直播推送模块,支持Windows、Linux(x64_64与aarch64架构)、Android及iOS平台。该SDK功能全面,包括摄像头、屏幕、麦克风等数据采集与推送,并支持编码前后数据对接。其架构设计优秀,确保低延迟与高效率,结合SmartPlayer播放器实现毫秒级延迟体验。具备全自研框架,易于扩展且支持多种数据源接入,如外部YUV/RGB/H.264等格式。此外,各平台支持特性丰富,如Windows平台支持多摄像头合成,Android与iOS平台支持前后摄像头实时切换等。大牛直播SDK还提供了多个示例项目以帮助开发者快速上手。
109 0
|
7月前
|
JSON 前端开发 JavaScript
技术笔记:vmware之VMwareRemoteConsole(VMRC)SDK(二)
技术笔记:vmware之VMwareRemoteConsole(VMRC)SDK(二)
280 0
|
8月前
|
存储 安全 机器人
【LLM】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
【5月更文挑战第13天】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
111 1
|
5月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
133 0
|
2月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
92 1
|
3月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
71 7

热门文章

最新文章