Flutter 您需要知道的知识点 | FAQ・第四期

栏目: IOS · Android · 发布时间: 4年前

内容简介:下面开始 Flutter FAQ 第四期: 功能篇 (上)

Flutter 您需要知道的知识点 | FAQ・第四期

Flutter 是一套高效的跨平台免费开源 SDK,可以帮助开发者用一套代码同时在 Android 和 iOS 上构建媲美原生体验的精良应用。今年的 I/O 开发者大会上我们将 Flutter 进一步升级到了 1.5 版本 ,我们从社区中也搜集到了不少开发者关注的问题,我们会用连载的形式由浅到深地为开发者们进行解答。如果您对 Flutter 已经有一定的了解,不妨在看到问题的时候先试着回答,然后和我们给出的答案进行比较,从而进一步加深理解。

下面开始 Flutter FAQ 第四期: 功能篇 (上)

问题 1:

Flutter 应用会拥有怎样的性能表现?

点击下方空白区域查看答案

Flutter 应用会有很出色的性能。Flutter 设计的目标就是帮助开发者轻松实现 60 fps 的稳定帧率。Flutter 应用通过本地编译的代码运行,不涉及解释过程。这也意味着 Flutter 应用启动会非常快捷。

问题 2:

开发 Flutter 时的操作周期有多长?修改代码和看到界面内容更新之间会隔多久?

点击下方空白区域查看答案

Flutter 使用的是热重载式的开发操作周期。您在实机或者模拟器上都能实现亚秒级的修改-更新速度。

另外,Flutter 的热重载是有状态的 (stateful),这意味着重新加载后 app 的状态会被保留。这样即使您修改的界面在应用很深的位置,重载后您也能直接看到修改后的该界面,而无需从应用首页开始重新操作。

问题 3:

热重载 (hot reload) 相比较热重启 (hot restart) 的区别在哪里?

点击下方空白区域查看答案

热重载是通过将更改过的源代码文件注入到正在运行的 Dart VM 中来实现的。这不仅包括添加新的类,还包括在既存的类里添加方法和字段,以及修改既有的方法。不过有少数代码修改是无法被热重载的:

  • 全局变量的初始化程序

  • 静态字段的初始化程序

  • 应用的 main() 方法

  • 更多关于热重载的详细信息,请查看

    https://flutter.dev/docs/development/tools/hot-reload

问题 4:

我能把 Flutter 应用部署到哪里?

点击下方空白区域查看答案

您可以将 Flutter 应用编译并部署到 iOS 和 Android 平台上。

问题 5:

Flutter 可以运行在哪些设备,哪些操作系统版本上?

点击下方空白区域查看答案

移动操作系统: Android Jelly Bean, v16, 4.1.x 或更新版本,以及 iOS 8 或更高版本。

移动硬件: iOS 设备 (iPhone 4S 或更新版本) 和 ARM Android 设备。

