美文网首页Flutter中文社区Flutter圈子Flutter
如何让Flutter为你的面试加分

如何让Flutter为你的面试加分

作者: 面朝对象_春暖花开 | 来源:发表于2019-10-21 19:52 被阅读0次
我是9月份初面试的,面试了头条、蚂蚁金服、快手等,都或多或少问到了flutter,通过flutter对比来展开面试。
我知道的大前端技术,有RNwebview、然后就是flutter,每种技术解决的痛点:

1、Write once, run anywhere
2、动态更新,避过苹果大大审核周期长的问题。
3、性能不能拉跨,也就是说不能因为解决前两个问题而降低用户体验。
所以在目前每个大厂都在或多或少的对flutte有投入,比如我们公司,目前flutter的CI方案已经落地了,接下来会根据业务有选择性的使用flutter开发了。

正题如下:

面试官的第一题:自己对比过flutter和RN吗?从什么方面进行对比的,得到了哪些结论?

借鉴文章及自己的总结:
下面对比是借用闲鱼在商品详情页上的性能指标分析:
指标CPU占用率内存FPS
机型
iOS:iPhone 5c 9.0.1 / iPhone 6s 10.3.2
Android:Xiaomi 2s 5.0.2 / Sumsung S8 7.0

ios测试分析如下:
iPhone 5c 9.0.1
image.png
iPhone 6s 10.3.2
image.png

iOS上结论:

1、Flutter在低端和中端的iOS机型上,FPS的表现都优于RN。
2、CPU的使用上Flutter在低端机上表现略差于RN,中端机型略优于RN。
3、值得注意的是内存上的表现(上图红色箭头区域),Flutter在低端机型上的起始内存和RN几乎一致,在中端机型上会多30M左右的内存(分析为Dart VM的内存)。可以想到这应该是Flutter针对低端和中端机型上内存策略是不一样的,可用内存少的机型,Dart VM的初始内存少,运行时进行分配(这样也可以理解为什么在低端机上带来了更多的CPU损耗),中端机器上预分配了更多的VM内存,这样在处理时会更加的游刃有余,减少CPU的介入,带来更流畅的体验。可以看出,Flutter团队在针对不同机型上处理更加的细腻,目的就是为了带来稳定流畅的体验。

android测试分析如下:
Xiaomi 2s 5.0.2
image.png
Sumsung S8 7.0
image.png
  • 注: MFS - Max Frame Space: 指的是去掉buffer之后的两帧的时间差

android上结论:

1、Flutter在高低端机的CPU上的表现都优于RN,尤其在低端的小米2s上有着更优的表现
2、Android端在原来FPS基础上增加了流畅度的指标,FPS和流畅度的表现Flutter优于RN
3、Android端的内存也是值得关注的一点,在小米2s上起始内存Flutter明显比RN多40M,RN在测试过程中内存飞涨,Flutter相比之下会更稳定,内存上RN侧的代码是需要调优的,同一套代码Flutter在Android和iOS上并没有很大的差异,但是RN的却要在单端调优,Flutter在这项比拼上又更胜一筹。
比较奇怪的是三星S8上Flutter和RN的初始内存是一致的,猜测是RN在Android高端机型上也会预分配一些内存,具体细节还需要更进一步的研究。

面试官的第二题:啥叫JIT和AOT,他们有啥区别。

1、名字不同。
JIT : Just-in-time 表示一边运行、一边编译。
AOT: Ahead-Of-Time 在运行之前编译。
因此:JIT相当于JS在webview上运行,需要一个虚拟机一边运行一边解释。AOT相当于OC,代码在使用之前就被LLVM编译成机器码了。
上面说到的这个虚拟机叫dart VM
2、运行效率不同。
JIT的实时编译肯定会占用运行时资源,各个指标性能会降低。
AOT具有媲美甚至高于native的指标。
3、热更是否支持不同。
JIT运行着dart解释器,其运行的就是dart的源码,所以支持动态下发
AOT运行的是已经编译好的代码,其运行的只能是机器支持的指令序列,连指令都固定了,当然不能热更(dart运行时没有像iOS runtime那种动态寻址。)

面试官的第三题:对于新技术,如何一步一步实现业务落地的。

  • 注:我理解这个题,就是考验程序员如何造轮子,实现技术为业务服务的。
    虽然Flutter提供了开发框架、IDE等相对丰富的开发工具,但从企业级应用迭代工程角度看,还需要对接大量现有移动端基础设施和工具(如大团队协作、CI、厂内组件库、发布运维基建等)才能够支撑起公司内的业务持续交付、快速迭代和线上运维。所以我们所造的轮子,需要涵盖开发调试测试发布线上运维工程管理整套闭环,目标是让拥有基本 Flutter开发技能的同学,快速上手业务开发和迭代。所以整套工具设施围绕工程初始化开发调试构建发布集成等标准工作流程搭建。

轮子如下图:


image.png

由此看来,整套ci方案需要做的工作很多,但是面试上能说出来,让面试官清楚我们的思路,就能过。

`

相关文章

  • 如何让Flutter为你的面试加分

    flutter的广大爱好者们,我在微信创建了一个公众号,搜索flutter 干货、或微信扫一扫下面的二维码关注一下...

  • 面试中怎么提问会加分?

    如何让提问为面试加分? 要做到加分,还得注意下面一些事项。 1.尽量展示正向的态度和观点,适当表示负面的担忧和建议...

  • 精美的应届学生求职简历word模板

    一份漂亮的简历,可以让面试官更好的了解你,记住你,可以让你在众多面试者中脱颖而出,为你的面试加分,今天分享的这款精...

  • 十点课堂上-李蕾声音课

    李蕾: 1用什么样的声音让你面试加分 2保护嗓子,说话不累. 3开口hold全场 4如何成为团队核心人物 5有效沟...

  • Flutter面试题汇总

    Flutter面试题汇总 一次Flutter面试经验,这些问题你一定要知道!必问!! Flutter这么火,都有哪...

  • Flutter面试题汇总

    Flutter面试题汇总 一次Flutter面试经验,这些问题你一定要知道!必问!! Flutter这么火,都有哪...

  • 剽悍一只猫:每日精进的超级方法论

    你有没有每天为自己的脑子加分? 你有没有每天为自己的圈子加分? 你有没有每天为自己的例子(这里指的是成功案例)加分...

  • 剽悍一只猫:每日精进的超级方法论

    你有没有每天为自己的脑子加分? 你有没有每天为自己的圈子加分? 你有没有每天为自己的例子(这里指的是成功案例)加分...

  • 剽悍一只猫:每日精进的超级方法论

    你有没有每天为自己的脑子加分? 你有没有每天为自己的圈子加分? 你有没有每天为自己的例子(这里指的是成功案例)加分...

  • 整洁大气的应聘简历word模板

    整洁大气的应聘简历word模板,黑色和白色相间,给人稳重又不失活泼的感觉,让面试官眼前一亮,为您的面试加分! 使用...

网友评论

    本文标题:如何让Flutter为你的面试加分

    本文链接:https://www.haomeiwen.com/subject/mantvctx.html