编程进阶网编程进阶网
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 测试经验
  • 职场提升
  • 技术模版

目录介绍

  • 01.Flutter跨端问题
  • 02.Dart基础语法问题
  • 03.Widget原理分析
  • 04.UI渲染和绘制问题
  • 05.其他一些技术问题

01.Flutter跨端问题

  • Flutter跨平台:Flutter跨端优势有哪些?研发效率、动态性、多端一致性、性能体验,分别说一下?
  • Channel通信:Flutter 如何与 Android iOS 通信?每一种通信方式有什么特点?channel传递数据是否会丢失?
  • Flutter容器:Android/iOS承载flutter容器有哪些情况?NA添加FlutterView做了那些操作?Android引入flutter本质是什么?
  • FlutterEngine:混合开发多容器场景中,Flutter如何做到引擎的复用?
  • Flutter容器:FlutterView如何跟原生保持生命周期同步?如何理解LifecycleChannel的作用?
  • 栈管理:Flutter栈是如何管理设计的?如何是混合开发,如何处理A(原生)->B(flutter)->C(原生)->D(flutter)路由跳转?
  • Flutter引擎:单引擎&多引擎模式模式如何理解?多引擎模式存在的问题?单引擎的的方案如何设计?

02.Dart基础语法问题

  • 基础语法:Dart中var与dynamic的区别?const和final的区别?Dart中??与??=的区别?
  • 线程模型:如何理解单线程模型?它是怎么执行异步操作?如何理解微任务队列和事件队列,为什么要这样设计?绘制一下流程图。
  • 异步任务:await 和 async是如何理解?如何理解 Future?Stream 和 Future 有什么区别?能否用 Stream 实现订阅者模式?

03.Widget原理分析

  • Flutter工作原理:Flutter是如何工作?布局、绘制、合成和渲染分别做了什么?如何避免字节点变化导致父布局刷新?
  • StatefulWidget:简单说一下生命周期?如果是在混合App中,前后台监听需要注意什么?
  • main入口:main()和runApp()函数在flutter的作用分别是什么?有什么关系吗?
  • Widget基础:什么是Widget? 在flutter里有几种类型的widget?分别有什么区别?介绍下Widget、State、Context 概念?
  • 三棵树:简述Widgets、RenderObjects 和 Elements的关系?三棵树是如何理解呢?
  • 状态管理:Flutter状态管理如何理解?Widget 频繁更改创建是否会影响性能?复用和更新机制是什么样的?
  • Element:RenderObjectElement,Element,它们有什么样的区别?各自有什么特点?

04.UI渲染和绘制问题

  • 绘制:build操作会做那些绘制操作?build之后之后怎么进行layout,paint操作?

05.其他一些技术问题

  • Hot作用:Hot Restart 和 Hot Reload 有什么区别吗?如何理解热重启和热重载?它们的实现原理?
  • 数据传递:可以传递大数据吗?为什么要这样设计?
  • 跨端:比如说flutter跟原生效率更高一些?

08.Flutter面试题

8.1 面试思路

  • 根据同学的定位:业务开发还是技术架构,有偏重的考察。

    • 业务开发同学重点考察 Flutter、Dart 基础和 Flutter 业务开发基础。要求了解底层技术。
    • 技术架构同学重点考察 Flutter、Dart 基础,混合路由,Flutter 引擎。要求了解 Flutter 开发基础。
    • 稳定性、性能属于通用能力,都要考察。
  • Flutter 基础

    • Dart 当中的 「..」表示什么意思?
    • Dart 的作用域
    • Dart 是单线程模型,运行的的流程
    • Dart 是如何实现多任务并行的?
    • 说一下Dart异步编程中的 Future关键字?
    • 说一下Dart异步编程中的 Stream数据流?
    • Stream 有哪两种订阅模式?分别是怎么调用的?
    • await for 如何使用?
    • 介绍下Flutter的理念架构 (Flutter的FrameWork层和Engine层,以及它们的作用)
    • StatefulWidget 的生命周期
  • Flutter 业务开发

    • Row 里面摆放小方块1比2比3
    • 屏幕 Container 随手势移动
    • 长列表如何实现吸顶效果
  • 混合路由

    • Flutter Boost 实现原理
    • FlutterTextureView、FlutterSurfaceView 介绍及区别
    • FlutterSurfaceView 限制和问题
    • Flutter 有几种渲染模式?
    • FlutterActivity 打开一个新 FlutterActivity 跳转
    • 过场中间状态是怎么处理的
    • flutter 引擎底层一次只能展示一个页面,在两个 Activity 过场切换的时候,存在新老界面同时展示的时候,这个是怎么实现的?
    • 如何实现引擎复用?
  • 状态管理器

    • 有用过状态管理框架吗?
  • 性能优化、稳定性

    • 开发完一个业务,怎么保障稳定性
    • Flutter So 的崩溃如何排查
    • Flutter 内存泄漏治理
    • 如何优化 Flutter 内存?
    • 如何进行 Flutter 图片内存优化?
  • Dart 虚拟机

    • 单线程怎么能搞异步的呢?
    • Dart Null Safety 机制
  • Flutter 框架

    • MaterialApp 功能及左右
    • Navigator 作用及实现原理
    • Flutter 三棵树,介绍一下吧
    • Flutter 引擎帧调度,怎么加入到 EventLoop
  • https://www.jianshu.com/p/9064a68a05ae

贡献者: yangchong211