1、手淘鸿蒙基础架构3刘韩松淘宝高级技术专家(庐轩)主会场演讲嘉宾4手淘鸿蒙基础架构手淘鸿蒙架构总览 手淘多平台架构的演进及性能优先的目标 手淘鸿蒙C+基座及业务架构 手淘鸿蒙模块化开发及基础UI框架手淘鸿蒙C+基建 TCPKG:面向移动端的依赖管理解决方案 全源码:稳定性、性能、研发效率的基石 C+研发规范:C+20、编码编译规范、脚手架 基础库:Binding框架等大幅提升多平台开发效率 C+质量体系:AI单测、SANITIZER体系手淘鸿蒙性能优化专项 协程及虚拟线程 JSON序列化的向量化解决方案 基于全源码的GPO、BOLT重排等优化措施 包大小:基础容器的特化 手淘多平台架构的演进及性
2、能优先的目标 手淘鸿蒙C+基座及业务架构 手淘鸿蒙模块化开发及基础业务框架手淘鸿蒙架构总览手淘多平台架构的演进及性能优先的目标跨平台移动基座 C+化终端容器收敛多端一套标准一套技术实现容器统一收敛到DX、Weex终端能力标准化模块化开发及基础业务框架启动框架导航框架低耦合架构:模块动态加载/依赖业务隔离机制模块级懒加载,防止依赖雪崩 TCPKG:面向移动端的包管理解决方案 全源码:稳定性、性能、研发效率的基石 C+研发规范:C+20、编码编译规范、脚手架 基础库:Binding框架等大幅提升多平台开发效率 C+质量体系:AI单测、SANITIZER体系手淘鸿蒙C+基建TCPKG:面向移动端的包
3、管理解决方案一套CMake脚本完成多端工程管理立足移动端开发客户端&PC端的C+依赖管理全源码编译的基石全源码:稳定性、性能、研发效率的基石C+全源码解决方案ABI兼容问题(Native Crash率下降一个数量级)较为方便的落实PGO、BOLT重排等优化措施调试、诊断效率大幅提升120wC+源码,编译耗时4分钟C+研发规范:C+20、编码编译规范、脚手架、基础库C+20标准的选择开发效率、稳定性、性能协程得到正式支持modules、concept、ranges构建系统构建系统CMake编译工具链编译工具链Clang(对应NDK 21+,xcode 15+,ohos SDK 4.0+)发布方式
4、发布方式1,支持动态库发布2,支持静态库发布3,支持全源码发布编码规范编码规范阿里C+code stylehttps:/yuque.alibaba- 集团C+开发规约优化级别优化级别-Os符号可见性符号可见性默认不可见,只导出必要符号rtti支持异常异常开启C+LevelC+20C+基础库基础库stl+扩展https:/yuque.alibaba- Sanitizer线上支持gwp-asan(默认支持)单测框架单测框架/覆盖率覆盖率gtest/80%以上基础库:多平台开发效率的基础基础库基于协程的虚拟线程JSON序列化的向量化解决方案Binding框架大幅提升多平台效率stl(C+11)stl
5、(C+17)stl(C+20)follyboostChromium basefmlQT字符串和文本处理丰富易用string_view使用stl:string_view使用stl:string_view线程池线程池内存分配器并发工具并发工具/协程协程 5.3引入QCoro容器线程安全容器网络时间定时器定时器文件系统和文件操作功能比较基础数学和数值操作JSONXMLURLEncodeBase64随机数但不好用但不好用但不好用正则表达式智能指针native bridge基础库:Binding框架大幅提升多平台开发效率Binding框架所有DSL都是基于C+来编写Android/Harmony等多端开
6、发一致C+质量体系:静态扫描、AI单测、SANITIZER体系质量体系AI单测SANITIZER体系(hwasan、gwp-asan)协程及虚拟线程 JSON序列化的向量化解决方案 基于全源码的GPO、BOLT重排等优化措施 包大小:基础容器的特化手淘鸿蒙性能优化专项基于协程的虚拟线程协程及虚拟线程简化协程异步调用减少线程数量及资源竞争(40 vs 200)JSON序列化的向量化解决方案JSON序列化的极致优化JSON解析拆分成向量化和实例化向量化阶段:通过向量化指量进行to