当前位置: 首页 > news >正文

1.2 环境搭建与项目结构

本节将带你完成 Flutter 开发环境的搭建,了解项目的目录结构,并掌握日常开发中最常用的命令行工具。


一、Flutter SDK 安装与配置

1.1 系统要求

操作系统最低要求
WindowsWindows 10 64-bit(x86-64)
macOSmacOS 10.14(Mojave)及以上
Linux64 位系统,glibc 2.17 及以上

1.2 下载 Flutter SDK

方式一:官网下载(推荐)

前往 Flutter 官方网站下载对应平台的 SDK 压缩包:

https://flutter.dev/docs/get-started/install

方式二:通过 Git 克隆(适合持续更新)

gitclone https://github.com/flutter/flutter.git-bstable

1.3 配置环境变量

macOS / Linux

编辑~/.zshrc~/.bashrc,添加以下内容:

exportPATH="$PATH:/你的安装路径/flutter/bin"

使配置生效:

source~/.zshrc
Windows
  1. 打开「系统属性」→「高级」→「环境变量」
  2. 在「Path」中新增 Flutter SDK 的bin目录路径,例如:
    C:\flutter\bin

1.4 国内镜像配置(中国用户必配)

由于网络原因,建议配置国内镜像加速:

# 添加到环境变量exportPUB_HOSTED_URL=https://pub.flutter-io.cnexportFLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

1.5 安装 Android / iOS 开发依赖

Android 开发

  1. 安装 Android Studio
  2. 打开 Android Studio → SDK Manager,安装:
    • Android SDK
    • Android SDK Platform-Tools
    • Android SDK Build-Tools
  3. 接受 Android 许可协议:
    flutter doctor --android-licenses

iOS 开发(仅 macOS)

  1. 安装 Xcode(App Store)
  2. 安装命令行工具:
    sudoxcode-select--install
  3. 安装 CocoaPods:
    sudogeminstallcocoapods

二、项目目录结构解析

使用以下命令创建一个新的 Flutter 项目:

flutter create my_appcdmy_app

创建完成后,项目目录结构如下:

my_app/ ├── android/ # Android 原生工程(Java/Kotlin) │ ├── app/ │ │ └── src/main/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/... │ └── build.gradle │ ├── ios/ # iOS 原生工程(Swift/Objective-C) │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ └── Info.plist │ └── Podfile │ ├── lib/ # ⭐ Dart 代码主目录(核心开发目录) │ └── main.dart # 应用程序入口文件 │ ├── test/ # 单元测试与 Widget 测试目录 │ └── widget_test.dart │ ├── web/ # Web 平台支持目录(如已启用) │ ├── linux/ # Linux 平台支持目录 ├── macos/ # macOS 平台支持目录 ├── windows/ # Windows 平台支持目录 │ ├── assets/ # 静态资源目录(图片、字体、JSON 等) │ ├── pubspec.yaml # ⭐ 项目配置文件(依赖、资源声明) ├── pubspec.lock # 锁定依赖版本(自动生成,勿手动修改) ├── analysis_options.yaml # Dart 静态分析规则配置 └── README.md # 项目说明文档

2.1 核心文件详解

lib/main.dart— 程序入口
import'package:flutter/material.dart';voidmain(){runApp(constMyApp());// 启动 Flutter 应用}classMyAppextendsStatelessWidget{constMyApp({super.key});@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(title:'Flutter Demo',home:constMyHomePage(),);}}
pubspec.yaml— 项目配置文件
name:my_app# 项目名称description:A new Flutter project.version:1.0.0+1# 版本号+构建号environment:sdk:'>=3.0.0 <4.0.0'# Dart SDK 版本限制dependencies:flutter:sdk:flutter# 在此添加第三方依赖,例如:# http: ^1.0.0flutter:assets:# 声明静态资源-assets/images/fonts:# 声明自定义字体-family:MyFontfonts:-asset:assets/fonts/MyFont.ttf

2.2 推荐的lib/目录规范结构

随着项目规模扩大,建议按以下方式组织lib/目录:

lib/ ├── main.dart # 入口文件 ├── app.dart # 应用根 Widget │ ├── pages/ # 页面层(各功能页面) │ ├── home/ │ │ ├── home_page.dart │ │ └── home_controller.dart │ └── detail/ │ └── detail_page.dart │ ├── widgets/ # 可复用组件 │ ├── custom_button.dart │ └── loading_widget.dart │ ├── models/ # 数据模型 │ └── user_model.dart │ ├── services/ # 网络请求与业务逻辑 │ └── api_service.dart │ ├── utils/ # 工具函数 │ └── date_utils.dart │ └── constants/ # 常量定义(颜色、字符串等) ├── colors.dart └── strings.dart

三、常用命令与工具

3.1flutter doctor— 环境检测

flutter doctor是配置环境时最重要的诊断命令,它会自动检测开发环境是否配置完整。

flutter doctor

示例输出:

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.19.0, on macOS 14.3) [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 15.2) [✓] Chrome - develop for the web [✓] Android Studio (version 2023.1) [✓] VS Code (version 1.87.0) [✓] Connected device (2 available) [✓] Network resources • No issues found!

常用参数:

命令作用
flutter doctor快速检测,显示摘要
flutter doctor -v显示详细检测信息
flutter doctor --android-licenses接受 Android 许可证

提示:所有条目显示[✓]才表示环境配置完成。若有[✗][!],按提示修复即可。


3.2flutter run— 运行应用

flutter run

常用参数:

