Flutter-Daily-Interview icon indicating copy to clipboard operation
Flutter-Daily-Interview copied to clipboard

flutter面试题 每日一题,极大节约时间,拒绝长篇累牍,提倡精简有效回答一个知识点

Results 13 Flutter-Daily-Interview issues
Sort by recently updated
recently updated
newest added

Dart是用于开发Flutter应用程序的面向对象,垃圾收集的编程语言。它也是由谷歌创建的,但它是开源的,因此它在Google内外都有社区。 除了Google的起源之外,Dart还被选为Flutter的语言,原因如下:它是极少数可以同时编译AOT(提前)和JIT(即时)的语言之一。 在应用程序开发过程中使用`JIT编译`,因为它可以通过动态编译代码来实现热重新加载(我将在下一个问题中详细讨论)和快速开发周期。 完成开发并准备发布后,将使用`AOT编译`。然后将代码AOT编译为本机代码,从而实现应用程序的快速启动和高性能执行。 就个人而言,我对Dart的经验是,如果您是熟悉Java或类似语言的开发人员,只需要几天的时间就可以习惯它。因此,如果您是Android开发人员,那么这种语言的学习曲线应该非常低。 凭借其干净但灵活的语法,Dart可以被识别为仅包含任何高级编程语言中最需要的功能的语言。

![Flutter应用程序与平台的交互 ](https://user-images.githubusercontent.com/3379261/62520291-e252ec80-b85f-11e9-8305-c54b0e9ac7ee.png) Flutter使用名为Skia的图形引擎在应用程序端执行所有UI呈现。这意味着它不依赖于平台提供的OEM小部件。它只需要平台的画布来绘制自己的渲染。这确保了可预测性和开发人员对小部件和布局的完全控制。 ![Flutter的内部小部件树](https://user-images.githubusercontent.com/3379261/62520294-e54ddd00-b85f-11e9-98b1-1906f1091fcf.png) 除此之外,Flutter将其结构保持为小部件树。顺便说一下,Flutter中的几乎所有东西都是一个小部件,它使您能够在小部件内部的小部件结构中构建您的应用程序。此内部树结构允许Skia仅呈现需要更新的小部件,并从缓存中检索未更改的甚至移动的小部件。

![image](https://user-images.githubusercontent.com/3379261/62520124-78d2de00-b85f-11e9-9de1-007b00e9438c.png) React Native利用JavaScript桥将其小部件转换为OEM小部件。而且由于它不断地进行这种转换(比较和更新周期),因此会产生瓶颈并导致性能下降。 虽然仍然使用反应式视图的优势,但Flutter并没有使用这种桥将其自己的小部件转换为OEM小部件。除了快速和流畅的UI性能和可预测性之外,作为此项的另一个优势,您在Android KitKat设备上看到的内容与您在Android Pie上获得的内容相同。这种兼容性是显而易见的,因为Flutter不使用OEM小部件,并且不受不同Android版本之间的UI / UX更改的影响。