Flullter学习第一天:什么是Flullter与Flullter安装

news2025/1/11 9:48:26

1.简介

Flutter使用dart作为主要开发语言,开发后可多端编译,并且能调用原生api

2.安装

官网:Install | Flutter

让我们读下为中国用户特制的文档,访问中国官网

Flutter: 为所有屏幕创造精彩 - Flutter 中文开发者网站 - Flutter

获取 Flutter SDK

  1. 点击下方的安装包,获取 stable 发行通道的 Flutter SDK 最新版本:

    flutter_windows_3.13.2-stable.zip

    要查看其他发行通道和以往的版本,请参阅 SDK 版本列表 页面。

  2. 将压缩包解压,然后把其中的 flutter 目录整个放在你想放置 Flutter SDK 的路径中(例如 %USERPROFILE%\flutter 或者 D:\dev\flutter)。

report_problem 请注意:

请勿将 Flutter 有特殊字符或空格的路径下。

report_problem 请注意:

请勿将 Flutter 安装在需要高权限的文件夹内,例如 C:\Program Files\

现在你可以在控制台当中使用 Flutter 的命令了。

此处我直接放置在C:\Android文件夹下

更新 path 环境变量

helpHelp

如果你想在 Windows 控制台中运行 Flutter 命令,需要按照下面的步骤来将 Flutter 的运行文件路径加入到 PATH 环境变量。

  • 在开始菜单的搜索功能键入「env」,然后选择 编辑系统环境变量

  • 在 用户变量 一栏中,检查是否有 Path 这个条目:

    • 如果存在这个条目,以 ; 分隔已有的内容,加入 flutter\bin 目录的完整路径。

    • 如果不存在的话,在用户环境变量中创建一个新的 Path 变量,然后将 flutter\bin 所在的完整路径作为新变量的值。

你需要重新打开已经打开的命令行提示符窗口,这样下次启动命令提示符时,才能访问到刚才修改的变量。

我的话就如上图配置,成功访问flutter

info 提示:

自 Flutter 1.19.0 dev 版本开始,Flutter SDK 在 flutter 命令脚本的同级目录下增加了 dart 命令,你可以更方便地运行 Dart 命令行程序。下载 Flutter SDK 时也会下载对应版本的 Dart SDK,但如果你单独下载了 Dart SDK,请确保 Flutter SDK 内的 dart 在你的环境变量中排在首位,因为单独的 SDK 可能并不兼容 Flutter SDK。下面的命令展示了 flutter 和 dart 是否来自相同的 bin 目录,并且是否可以兼容使用。

