小编光和小伙伴们说的内容就有这么多,但远远还不止哦,既然要学习就不要停留在表面。

电子书学习

室友整理些有关Flutter的电子书,包括了Flutter官方文档详细翻译、Flutter技术进阶、Flutter跨平台开发全套电子书、Flutter基础学习PDF、Flutter技术入坑指南总结(阿里闲鱼)等,可以先从Flutter技术入坑指南总结看起,比较好接受,再看Flutter官方文档详细翻译时,就会比较好懂不会觉得乏味了。

个人学习心得:不管是看视频还是电子书学习,一定要做笔记,把重要的、不会不懂的点等记录下来,做的笔记梳理成自己的脑图或文档,这个过程也是加深对知识点的印象和理解。

Flutter面试


面试时有关Flutter问的面试题不多,好在面试前端做了准备能回答的上来,还是要了解下iOS或者Android的原生相关知识,小编把被问到的及小编整理的面试题及答案列举一部分,看看关于Flutter都会问什么。

1.Flutter 是什么

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

Flutter 特性有哪些?

快速开发(毫秒级热重载)

  • 绚丽UI(内建漂亮的质感设计Material Design和Cupertino Widget和丰富平滑的动画效果和平台感知)

  • 响应式(Reactive,用强大而灵活的API解决2D、动画、手势、效果等难题)

  • 原生访问功能

  • 堪比原生性能

3. Flutter 和 Dart的关系是什么?

Flutter是一个使用Dart语言开发的跨平台移动UI框架,通过自建绘制引擎,能高性能、高保真地进行移动开发。Dart囊括了多数编程语言的优点,它更符合Flutter构建界面的方式。

4. Dart 语言的特性?

  • Productive(生产力高,Dart的语法清晰明了,工具简单但功能强大)

  • Fast(执行速度快,Dart提供提前优化编译,以在移动设备和Web上获得可预测的高性能和快速启动。)

  • Portable(易于移植,Dart可编译成ARM和X86代码,这样Dart移动应用程序可以在iOS、Android和其他地方运行)

  • Approachable(容易上手,充分吸收了高级语言特性,如果你已经知道C++,C语言,或者Java,你可以在短短几天内用Dart来开发)

  • Reactive(响应式编程)

5. Dart的一些重要概念?

  • 在Dart中,一切都是对象,所有的对象都是继承自Object

  • Dart是强类型语言,但可以用var或 dynamic来声明一个变量,Dart会自动推断其数据类型,dynamic类似c#

  • 没有赋初值的变量都会有默认值null

  • Dart支持顶层方法,如main方法,可以在方法内部创建方法

  • Dart支持顶层变量,也支持类变量或对象变量

  • Dart没有public protected private等关键字,如果某个变量以下划线(_)开头,代表这个变量在库中是私有的

6. dart是值传递还是引用传递?

引用传递

7.Widget 和 element 和 RenderObject 之间的关系?

  • Widget是用户界面的一部分,并且是不可变的。

  • Element是在树中特定位置Widget的实例。

  • RenderObject是渲染树中的一个对象,它的层次结构是渲染库的核心。

8. mixin extends implement 之间的关系?

继承(关键字 extends)、混入 mixins (关键字 with)、接口实现(关键字 implements)。这三者可以同时存在,前后顺序是extends -> mixins -> implements。

Flutter中的继承是单继承,子类重写超类的方法要用@Override,子类调用超类的方法要用super。

在Flutter中,Mixins是一种在多个类层次结构中复用类代码的方法。mixins的对象是类,mixins绝不是继承,也不是接口,而是一种全新的特性,可以mixins多个类,mixins的使用需要满足一定条件。

9. 使用mixins的条件是什么?

因为mixins使用的条件,随着Dart版本一直在变,这里讲的是Dart2.1中使用mixins的条件:

mixins类只能继承自object

mixins类不能有构造函数

一个类可以mixins多个mixins类

可以mixins多个类,不破坏Flutter的单继承

10.Flutter main future mirotask 的执行顺序?

普通代码都是同步执行的,结束后会开始检查microtask中是否有任务,若有则执行,执行完继续检查microtask,直到microtask列队为空。最后会去执行event队列(future)。

11.Future和Isolate有什么区别?

uture是异步编程,调用本身立即返回,并在稍后的某个时候执行完成时再获得返回结果。在普通代码中可以使用await 等待一个异步调用结束。

isolate是并发编程,Dartm有并发时的共享状态,所有Dart代码都在isolate中运行,包括最初的main()。每个isolate都有它自己的堆内存,意味着其中所有内存数据,包括全局数据,都仅对该isolate可见,它们之间的通信只能通过传递消息的机制完成,消息则通过端口(port)收发。isolate只是一个概念,具体取决于如何实现,比如在Dart VM中一个isolate可能会是一个线程,在Web中可能会是一个Web Worker。

12.Stream 与 Future是什么关系?

Stream 和 Future 是 Dart 异步处理的核心 API。Future 表示稍后获得的一个数据,所有异步的操作的返回值都用 Future 来表示。但是 Future 只能表示一次异步获得的数据。而 Stream 表示多次异步获得的数据。比如界面上的按钮可能会被用户点击多次,所以按钮上的点击事件(onClick)就是一个 Stream 。简单地说,Future将返回一个值,而Stream将返回多次值。Dart 中统一使用 Stream 处理异步事件流。Stream 和一般的集合类似,都是一组数据,只不过一个是异步推送,一个是同步拉取。

篇幅原因,为不影响小小伙伴阅读感受,只列举了12道题目,更多面试题已整理成文档,会发出来共享文件的。

Flutter项目


这版块就得看小伙伴个人是否需要了,可能安卓小伙伴有会需要,前端小伙伴也可以看看,我把Flutter项目都编辑成了一个文档,直接点击标题就可获取文档噢,先看看都有什么项目吧。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

结尾

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~

[外链图片转存中…(img-IwzAIeA8-1711944779877)]

[外链图片转存中…(img-B1MEr33G-1711944779877)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