记录下我理解的安卓,鸿蒙,ios, rn , fullter, Jetpack Compose,react 的相似与不同

前提说明本人注重实操对理论的理解有可能不对


首先生产环境的编译产物

flutter, ios 都是机器码

原生安卓(kotlin ,java) 、原生鸿蒙都是字节码 +机器码混合通过虚拟机ART  在跑

开发环境的编译产物

支持热更新 :fullter ,鸿蒙

fuller:重新生成部分代码 通过vm替换代码,重新rebuild,再diff对比 进行 热更新 

鸿蒙:重新执行改动函数代码 ,再通过diff对比, 热重载  ,


不支持热重载: 安卓,ios

安卓:类结构变更困难,生命周期复杂(Activity),工具链限制(Android Studio)

ios: 历史原因他的 vm runtime 不像原生android 或者fullter 支持代码加载和编译,仅仅只是管理 函数执行和调度 


视图更新:fullter , react , Jetpack Compose,鸿蒙

fluller, react ,鸿蒙 都存在树状虚拟dom , 然后diff对比 ,找差异更新

Jetpack Compose 是数组 (slot-table)存 虚拟dom 类似

[[Group START: Counter],[Slot: remember -> doubled],[Group START: Text("Count")],[Group END],[Group START: Text("Doubled")],[Group END],[Group END: Counter]]  这个list就是他的组件树, 组件的更新也存在diff对比不过和 flutte、react、.鸿蒙不同的先生成虚拟dom再对比不同 ,他是直接找到组件所对应的index 范围 , 执行组件函数形成一组新的数据,对比原生组件的index范围内数据进行更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值