当前位置:首页 > 报告详情

day1_5-黄盼青-用一套代码连接所有平台:KMP 在 Netvue 的深度应用.pdf

上传人: 明**** 编号:1069680 2026-01-17 22页 2.19MB

1、Developed by JetBrainsKotlin用一套代码连接所有平台:KMP 在 Netvue的深度应用黄盼青2025 Kotlin?多端存在大量重复的业务逻辑没有统一的中台层,各端都必须处理复杂的音视频业务多端实现长期演化,逻辑差异越来越大使用使用KMP前所面对的问题前所面对的问题回顾一下跨平台技术的发展可移植代码(Portable Code)+平台抽象层(PAL)领域领域跨平台开源库跨平台开源库GUIQt、wxWidgets、GTK、Dear ImGui多媒体多媒体/游戏游戏SDL、OpenAL、SFML、OpenGL/Vulkan网络网络Boost.Asio、libcurl、g

2、RPC、Poco通用库通用库Boost、OpenCV构建系统构建系统CMake、Meson音视频音视频FFmpeg、libVLC、Gstreamer、WebRTC可移植代码(Portable Code)+平台抽象层(PAL)优点优点:性能好多平台编译开源资源丰富缺点缺点:对于开发人员要求高开发效率低跨语言成本高框架跨平台WebView-JS Runtime+原生控件-自绘引擎框架跨平台UI 能跨平台,不代表你的应用“真的”跨平台。但当你真正需要访问系统能力时或者没有现成的轮子,你仍然逃不过:跨语言+多端重复实现KMP 能做什么?为什么它真的Write Once,Run Anywhere?跨平台

3、的本质是业务代码的高可复用性expect/actual PAL的语言级实现传统传统PALPAL:通过#ifdef、多平台目录结构、手动代码管理实现跨语言混编、跨IDE开发完全靠开发者自觉维护expect/actualexpect/actual:Kotlin编译器直接识别IDE自动提示统一开发语言expect/actual PAL的语言级实现统一语言和技术栈,可以让Review机制真正落地KN可以使用各种强大的Native开源库统一跨平台语言统一跨平台语言多平台产物能力多平台产物能力输出多平台的可执行程序、静态库、动态库Android Native产物让JNI不再需要使用C+基于LLVM,强大的

4、可移植能力快速构建快速构建JNI快速构建快速构建JNIclass NetvueAndroidFFMpeg(val pDecoderCodec:Long=0L,val pDecoderCodecContext:Long=0L)init System.loadLibrary(avutil)external fun initDecoder(codecId:Int):Boolean.快速构建快速构建JNICName(Java_com_netviewtech_sdk_ffmpeg_jni_NetvueAndroidFFMpeg_initDecoder)fun initDecoder(env:CPointer,instance:jobject,codecId:jint):jboolean.快速构建快速构建JNI./gradlew netvue-sdk:netvue-sdk-ffmpeg-jni:bundleReleaseAarNetvue 如何实现一套代码跨平台共用项目结构模块化项目结构模块化像搭积木一样组合各种模块像搭积木一样组合各种模块将将Flutter SDK KMP化化KMPFlutterPLUGINMethod channelEvent channelTexture加入我们加入我们KotlinThanks!Have aNice Kotlin

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
1. **KMP解决多端重复逻辑**:Netvue通过Kotlin Multiplatform (KMP)实现一套代码跨平台,解决多端重复业务逻辑及缺乏统一中台层的问题,长期演化导致逻辑差异大的痛点。 2. **KMP核心优势**:采用expect/actual机制实现平台抽象层(PAL),统一语言栈,支持IDE自动提示,提升开发效率;输出多平台可执行程序/库,Android Native产物替代JNI,基于LLVM增强可移植性。 3. **实践成果**:将Flutter SDK KMP化,通过Method channel、Event channel、Texture实现跨平台模块化组合,复用音视频等复杂业务逻辑。
**KMP如何实现跨平台?** **KMP与传统跨平台有何不同?** **KMP如何提升开发效率?**
客服
商务合作
小程序
服务号
折叠