目录介绍
- 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