Flutter面试指南
1、Dart是什么? 和Flutter是什么关系?
Dart是Google开发的一种面向对象的计算机编程语言,和Java类似
Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台
Dart是flutter的程序开发语言2. main()和runApp()函数在flutter的作用分别是什么?有什么关系吗?
main函数是类似于java语言的程序运行入口函数
runApp函数是渲染根widget树的函数
一般情况下runApp函数会在main函数里执行
3. 什么是widget? 在flutter里有几种类型的widget?分别有什么区别?能分别说一下生命周期吗?
Widget在flutter里基本是一些UI组件,和
在 Flutter 中,有两类常用的 Widget:无状态的 StatelessWidget有状态的 StatefulWidget
在开发过程中,我们经常需要继承它们两来实现自己的 Widget。A、无状态的StatelessWidget
如果你的控件一旦显示,就不需要再做任何的变更,那么你应该使用 StatelessWidget。
实现一个自己的 StatelessWidget 很简单。
class PageWidget extends StatelessWidget { @override Widget build(BuildContext context) { return _buildBody(context); } Widget _buildBody(BuildContext context){ return Container(); }B、有状态的StatefulWidget
它可以改变界面的状态,比如显示的文字Text、选中状态CheckBox Switch等
我们之所以可以改变状态是因为setState,当调用setState后,就会触发 StatefulWidget 的视图树重建。
4. Hot Restart 和 Hot Reload 有什么区别吗?
Hot Reload比Hot Restart快,Hot Reload会编译我们文件里新加的代码并发送给dart虚拟机,dart会更新widgets来改变UI,而Hot Restart会让dart 虚拟机重新编译应用。另一方面也是因为这样, Hot Reload会保留之前的state,而Hot Restart回你重置所有的state回到初始值。5. 在flutter里streams是什么?有几种streams?有什么场景用到它?
Stream 用来处理连续的异步操作,Stream 是一个抽象类,用于表示一序列异步数据的源。它是一种产生连续事件的方式,可以生成数据事件或者错误事件,以及流程结束时的完成事件
Stream 分单订阅流和广播流。6. 简单说一下在flutter里async和await?
await的出现会把await之前和之后的代码分为两部分,await并不像字面意思所表示的程序运行到这里就阻塞了,而是立刻结束当前函数的执行并返回一个Future,函数内剩余代码通过调度异步执行。
async是和await搭配使用的,await只在async函数中出现。在async 函数里可以没有await或者有多个await。7. steam
在 Flutter 中有两种处理异步操作的方式 Future 和 Stream,Future 用于处理单个异步操作,Stream 用来处理连续的异步操作.Stream
a、Stream 就是事件流或者管道,是一些的异步事件,它会在上一个事件完成时通知你进行下一个事件.
b、Stream无论用什么方式创建,都会以相同的方式返回并使用: asynchronous for loop(await for)Future sumStream(Stream stream) async { var sum = 0; await for (var value int stream) { sum += value; } return sum; }
c、Stream 提供 asynchronous序列化的数据.
d、该序列化数据包含了用户生成的时间和重文件中读取的数据.
e、你可以通过await for 的listen()来处理Stream API返回的数据流.
f、Stream 提供了相应的处理方法.
g、Streams 有两种方式:single subscription(订阅) 和 broadcast (广播)
stream跟changeNotifer区别
1.stream 代表着时间了,通过stream 可以快速地实现事件流驱动业务逻辑,界面通过订阅事件,针对事件转换最后通过响应事件完成页面布局,而在整个stream 流过程中,离不开以下角色
streamController:管理调度整个事件流的流程,并保存整个事件流中所需要的对象,便于管理和使用
StreamSink:事件的开始入口,所有的同步异步事件都是从这里开始的,提供了add 和addStream等方法
Steam:事件本身,可以被转换和监听,订阅后返回StreamSubscription对象
StreamSubscription:订阅steam后得到的对象,可以管理订阅过的各种操作,如cancle()、 pause()
总结:stream 的事件流就是:先创建steam,创建回调方法并订阅,在通过streamSink 添加事件源,在订阅的过程中可以使用StreamSubscription管理这个订阅,最后回调steam订阅的回调方法
8. Dart中??与??=的区别:
两者都是dart中的操作符,??表示如果为空则返回,??=表示如果为空则赋值 String a; String b = a ?? "1"; print(b);//打印结果:1 print(a);//打印结果:null a ??= "2"; print(a);//打印结果:2
9. Flutter与原生通信的Channel有哪几种?
Flutter定义了三种不同类型的Channel,它们分别是:
BasicMessageChannel:用于传递字符串和半结构化的信息。
MethodChannel:用于传递方法调用(method invocation)。
EventChannel: 用于数据流(event streams)的通信。
10.Flutter在Debug和Release下分别使用什么编译模式,有什么区别?
Debug模式下使用JIT编译模式,即Just in time(即时编译),Release下使用AOT模式,即Ahead of time(提前编译)。JIT模式因为需要边运行边编译,所以会占用运行时内存,导致卡顿现象,但是有动态编译效果对于开发者来说非常方便调试。AOT模式提前编译不会占用运行时内存,相对来说运行流畅,但是会导致编译时间增加。
11.Flutter出现异常时如何友好的提示用户?
使用ErrorWidget.builder进行全局设置自定义界面即可。
快手解禁,员工迎来压力测试核心提示8月6日,快手解禁期到来。在科技股重新估值的大背景下,快手仿佛站在了一场压力测试的关键节点上,市值跌去一个美团,被二级市场重新审视。豹变找到了数位快手早期员工业务骨干等,和
阿里开除,字节跳动接纳?涉事男员工通过面试,公司回应属实阿里涉事男员工,居然在字节跳动通过面试了,让人震惊。在阿里犯事了,还想跳槽?以为换了个公司就能逃避责任吗?字节跳动是怎么通过面试的?难道对他的事不知道吗?近日,有网友爆料称,阿里涉
阿里第5号人物,记过处分文杨松曹彦君钟黛编辑陈晓平有关女员工被侵犯一事,阿里给出了决定。8月9日凌晨,阿里巴巴董事会主席张勇公布,涉事男员工予以辞退,永不录用,三位高管负有领导责任同城零售事业群总裁李永和
阿里史上最大规模校招背后,是HR越来越难了前不久,阿里巴巴正式开启了2022届校园招聘。与往年最大的不同在于,阿里今年一次性放出了113个岗位,其中包括了针对应届毕业生首次开放的45种岗位和大量非技术类岗位。本文共2400
小米手表值得入手吗?小米手表值得购买吗?小米手表是是小米2019年发布的一块电话手表。采用1。78英寸AMOLED方面大屏,大小男女适用。小米手表内置全功能eSIM芯片,支持独立接打电话和上网,以及一
台式机接苹果显示器你用过吗?帮朋友折腾了一台电脑他原本有一台苹果显示器就是这样苹果显示器只有220V输入USBMiniDP充电线(输出)四根线除了电源线,只有这三根。都是固定的,无法拔出无开关无调色无信号调换
AI合成医疗企业近期动态盘点沃时科技致力于搭建AI制药工业平台以构建制药工业场景AI决策平台为目标的沃时科技,近日宣布完成千万元天使轮融资,投资方为线性资本,由前一轮股东继续追加投资。沃时科技表示,下一步目标
外媒口碑最好的几部手机,国产手机的高端之路终于雄起如今的手机市场已经没有什么中低端之分,取而代之的是分价格档位,来界定高端机型和旗舰机型的差距,对于普通人来说,现在各家的旗舰机型已完全够用,对于5000元以上的手机,大众普遍划分为
内燃机行业迎来创新窗口期来源经济日报从新能源汽车推向市场开始,内燃机的唱衰之声就开始不断出现。近年来,在新能源汽车快速普及和双碳目标的背景下,内燃机行业更是几度被冠以夕阳产业之名。事实上,从整个制造业经济
HTCA100平板电脑新品曝光小米平板5真机图曝光HTC即将推出一款HTCA100平板电脑。据称,该机将采用10。1吋FHD屏幕,配备12nm的紫光展锐虎贲T618八核处理器8GB128GB存储空间,并且还有7000mAh电池13
为游戏而生西圣Olaf游戏耳机测评前言近几年手游越来越火爆,王者荣耀和平精英等游戏的诞生让很多人都开始玩起了手游,作为一个经常玩手游的人,怎么能没有一款低延迟的游戏蓝牙耳机呢,今天带来的这款产品,是西圣在2021年