关于跨平台:macos下编译openSSLlibhv编译

参考:https://juejin.cn/post/7265042701065961508 export OPENSSL_CRYPTO_LIBRARY=/usr/local/Cellar/openssl@1.1/1.1.1texport OPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl@1.1/1.1.1t/includeexport OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl@1.1/1.1.1texport LDFLAGS="/usr/local/Cellar/openssl@1.1/1.1.1t/lib/libssl.a /usr/local/Cellar/openssl@1.1/1.1.1t/lib/libcrypto.a"export PKG_CONFIG_PATH=/usr/local/Cellar/openssl@1.1/1.1.1t环境变量参数设置为这些才行

August 31, 2023 · 1 min · jiezi

关于跨平台:Flutter-多引擎支持-PlatformView-以及线程合并解决方案

作者:字节挪动技术-李皓骅 摘要本文介绍了 Flutter 多引擎下,应用 PlatformView 场景时不能绕开的一个线程合并问题,以及它最终的解决方案。最终 Pull Request 曾经 merge 到 Google 官网 Flutter 仓库: https://github.com/flutter/en... 本文关键点: 线程合并,实际上指的并不是操作系统有什么高级接口,能够把两个 pthread 合起来,而是 flutter 引擎中的四大 Task Runner 里,用一个 Task Runner 同时生产解决两个 Task Queue 中排队的工作。线程合并问题,指的是 Flutter 引擎四大线程(Platform 线程、UI 线程、Raster 线程、IO 线程)其中的 Platform 线程和 Raster 线程在应用 PlatformView 的场景时须要合并和拆散的问题。之前的官网的线程合并机制,只反对一对一的线程合并,但多引擎场景就须要一对多的合并和一些相干的配套逻辑。具体请看下文介绍。对于 Flutter 引擎的四大 Task Runner 能够参考官网 wiki 中的 Flutter Engine 线程模型 : https://github.com/flutter/fl...本文介绍的线程合并操作(也就实现了一个 looper 生产两个队列的音讯的成果),见如下的示意图,这样咱们能够有个初步的印象: 背景介绍什么是 PlatformView?首先,介绍下 PlatformView 是什么,其实它简略了解成——平台相干的 View 。也就是说,在Android 和 iOS 平台原生有这样的控件,然而在Flutter的跨平台控件库里没有实现过的一些Widget,这些控件咱们能够应用Flutter提供的PlatformView的机制,来做一个渲染和桥接,并且在下层能够用Flutter的办法去创立、管制这些原生View,来保障两端跨平台接口对立。 比方WebView,地图控件,第三方广告SDK等等这些场景,咱们就必须要用到PlatformView了。 举一个例子,下图就是 Android 上应用 PlatformView 机制的 WebView 控件和 Flutter控件的混合渲染的成果: ...

September 16, 2021 · 8 min · jiezi