请注意,Flutter 目前不支持直接为 x86 Android 进行构建 ( 参考 问题 #9253 ) ,但是针对 ARMv7 或 ARM64 构建的应用都在很多 x86 Android 设备上表现良好 (通过模拟 ARM 来实现)。

我们支持使用 Android 和 iOS 设备以及这两种 OS 的模拟器来开发 Flutter 应用。

我们会在各种从低端到高端的手机上进行测试,但我们还没有正式保证设备兼容性。

我们认为,Flutter 会在平板电脑上运行良好。我们目前没有覆盖到全部的 Material Design 平板电脑适配规则,但我们正计划在这个领域进一步加大投入。

  • 参考问题 #9253

    https://github.com/flutter/flutter/issues/9253

问题 6:

Flutter 能在 Web 上运行吗?

点击下方空白区域查看答案

Flutter web 目前处于技术预览状态。我们将它做为 Flutter 项目的一个分支进行开发,这种做法有利于在确保高速迭代的同时保持 Flutter 核心项目的稳定。您可以将现有的 Flutter 代码打包放在 web 预览版里使用,但由于我们还处于预览状态所以会有一些警告。

  • Flutter web 技术预览版

    https://flutter.dev/web

  • 使用 Flutter web 的操作说明

    https://github.com/flutter/flutter-web

问题 7:

我能使用 Flutter 构建桌面应用吗?

点击下方空白区域查看答案

可以,但目前支持得并不完美。我们正在致力于为桌面应用打造最佳体验。这方面的进展在我们的 wiki 上可以了解到。

  • Flutter wiki - 桌面应用

    https://github.com/flutter/flutter/wiki/Desktop-shells

问题 8:

我能在我现有的原生应用里使用 Flutter 吗?

点击下方空白区域查看答案

可以,您可以在现有的 Android 或 iOS 应用中嵌入 Flutter 视图,但是我们的 工具 目前尚未针对这场景进行全面优化 (相关详情请 参考 问题 #14821 )。

目前的两个演示是 platform_viewflutter_view 。我们的 wiki 页面 中也提供了一些初始文档。

  • 参考问题 #14821

    https://github.com/flutter/flutter/issues/14821

  • 查看演示项目

    https://github.com/flutter/flutter/tree/master/examples/platform_view

    https://github.com/flutter/flutter/tree/master/examples/flutter_view

  • Flutter wiki - 将 Flutter 添加至现有应用

    https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps

问题 9:

我能访问传感器、本地存储之类的平台服务和 API 吗?

点击下方空白区域查看答案

可以。Flutter 默认即为开发者提供了操作系统中某些平台专属服务和 API 的操作入口。但是,我们希望避免大多数跨平台 API 的 “最小公约数” 问题,因此我们不打算为所有本地服务和 API 构建跨平台的操作 API。

很多平台服务和 API 都在 Pub 站点 中提供了现成的代码包,使用起来非常方便。

最后,我们鼓励开发者使用 Flutter 的异步消息传递系统来创建出自己的平台与第三方 API 整合方案。开发者可以根据需要公开尽可能多 (或者尽可能少) 的平台 API,并构建最适合其项目的抽象层。

  • Pub 站点中有大量现成的 Package

    https://pub.dev/flutter/

  • 使用 Package 的说明

    https://flutter.dev/docs/development/packages-and-plugins/using-packages

  • Flutter 平台通道

    https://flutter.dev/docs/development/platform-integration/platform-channels

问题 10:

我能对自带的 widget 进行扩展和定制吗?

点击下方空白区域查看答案

当然可以。Flutter widget 系统的设计思路就是让开发者可以轻松定制。

Flutter 没有让每个 widget 都提供大量参数,而是采用了组合的方式。较大的 widget 是用较小的 widget 组合构建出来的,您可以重复使用它们,并以新颖的方式对其加以组合,从而生成自定义的 widget。例如,RaisedButton 没有继承自一个通用按钮 widget,而是将 Material widget 与 GestureDetector widget 组合在一起。Material widget 负责视觉呈现,GestureDetector widget 则实现其交互。

如果您想要创建自定义设计的按钮,可以将负责视觉呈现的 widget 与提供交互的 GestureDetector 组合起来使用。例如,CupertinoButton 就采用了这种方法,将 GestureDetector 与其他几个负责表现视觉的 widget 进行组合。

这种组合策略使您可以最大限度地控制 widget 的可视化和交互逻辑,同时重复利用大量代码。在框架中,我们将复杂的 widget 分解为实现视觉、交互和动效的各部分。您可以按照自己喜欢的方式重新组合这些 widget,从而制作出自定义 widget 来完整传达出您的设计意图。

如果您在使用 Flutter 构建应用的时候有什么想法或疑问,欢迎在评论区给我们留言。 我们期待着看到您为不同平台的用户们打造出同样精美、高效的体验!

  点击屏末  |  文  | 了解 Flutter 更多详细信息

Flutter 您需要知道的知识点 | FAQ・第四期


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms for Image Processing and Computer Vision

Algorithms for Image Processing and Computer Vision

Parker, J. R. / 2010-12 / 687.00元

A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing with......一起来看看 《Algorithms for Image Processing and Computer Vision》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具