一键总结音视频内容

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 #腾讯视频 #跨平台开发

思考

  1. 腾讯视频在适配鸿蒙的过程中,除了提到的地址兼容性、性能优化和Skia库兼容性问题外,还遇到了哪些其他挑战?
  2. 腾讯视频在KMP和Compose的鸿蒙适配方案中,是否有考虑过使用其他跨平台框架或技术?为什么最终选择了KMP和Compose?
  3. 腾讯视频在鸿蒙平台上的性能优化方案,除了提到的LVM指令优化、ET2S模型和lic加库优化外,还有哪些其他的优化措施?