带你读《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

 

相关文章
|
9月前
|
开发工具 C++ 容器
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
|
9月前
|
中间件 开发工具 Android开发
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
|
9月前
|
IDE Java 开发工具
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(6)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(6)
|
9月前
|
开发工具 Android开发 开发者
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(5)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(5)
|
1月前
|
存储 安全 机器人
【LLM】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
【5月更文挑战第13天】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
68 1
|
9月前
|
存储 监控 调度
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(4)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(4)
|
1月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8月前
|
API 开发工具 Android开发
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
解决 Android App 上架 Google play后 ,签名变更,第三方sdk无法登录
182 0
|
1月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
717 0
|
4天前
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
7 0