Android Developer 入门FLutter 整理,安卓framework面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

Flutter 中使用流行的 http 包 进行网络请求

如何为耗时任务显示进度?

使用 ProgressIndicator widget。通过代码逻辑使用一个布尔标记值控制进度条的渲染。

build 方法被拆分成三个不同的方法。如果 showLoadingDialog() 返回 true(当 widgets.length == 0),渲染 ProgressIndicator。否则,在 ListView 里渲染网络请求返回的数据。

在哪里放置分辨率相关的图片文件?

Flutter 遵循一个简单的类似 iOS 的密度相关的格式。文件可以是一倍 (1.0x)、两倍 (2.0x)、三倍 (3.0x) 或其它的任意倍数。

Flutter 没有 dp 单位,但是有逻辑像素尺寸,基本和设备无关的像素尺寸是一样的。

字符串储存在哪里?如何处理本地化?

Flutter 当下并没有一个特定的管理字符串的资源管理系统。

将字符串作为静态域存放在类中,并通过类访问它们。

Flutter 开发者使用 intl 包 进行国际化和本地化。

Gradle 文件的对应物是什么?我该如何添加依赖?

在 pubspec.yaml 文件中定义在 Flutter 里使用的外部依赖。 pub.dev 是查找 Flutter packages 的好地方

如何监听 Android Activity 的生命周期事件?

绑定 WidgetsBinding 观察者并监听 didChangeAppLifecycleState() 的变化事件来监听生命周期。

可以被观察的生命周期事件有:

  • inactive — 应用处于非活跃状态并且不接收用户输入。这个事件只适用于 iOS,Android 上没有对应的事件;

  • paused — 应用当前对用户不可见,无法响应用户输入,并运行在后台。这个事件对应于 Android 中的 onPause()

  • resumed — 应用对用户可见并且可以响应用户的输入。这个事件对应于 Android 中的 onPostResume()

  • suspending — 应用暂时被挂起。这个事件对应于 Android 中的 onStop; iOS 上由于没有对应的事件,因此不会触发此事件。

LinearLayout 的对应概念是什么?

Row 或者 Column Widget 来实现相同的效果。

RelativeLayout 的对应概念是什么?

组合使用 Column、Row 和 Stack Widget 实现 RelativeLayout 的效果。

ScrollView 的对应概念是什么?

实现这个功能的最简单的方法是使用 ListView widget。

在 Flutter 中如何处理屏幕旋转?

FlutterView 会处理配置的变化,前提条件是在 AndroidManifest.xml 文件中声明了:

android:configChanges=“orientation|screenSize”

Flutter 中如何为一个 Widget 添加点击监听器?

如果 Widget 支持事件监听,那么向它传入一个方法并在方法中处理事件。例如,RaisedButton 有一个 onPressed 参数

如果 Widget 不支持事件监听,将 Widget 包装进一个 GestureDetector 中并向 onTap 参数传入一个方法。

如何处理 Widget 上的其它手势?

使用 GestureDetector 可以监听非常多的手势,例如:

  • Tap

  • onTapDown - 一个可能产生点击事件的指针触摸到屏幕的特定位置。

  • onTapUp - 一个产生了点击事件的指针停止触摸屏幕的特定位置。

  • onTap - 一个点击事件已经发生。

  • onTapCancel - 之前触发了 onTapDown 事件的指针不会产生点击事件。

  • Double tap

  • onDoubleTap - 用户在屏幕同一位置连续快速地点击两次。

  • Long press

  • onLongPress - 指针在屏幕的同一位置保持了一段较长时间的触摸状态。

  • Vertical drag

  • onVerticalDragStart - 指针已经触摸屏幕并可能开始垂直移动。

  • onVerticalDragUpdate - 触摸屏幕的指针在垂直方向移动了更多的距离。

  • onVerticalDragEnd - 之前和屏幕接触并垂直移动的指针不再继续和屏幕接触,并且在和屏幕停止接触的时候以一定的速度移动。

  • Horizontal drag

  • onHorizontalDragStart - 指针已经触摸屏幕并可能开始水平移动。

  • onHorizontalDragUpdate - 触摸屏幕的指针在水平方向移动了更多的距离。

  • onHorizontalDragEnd - 之前和屏幕接触并水平移动的指针不再继续和屏幕接触,并且在和屏幕停止接触的时候以一定的速度移动。

