2019-2021 美团技术年货 前端篇没有在实际业务中上线,属于技术层面比较前期的探索。接下来本文会通过原理和部 分实现细节的介绍,分享我们在移植和开发过程中的一些经验。希望能对大家有所启 发或者帮助。 背景知识和基础概念介绍 在适配开始之前,我们要明确好先做哪些事情。先来回顾一下 Flutter 的三层结构: 在 Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 蒙原生提供的平台能力,重新实 前端 < 3 现一遍 Flutter 嵌入层。 对于 Flutter 嵌入层的适配,Flutter 官方有一份不算详细的指南,实际操作起来成本 很高。由于鸿蒙的业务开发语言仍然可用 Java,在很多基础概念上与 Android 也有 相似之处(如下表所示),我们可以从 Android 的实现入手,完成对鸿蒙的移植。 Flutter 在鸿蒙上的适配 如前文所述,要完成 Flutter Multiple Devices 前端 < 13 总结和展望 通过上述的构建和适配工作,我们以极小的开发成本实现了 Flutter 在鸿蒙系统上的 移植,基于 Flutter 开发的上层业务几乎不做任何修改就可以在鸿蒙系统上原生运行, 为迎接鸿蒙系统后续的大规模推广也提前做好了技术储备。 当然,故事到这里并没有结束。在最基本的运行和交互能力之上,我们更需要关注 Flutter0 码力 | 738 页 | 50.29 MB | 1 年前3
electron中文教程
难以确认文档内容知识点是否错漏。如果您在阅读文档 获取知识的时候,发现文档内容有不恰当的地方,请向我们反馈,让我们共同携手,将知识准确、高效且有效地传递 给每一个人。 同时,如果您在日常工作、生活和学习中遇到有价值有营养的知识文档,欢迎分享到 书栈(BookStack.CN) , 为知识的传承献上您的一份力量! 如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换代的步伐。 提示。 你应该经常在这里为 open-file 和 open-url 设置监听器,并启动崩溃报告和自动更新。 在大多数的情况下,你应该只在 ready 事件处理器中完成所有的业务。 当 Electron 完成初始化时被触发。 当所有的窗口都被关闭时触发。 这个事件仅在应用还没有退出时才能触发。 如果用户按下了 Cmd + Q ,或者开发者调用了 app.quit() callback Function 停止对所有子进程的记录. 子进程通常缓存查找数据,并且仅仅将数据截取和发送给主进程.这有利于在通过 IPC 发送查找数据之前减小查找时 的运行开销,这样做很有价值.因此,发送查找数据,我们应当异步通知所有子进程来截取任何待查找的数据. 一旦所有子进程接收到了 stopRecording 请求,将调用 callback ,并且返回一个包含查找数据的文件0 码力 | 203 页 | 2.72 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Dart 版;而如果给定的数据是固定 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版;而如果给定的数据是固定 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.1.0 Dart版除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的背包。每 个物品只能选择一次,问在限定背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 第 14 章 动态规划 hello‑algo0 码力 | 378 页 | 18.45 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的背包。每 个物品只能选择一次,问在限定背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 第 14 章 动态规划 hello‑algo0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的背包。每 个物品只能选择一次,问在限定背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 图 14‑17 0‑1 背包的示例数据0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.0.0b5 JavaScript版除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 第 7 章 树 hello‑algo.com 155 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜索 树 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的 背包。每个物品只能选择一次,问在不超过背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 第 14 章 动态规划 hello‑algo0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜 索树 balanced binary search tree」。 点着色,使得相邻顶点颜色不同。 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 第 13 章 回溯 hello‑algo.com 282 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的 背包。每个物品只能选择一次,问在限定背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 第 14 章 动态规划 hello‑algo0 码力 | 376 页 | 17.57 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 第 7 章 树 hello‑algo.com 155 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜索 树 组合优化问题:这类问题的目标是在一个组合空间中找到满足某些条件的最优解。 第 13 章 回溯 hello‑algo.com 283 ‧ 0‑1 背包问题:给定一组物品和一个背包,每个物品有一定的价值和重量,要求在背包容量限制内,选 择物品使得总价值最大。 ‧ 旅行商问题:在一个图中,从一个点出发,访问所有其他点恰好一次后返回起点,求最短路径。 ‧ 最大团问题:给定一个无向图,找到最大的完全子图,即子图中的任意两个顶点之间都有边相连。 给定 ? 个物品,第 ? 个物品的重量为 ???[? − 1]、价值为 ???[? − 1] ,和一个容量为 ??? 的 背包。每个物品只能选择一次,问在不超过背包容量下能放入物品的最大价值。 观察图 14‑17 ,由于物品编号 ? 从 1 开始计数,数组索引从 0 开始计数,因此物品 ? 对应重量 ???[? − 1] 和 价值 ???[? − 1] 。 第 14 章 动态规划 hello‑algo0 码力 | 378 页 | 30.70 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













