一键总结音视频内容
Attention is All you Need
摘要
这段视频是2024 Kotlin中文开发者大会上,腾讯视频团队的王泽香老师分享关于如何使用KMP (Kotlin Multiplatform) 和 Compose 技术适配鸿蒙系统的实践经验。王老师详细介绍了腾讯视频在2022年开始在安卓端使用Kotlin和Compose,并在2023年扩展到iOS端,最终在2024年将KMP和Compose作为鸿蒙平台的底层技术,实现了三端(安卓、iOS、鸿蒙)代码复用。分享内容涵盖了技术选型的原因、开发过程中遇到的挑战以及解决方案,包括如何利用KMP和Compose的特性实现高效开发。
亮点
- 🚀 腾讯视频在2022年开始在安卓端使用Kotlin和Compose,并在2023年扩展到iOS端,最终在2024年将KMP和Compose作为鸿蒙平台的底层技术。
- 🛠️ 在鸿蒙平台适配过程中,团队面临了地址兼容性问题,因为鸿蒙是64位地址,而浏览器标准的WebAssembly虚拟机只支持32位地址,需要手动修改生成的JS代码。
- ⚙️ 团队对比了Kotlin Native在鸿蒙和iOS上的性能差异,发现鸿蒙平台在函数内联、线程本地存储和协程处理方面存在性能瓶颈,并通过优化LVM指令生成、使用ET2S模型和解决lic加库的unwind函数问题来提升性能。
- 🎨 Compose Multiplatform在鸿蒙上的实现基于Skia库,但由于鸿蒙系统使用的Skia库版本与官方版本存在差异,导致符号不匹配,最终团队通过移植官方Skia库并对接鸿蒙字体库解决了兼容性问题。
- 💡 在鸿蒙字体库绘制方面,团队发现鸿蒙使用可变字体,而Compose尚未完全支持,因此通过传入wait轴参数来兼容可变字体,并解决了Skia内存错误问题,最终实现了Compose在鸿蒙上的正常渲染。
#KotlinMultiplatform #Compose #HarmonyOS #腾讯视频 #跨平台开发