ListView 在 Flutter 中的对应概念是什么?

因为 Flutter widget 不可变的特点,你需要向 ListView 传入一组 widget, Flutter 会保证滑动的快速顺畅。

如何知道点击了哪个列表项?

使用传入 widget 的触摸监听。

如何动态更新 ListView?

在 Flutter 中,如果你准备在 setState() 里更新一组 widget,你很快会发现你的数据并没有更新到界面上。这是因为当 setState() 被调用的时候, Flutter 渲染引擎会查看 Widget 树是否有任何更改。当引擎检查到 ListView,他会执行 == 检查,并判断两个 ListView 是一样的。没有任何更改,所以也就不需要更新。

推荐的高效且有效的创建一个列表的方法是使用 ListView.Builder。这个方法非常适用于动态列表或者拥有大量数据的列表。

如何为 Text Widget 设置自定义字体?

将字体文件放入一个文件夹,并在 pubspec.yaml 文件中引用它,就和导入图片一样。

如何更改 Text Widget 的样式?

Text Widget 的样式参数接收一个 TextStyle 对象,你可以在这个对象里自定义很多参数,例如:

  • color

  • decoration

  • decorationColor

  • decorationStyle

  • fontFamily

  • fontSize

  • fontStyle

  • fontWeight

  • hashCode

  • height

  • inherit

  • letterSpacing

  • textBaseline

  • wordSpacing

如何使用 GPS 传感器?

如何使用相机?

如何使用 Facebook 登录?

如何使用 Firebase 的功能?

官方插件 提供了 Firebase 的大多数功能。这些插件都是由 Flutter 团队维护的官方集成插件:

你可以在 Pub 网站上查找一些官方插件没有直接支持的功能的第三方 Firebase 插件。

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

…(img-sULtz5tS-1713644042879)]

[外链图片转存中…(img-V0WlVbFQ-1713644042880)]

[外链图片转存中…(img-EWE1zUZU-1713644042880)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-3E5LMXnu-1713644042881)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您介绍一些常见的Flutter面试题。以下是一些常见的Flutter面试题及其答案: 1. Flutter是什么?它有哪些特点? Flutter是一个跨平台的移动应用开发框架,由Google开发。它具有以下特点: - 快速开发:使用热重载功能可以快速进行开发和调试。 - 跨平台:可以在iOS和Android等多个平台上运行。 - 漂亮的UI:Flutter提供了丰富的UI组件,可以创建漂亮的用户界面。 - 高性能:Flutter使用自绘引擎,可以实现高性能的应用程序。 2. Flutter中的Widget是什么? 在Flutter中,一切都是Widget。Widget是Flutter应用程序的基本构建块,用于构建用户界面。Widget可以是一个简单的按钮或文本,也可以是一个复杂的布局。 3. 什么是StatefulWidget和StatelessWidget? StatefulWidget和StatelessWidget是Flutter中两种常见的Widget类型。 - StatefulWidget:具有可变状态的Widget,可以根据状态的变化重新构建UI。 - StatelessWidget:没有可变状态的Widget,一旦构建完成就不会再改变。 4. 什么是热重载(Hot Reload)? 热重载是Flutter的一个强大功能,它允许开发者在不重新启动应用程序的情况下快速查看代码更改后的效果。通过热重载,开发者可以实时地看到UI的变化,加快开发速度。 5. Flutter中的路由是什么? 在Flutter中,路由用于管理页面之间的导航。每个页面都有一个唯一的路由名称,可以通过路由名称来打开或关闭页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值