content_copy

  C:\>where flutter dart
  C:\path-to-flutter-sdk\bin\flutter
  C:\path-to-flutter-sdk\bin\flutter.bat
  C:\path-to-dart-sdk\bin\dart.exe        :: this should go after `C:\path-to-flutter-sdk\bin\` commands
  C:\path-to-flutter-sdk\bin\dart
  C:\path-to-flutter-sdk\bin\dart.bat

如上所示,Flutter SDK 内的 dart 命令不在首位。你需要更新 PATH,将 C:\path-to-flutter-sdk\bin\ 放在 C:\path-to-dart-sdk\bin\ 前面(当前场景)。接着重启命令行使修改生效,再次运行 where,此时来自相同目录的 flutter 和 dart 已经排在前面。

content_copy

  C:\>where flutter dart
  C:\dev\src\flutter\bin\flutter
  C:\dev\src\flutter\bin\flutter.bat
  C:\dev\src\flutter\bin\dart
  C:\dev\src\flutter\bin\dart.bat
  C:\dev\src\dart-sdk\bin\dart.exe

然而,如果你在使用 PowerShellwhere 其实是 Where-Object 命令的别名,所以实际上你需要运行 where.exe

content_copy

  PS C:\> where.exe flutter dart

了解更多 dart 命令的用法,可以在命令行中运行 dart -h 查看,也可以访问 DartVM 运行环境。

 我的情况下配置完flutter/bin环境变量后dart命令与flutter命令皆可以使用

运行 flutter doctor

helpHelp

在将 Path 变量更新后,打开一个新的控制台窗口,然后执行下面的命令。如果它提示有任何的平台相关依赖,那么你就需要按照指示完成这些配置:

content_copy

C:\src\flutter>flutter doctor

上述命令会检查你的现有环境,并将检测结果以报告形式呈现出来。仔细阅读它显示的内容,检查是否有尚未安装的软件或是有其他的步骤需要完成(通常会以粗体呈现)。

例如:

content_copy

[-] Android toolchain - develop for Android devices
    • Android SDK at D:\Android\sdk
    ✗ Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
    • Try re-installing or updating your Android SDK,
      visit https://flutter.cn/docs/setup/#android-setup for detailed instructions.

下面的章节介绍了对缺失的内容进行配置的方法。每当您安装了任何一个的依赖项,就可以随时执行 flutter doctor 来检查是否正确配置了所有内容。

info 提示:

如果 flutter doctor 提示 Android Studio 的 Flutter 或者 Dart 插件尚未安装,请移步文档 编辑器设定 查阅如何解决这个问题。

这个命令执行的时间有点久然后出现结论

照着提示运行命令,打开as看下sdk路径,我们需要下载最新的sdk

更改andsdk33为勾

让我们点击右下角的apply然后同意弹出来的窗口

可以看到正在下载,这个不需要魔法

在android sdk目录下的/tools/bin文件夹下可以找到sdkmanager打开命令窗口后输入命令

或者在as中选择sdk->tools,把android sdk command-line tools前面打上勾

等待下载:

还有记得在命令行中运行

$ flutter doctor --android-licenses
  1. 仔细阅读每条协议后同意。

  2. 当你同意所有协议后,再次运行 flutter doctor 以确认是否已经可以正常使用 Flutter。

注意如果出现以下报错

更改电脑中安装的jdk 版本,对照关系如,更改jdk版本为jdk17

然后参考这篇文章

flutter doctor --android-licenses报错解决方案_生生世世是所说的的博客-CSDN博客

第二个错误的处理请参照这篇文章

flutter国内镜像配置_生生世世是所说的的博客-CSDN博客

接下来再运行flutter doctor,全绿色便可以开始flutter开发了

3.编辑器设置 

Android Studio 为 Flutter 提供了一个完整的集成开发环境。

  • Android Studio,2020.3.1 (Arctic Fox) 或之后的版本

同时, 你也可以使用 IntelliJ:

  • IntelliJ IDEA Community,2021.2 或之后的版本

  • IntelliJ IDEA Ultimate,2021.2 或之后的版本

本人使用android studio作为开发编辑器

安装 Flutter 和 Dart 插件

请参考下面不同平台的安装指南:

Mac

安装过程如下:

  1. 打开 Android Studio。

  2. 打开插件设置(在 v3.6.3.0 以上的系统打开 Preferences > Plugins)。

  3. 然后选择 Flutter 插件并点击 安装

  4. 当弹出安装 Dart 插件提示时,点击 Yes

  5. 当弹出重新启动提示时,点击 Restart

Linux 或者 Windows 平台

参考使用下面介绍的步骤:

  1. 打开插件偏好设置 (位于 File > Settings > Plugins)

  2. 选择 Marketplace (扩展商店),选择 Flutter plugin 然后点击 Install (安装)

 4.开发初体验(android studio)

本页面讲解如何通过模板实现一个 Flutter 应用,执行并且在修改程序之后触发“热重载 (hot reload)”功能。

创建应用

  1. 打开 IDE 并选中 New Flutter Project

  2. 选择 Flutter,验证 Flutter SDK 的路径。完成后选择 Next

  3. 输入项目名称(例如 my_app)。

  4. 选择 Application 的项目类型,完成后选择 Next

  5. 点击 完成

  6. 等待 Android Studio 完成项目的创建。

info 提示:

每当创建一个新的 Flutter 应用时,一些 Flutter IDE 插件会请你输入一个类似 com.example 的包名,包名(在 iOS 里叫 Bundle ID)一般都是公司域名的反写。如果你的应用打算上架商店,建议一开始的时候把这个全网唯一的包名设置好,因为应用上架之后就不能再修改了。

上述步骤会创建名为 my_app 的 Flutter 项目的文件夹,它是一个使用了 Material 组件 的简单 demo。

tips_and_updates 小提示:

应用程序的代码存放在 lib/main.dart 中。想要查看每块代码具体的作用,请查看文件中的对应注释。

运行应用

  1. 定位到 Android Studio 的工具栏:

    Main IntelliJ toolbar

  2. 在 target selector 中,选择一个用于运行应用的 Android 设备。如果列表为空,选择 Tools > AVD Manager 创建一个虚拟机。更多细节可以参考 管理 AVD 虚拟机。

  3. 点击工具栏中的运行按钮,或者点击菜单栏中的 Run > Run

当应用编译完成后,就可以在设备上运行这个起步应用了。

吐槽:AS自带的虚拟机是真慢(记得留出10GB左右的空间给模拟器) 啊,直接用实体机调试吧,做法可以看这篇

CSDN

由于Flutter项目的构建,默认会去下载gradle完成构建。第一次会非常慢,导致了flutter run长时间卡在Running Gradle task ”assembleDebug“。可以下载离线gradle解决

尝试热重载 (hot reload)

Flutter 通过 热重载 提供快速开发周期,该功能支持应用程序在运行状态下重载代码,无需重新启动应用程序或者丢失程序运行状态。修改一下代码,然后告诉 IDE 或者命令行工具你需要热重载,然后看一下模拟器或者设备上应用的变化。

  1. 打开 lib/main.dart

  2. 修改字符串

    content_copy
    'You have pushed the button this many times'

    改为

    content_copy
    'You have clicked the button this many times'

    error 重点提醒:

    不要 停止应用。保持应用处于运行状态。

  3. 保存修改: invoke Save All, or click Hot Reload 

     点击这个闪电

你会发现修改后的字符串几乎马上出现在正在运行的应用程序上。

以 profile 模式运行

error 重点提醒:

请勿 在调试模式和热重载功能开启的情况下做性能测试。

截止目前文档所示内容,你的应用应该运行在调试 (debug) 模式中,这个模式意味着在更大的性能开销下实现了更快速的开发效率,比如热重载功能的启用,因此你可能要面临较差质量的动画效果。当你准备分析应用性能或要打包发布的时候,你可能需要 Flutter 的 profile 或者 release 构建,相关文档,请查阅文档: Flutter 的构建模式选择。

error 重点提醒:

如果你关心应用大小,请参考 这篇文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1002653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录一个iOS实现视频分片缓存拖拽快进不能播放的问题

代码现状 首先来看一下我们将视频数据塞给请求的代码 - (void)finishLoadingWithLoadingRequest:(IdiotResourceTask *)task {// printf("哈哈执行到这里执行到到这里\n");printf("哈哈哈数量数量%ld\n", self.taskList.count);//填充信息task.loadingRe…

Python/Java/Php/C#/Go/C/C++这几个主力语言,谁到底真的不行

1.前言 阿里最近又进行了史诗级的大裁员,IT行业肉眼可见的持续性衰退与没落。当潮水退却,才能看出谁在裸泳。作为当今计算机编程界的几大主力语言,谁才真正的裸泳者呢?引用原文:这几个主力语言,谁到底真的不行 2.描述…

Java项目-苍穹外卖-Day11-Apache ECharts数据统计

文章目录 前言Apache ECharts介绍入门案例 营业额统计需求分析代码开发功能测试 订单统计需求分析代码开发功能测试 销量排名统计需求分析代码开发功能测试 前言 主要是以下四项的统计,以不同形式的图形进行展示 Apache ECharts 介绍 入门案例 自己去网站上看一…

MATLAB R2018b安装教程

目录 一、软件下载 二、软件介绍 三、安装须知 四、安装步骤 【最后】 🎈个人主页:库库的里昂 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:MATLAB基础及应用🤝希望作者的文章能…

Redis之string类型的三大编码解读

目录 string类型的三大编码 int 编码 embstr 编码 raw 编码 明明没有超过阈值,为什么变成raw? 查看数据类型相关命令 redis看看类型:type key 看看编码:object encoding debug结构:debug object person 在 Redis 中,String 类型的数据结构并…

EPICS电机支持(asynMotor)

EPICS电机支持 1) 顶层对象是EPICS motor记录 已经对这个对象编写了很多代码:spec,IDL和Python类等 2)下一层是EPICS设备支持 了解motor记录,与驱动会话 3)最底层是EPICS驱动 对motor记录一无所知&am…

FastJson 漏洞复现

文章目录 FastJson 漏洞复现1. FastJson 1.2.24 反序列化导致任意命令执行漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞复现1.3.1 环境启动1.3.2 漏洞检测1.3.3 漏洞验证 1.4 漏洞利用1.5 修复方案 2. Fastjson 1.2.47 远程命令执行漏洞2.1 漏洞描述2.2 漏洞复现2.2.1 环境启动2.2.2 …

SV-315C 15寸触模屏 I3工控机 网络广播主机

SV-315C 15寸触模屏 I3工控机 网络广播主机 智能公共广播系统IP网络广播主机 ※ 高档7U铝合金黑色拉丝面板,美观大方; ※ 嵌入触摸屏和数字矩阵键盘操作集成软件; ※ 工业级机柜式机箱设计,有较高的防磁、防尘、防冲击的能力…

FPGA原理与结构——时钟IP核的使用与测试

一、前言 本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考: FPGA原理与结构——时钟IP核原理学习https://blog.c…

[网鼎杯 2020 青龙组]singal详细题解--VMP 直接逆向,angr模拟执行,ponce符号化

文章目录 直接逆向提取opcode获取指令执行流getflag注意 使用Angr使用Ponce插件安装并配置Ponce具体操作 参考资料 直接逆向 提取opcode 主函数并不复杂,关键内容在vm_opcode中,先提取出main函数中的opcode unsigned int OpCode[114] {0x0000000A, 0x00000004, 0x00000010,…

Spring上下文模块ApplicationContextAware

博主介绍:✌全网粉丝3W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

《数字图像处理-OpenCV/Python》连载(6)基于Matplotlib显示图像

《数字图像处理-OpenCV/Python》连载(6)基于Matplotlib显示图像 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 第1章 图像的基本操作 …

软件系统验收测试需要注意的地方

验收测试 一、软件验收测试含义: 软件验收测试是指测试人员检验软件是否符合软件规格说明书和用户需求的测试活动。 验收测试是软件测试的最后一个环节,也是最为关键的一个要素。 它关系到软件开发公司的产品质量,也关系到需求方的产品能…

二分查找[整数二分]

引例 不知道你有没有玩过猜数字游戏,在0到100之间随机选取一个数,让你猜是几,比如这个数是67,如果你猜了50,就会提示你小了,那么你就会去51到100之间猜,你猜了75,就会提示你大了,你就会去51到74之间去猜,就这样一直猜,数字可取的区间越来越小,用不了多久就可以猜出.当你每次都…

SpringBoot如何实现热部署

热部署是软件开发中一个非常有用的功能,它允许我们在不重新启动整个应用的情况下,依旧能够使我们修改的代码生效。 现在Java Web 开发应该都是使用的 SpringBoot,那么本篇文章就来介绍SpringBoot 如何实现热部署? 1、热部署的优点…

如何提取视频中的音频?几个步骤轻松提取

在现今社交媒体的风靡下,许多人都会使用手机录制视频来记录生活中的美好瞬间。有时候,我们也会想要提取视频中的音频,例如将自己的演讲录音分发给听众。本文将会介绍如何在手机上提取视频中的音频以及需要注意的事项。 使用应用程序 首先&am…

Linux Debian12使用git将本地项目上传到码云(gitee)远程仓库

一、注册码云gitee账号 这个可以参考其他教程,本文不做介绍。 gitee官网:https://gitee.com/ 二、Linux Debian12安装git 如果Linux系统没有安装git,可以使用下面命令安装git sudo apt install git 三、gitee新建仓库 我这只做测试&…

实现分别在Linux、Docker、Kubernetes上安装部署Mysql、Redis、Nginx软件

目录 实现目的: Linux上一键安装Mysql、Nginx、Redis软件 一键安装Mysql脚本 一键安装Redis脚本 一键安装Nginx脚本 docker上安装部署Mysql、Nginx、Redis容器 Kubernetes上安装部署Mysql、Nginx、Redis的Pod和通过Service发布 创建Pod生成容器 使用Servic…

时间序列论文-聚类和异常检测(二)

同样摘自知乎的回答:https://www.zhihu.com/question/29507442/answer/1212624591?utm_id0 正巧之前做过时间序列 的异常检测项目,这里介绍几种尝试过的方法,也算是抛砖引玉 吧,欢迎大家讨论交流~ 背景与定义 时间序列异常 检测…

c++实现数据结构栈和队列

1、栈 头文件 #ifndef ZHAN_H #define ZHAN_H#define MAX 8 #include <iostream> using namespace std;class Shu {int datatype; //入栈的数据int *arr; //栈的数组int top; //记录栈顶元素的下标public://构造函数Shu();//析构函数~Shu();//判断空int stack_empty…