<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>跨平台动态化框架 on Chen's Notes</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/</link><description>Recent content in 跨平台动态化框架 on Chen's Notes</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 15 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/index.xml" rel="self" type="application/rss+xml"/><item><title>跨平台渲染方案对比探究</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/crocess-platform-solution/</link><pubDate>Sat, 21 Sep 2019 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/crocess-platform-solution/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;方案&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;性能&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;动态性&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;能力集&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;维护成本&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;H5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;低&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;高&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;全&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;低&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;小程序&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;中&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;高&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;部分&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;中&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;WEEX/RN&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;中高&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;高&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;部分&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;高&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Flutter&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;高&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;低&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;全&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;低&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;其中，前3个基本是面向前端生态的解决方案，而Flutter更像是面向native生态的解决方案。&lt;/p&gt;&#10;&lt;p&gt;当然也有基于这几种方案之上，各种各样的魔改方案&lt;/p&gt;</description></item><item><title>Compose架构模块梳理</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/compose/</link><pubDate>Wed, 15 Feb 2023 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/compose/</guid><description>&lt;h1 id="背景"&gt;背景&lt;a class="anchor" href="#%e8%83%8c%e6%99%af" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://developer.android.com/jetpack/compose?hl=zh-cn"&gt;Jetpack Compose&lt;/a&gt; 是Google推出的一个使用kotlin语言、声明式的UI框.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;针对框架的PreCompose优化方案&lt;/li&gt;&#10;&lt;li&gt;通过PreCompose方案，深入compose的源码: 介绍有哪些模块, 有什么作用, 未来能做些什么&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Flutter移植嵌入式linux设备、IOT方向探索</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-iot/</link><pubDate>Fri, 15 Jul 2022 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-iot/</guid><description>&lt;h1 id="背景"&gt;背景&lt;a class="anchor" href="#%e8%83%8c%e6%99%af" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;iot有着很广阔的场景: &lt;a href="https://pdf.dfcfw.com/pdf/H3_AP202202071545436398_1.pdf"&gt;艾瑞咨询-积基“数”本、重塑产业：中国物联网行业研究报告-220129&lt;/a&gt;. 智慧城市、车联网、智慧零售、智能家居、智能工厂.&lt;/p&gt;</description></item><item><title>FlutterEngine AndroidX/Support适配</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/tools-androidx/</link><pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/tools-androidx/</guid><description>&lt;h1 id="概要"&gt;概要&lt;a class="anchor" href="#%e6%a6%82%e8%a6%81" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://mp.weixin.qq.com/s/VXNbqxpoVDJeOPkBt5_88A"&gt;Flutter 1.17 | 2020 首个稳定版发布！&lt;/a&gt; 全线迁移到AndroidX,现有app迁移成本巨大(几乎不可能迁移)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;改造Flutter engine、工具链，1.17支持support库&lt;/li&gt;&#10;&lt;li&gt;跟一下工具链&lt;code&gt;flutter create&lt;/code&gt;的源码实现方式&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Flutter混合栈的实现原理</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-hybrid/</link><pubDate>Wed, 25 Dec 2019 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-hybrid/</guid><description>&lt;h1 id="概览"&gt;概览&lt;a class="anchor" href="#%e6%a6%82%e8%a7%88" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;解决2个问题&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;容器和engine的对应关系&lt;/li&gt;&#10;&lt;li&gt;路由管理&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>FlutterEngine初始化源码分析以及优化(官方PR)</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-engine-startup/</link><pubDate>Sun, 15 Dec 2019 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/flutter-engine-startup/</guid><description>&lt;h1 id="核心点"&gt;核心点&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%82%b9" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;主要分为3个部分&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;启动Engine前的准备(Platform端&lt;code&gt;Android&lt;/code&gt;)&lt;/li&gt;&#10;&lt;li&gt;Engine的启动(创建DartVM、相关线程、初始化相关配置)&lt;/li&gt;&#10;&lt;li&gt;Engine加载Dart产物，直到执行&lt;code&gt;main.dart&lt;/code&gt;中的&lt;code&gt;main&lt;/code&gt;方法&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;给官方提交了&lt;a href="https://github.com/flutter/engine/pull/18047"&gt;相关PR给官方&lt;/a&gt;，支持engine异步初始化&lt;/p&gt;&#10;&lt;blockquote class=''&gt;&#10;&lt;p&gt;Engine创建流程不是很合理，底层在做异步任务的时候，主线程会wait阻塞，非常影响体验。&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Weex架构设计思想和原理</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/weex-architecture/</link><pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/weex-architecture/</guid><description>&lt;h1 id="weex架构原理"&gt;Weex架构原理&lt;a class="anchor" href="#weex%e6%9e%b6%e6%9e%84%e5%8e%9f%e7%90%86" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;JSFRAM 负责和JS框架(&lt;code&gt;VUE/RAX&lt;/code&gt;)交互，生成DomTree，将数据传给WeexCore&lt;/li&gt;&#10;&lt;li&gt;WeexCore 有3部分&#10;&lt;ul&gt;&#10;&lt;li&gt;JSSide: 运行在JS进程中，负责jsbinding、创建、管理js的vm、context&lt;/li&gt;&#10;&lt;li&gt;CoreSide: 运行在主进程中，负责layout以及将&lt;code&gt;RenderTree&lt;/code&gt;以命令形式交给Platform绘制&lt;/li&gt;&#10;&lt;li&gt;IPC: 跨进程通信&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Platform(Android/iOS)&#10;&lt;ul&gt;&#10;&lt;li&gt;将&lt;code&gt;RenderTree&lt;/code&gt;转化为平台对应的&lt;code&gt;ViewTree&lt;/code&gt;,进行渲染&lt;/li&gt;&#10;&lt;li&gt;native能力调用提供&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;JSRuntime: 底层封装&lt;code&gt;JSC/V8&lt;/code&gt;接口，&lt;code&gt;WeexCore&lt;/code&gt;使用&lt;code&gt;JSRuntime&lt;/code&gt;和&lt;code&gt;jsengine&lt;/code&gt;通信&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Weex架构图如下&lt;/p&gt;</description></item><item><title>ReactNative源码-启动过程</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/rn-init/</link><pubDate>Wed, 21 Sep 2016 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/cross_platform/rn-init/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;就像大多数框架一样,ReactNative(简称RN)启动需要初始化依赖的环境和资源,抛开繁复的细节,概括为以下几点:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;初始化通信接口表,表中保存 &lt;em&gt;java&lt;/em&gt; 端和 &lt;em&gt;js&lt;/em&gt; 端的接口信息。&lt;/li&gt;&#10;&lt;li&gt;初始化ReactBridge,作为 &lt;em&gt;js&lt;/em&gt; 和 &lt;em&gt;java&lt;/em&gt; 通信的桥梁，在 &lt;em&gt;java&lt;/em&gt; 端开启两个线程 &lt;em&gt;native_modules&lt;/em&gt; 和 &lt;em&gt;js&lt;/em&gt; ,加上 &lt;em&gt;ui&lt;/em&gt; 线程，总共三个线程。&lt;/li&gt;&#10;&lt;li&gt;加载JSbundle文件&lt;/li&gt;&#10;&lt;/ol&gt;</description></item></channel></rss>