命令说明
flutter run在默认连接设备上运行
flutter run -d chrome在 Chrome 浏览器中运行(Web)
flutter run -d emulator-5554指定设备 ID 运行
flutter run --release以 Release 模式运行(性能最优)
flutter run --profile以 Profile 模式运行(性能分析)
flutter run --flavor staging指定 flavor 运行(多环境构建)

运行时热键(Hot Reload / Hot Restart):

flutter run运行状态下,终端支持以下快捷键:

按键功能
rHot Reload(热重载,保留状态)
RHot Restart(热重启,重置状态)
p显示/隐藏组件边界 Widget Bounds
q退出应用

3.3flutter build— 构建应用

flutter build<目标平台>

各平台构建命令:

命令说明
flutter build apk构建 Android APK(默认 Release)
flutter build apk --debug构建 Android Debug APK
flutter build apk --split-per-abi按 ABI 分包构建(减小包体积)
flutter build appbundle构建 Android App Bundle(推荐上架 Google Play)
flutter build ios构建 iOS(需要 macOS + Xcode)
flutter build ipa构建 iOS IPA 安装包
flutter build web构建 Web 产物(输出到build/web/
flutter build macos构建 macOS 应用
flutter build windows构建 Windows 应用
flutter build linux构建 Linux 应用

构建产物路径:

build/ ├── app/outputs/flutter-apk/app-release.apk # Android APK ├── app/outputs/bundle/release/app-release.aab # Android Bundle ├── ios/iphoneos/Runner.app # iOS 产物 └── web/ # Web 产物

3.4 其他常用命令

命令功能说明
flutter create <项目名>创建新项目
flutter pub get获取/更新依赖包
flutter pub add <包名>添加依赖包
flutter pub remove <包名>移除依赖包
flutter pub upgrade升级所有依赖到最新版本
flutter clean清除构建缓存(解决奇怪报错时使用)
flutter test运行所有测试
flutter analyze静态分析代码,检查潜在问题
flutter format .格式化所有 Dart 代码
flutter upgrade升级 Flutter SDK 到最新稳定版
flutter channel查看/切换 Flutter 发布渠道
flutter devices列出所有已连接的设备
flutter emulators列出可用的模拟器

四、推荐开发工具

工具说明下载地址
VS Code轻量,推荐日常开发https://code.visualstudio.com
Android Studio功能全面,官方支持https://developer.android.com/studio
Flutter 插件(VS Code)提供代码补全、调试、Hot ReloadVS Code 插件市场搜索 “Flutter”
Dart 插件(VS Code)Dart 语言支持VS Code 插件市场搜索 “Dart”
FlutterFire CLIFirebase 集成工具dart pub global activate flutterfire_cli

小结

知识点要点
SDK 安装下载后配置PATH环境变量,国内用户需配置镜像
目录结构lib/是核心,pubspec.yaml管理依赖与资源
flutter doctor环境配置完成后必须全部显示[✓]
flutter run支持热重载(r)和热重启(R),大幅提升开发效率
flutter build根据目标平台选择对应子命令,Release 模式用于生产发布

👉 下一节:1.3 Dart 语言基础— 了解 Flutter 的编程语言基础

http://www.jsqmd.com/news/622453/

相关文章:

  • E-Hentai-Downloader 终极指南:如何快速批量下载漫画并打包为ZIP文件
  • 狂揽四万星!换掉OpenClaw太爽了,五美元就能养个AI打工人
  • 斯坦福HumanPlus机器人核心技术解析:从HST强化学习框架到HIT模仿学习的实现路径
  • AppScan 常见安装与配置问题实战指南
  • 手机怎么把ChatGPT和Gemini对话导出 - DS随心转小程序
  • PHP 后端面试题整理
  • 【电路标准设计】VOOHU沃虎电子--SPE单对以太网标准电路参考
  • 泛化与适应能力局限:认知边界下的成长困局
  • 【词汇专栏】RAG:让 AI 学会“查完资料再说话“
  • QwQ-32B在Matlab科学计算中的应用
  • 拒绝拉伸与留白:鸿蒙折叠屏适配 Top4 体验优化场景(含三折屏适配)
  • 已绑定的京东E卡可以回收吗? - 京顺回收
  • 使用 C# 删除 PDF 中的数字签名牢
  • Qwen3-ASR-0.6B与CNN结合的音频分类实战
  • 拯救者笔记本终极控制指南:Lenovo Legion Toolkit完全掌控你的硬件
  • WindowsCleaner:拯救C盘空间的智能清理专家,让Windows系统重获新生
  • 保姆级教程:IndexTTS2 V23镜像快速部署,小白也能调出情感语音
  • 26年采购平台软件有哪些值得用?口碑厂商盘点(防坑必看) - 品牌排行榜
  • AI Agent 架构图解:大模型、记忆、RAG 与工具调用的协同机制栏
  • 比迪丽LoRA模型MySQL安装配置与作品库搭建教程
  • 国产信创库fio破坏主备库以及备份故障处理--惜分飞俾
  • 远程协作工具的下一个形态:超越视频会议和在线文档
  • Open-Meteo 天气API架构深度解析:高性能气象数据服务实现原理
  • Clipper1 C# 源码解读教程
  • 寻音捉影·侠客行行业落地:教育机构快速提取在线课程中所有‘课后习题’出现时刻
  • qmcdump:三分钟快速解锁QQ音乐加密文件的终极指南
  • 百川2-13B-对话模型WebUI快速部署:无需Docker,原生Python 3.10环境直跑
  • Intv_AI_MK11赋能Qt桌面应用:为C++ GUI程序添加自然语言交互界面
  • eNSP第二次作业
  • 黑丝空姐-造相Z-Turbo参数调优心得:采样步数与CFG Scale怎么设?