第1章、基础入门
1.1 Flutter简介
1.1.1 跨平台框架的发展历史
跨平台移动开发框架经历了从早期混合开发到现代高性能框架的演进过程。最初,开发者主要使用WebView技术构建应用,但性能体验较差。随后出现React Native等框架,通过JavaScript桥接方式调用原生组件,性能有所提升。Flutter作为新一代框架,采用自绘引擎直接渲染UI,实现了120fps的高性能表现。
1.1.2 Flutter的起源
Flutter的前身是Google在2015年内部测试的Sky项目。该项目使用Dart语言开发原生Android应用,注重运行速度和与Web的集成。Sky项目不依赖特定平台,代码可运行在Android、iOS等包含Dart虚拟机的平台上。
在2017年Google I/O大会上,Flutter作为开源移动UI框架正式推出。2018年初发布第一个Beta版本,同年5月更新至Beta3版本,逐步完善并受到开发者广泛关注。
1.1.3 Flutter体系结构
Flutter采用分层架构设计,从下到上包括Engine层、Framework层和Widget层。Engine层由C++实现,提供图形渲染、文件IO等基础服务。Framework层提供丰富的UI组件,Widget层则是构建UI的主要方式。
1.1.4 Dart虚拟机
Dart虚拟机是Flutter运行时的核心,支持即时编译和预编译模式。在开发阶段使用JIT编译实现热重载功能,发布时则通过AOT编译生成原生代码,保证应用性能。
1.2 Flutter开发环境
1.2.1 安装Flutter开发环境
Flutter支持Windows、macOS和Linux系统。安装过程包括下载Flutter SDK、配置环境变量、安装平台相关工具链等步骤。建议使用Android Studio或VS Code作为开发工具,并安装Flutter和Dart插件。
1.2.2 常用命令行工具
Flutter提供丰富的命令行工具,以下是常用命令:
flutter --version查看Flutter版本flutter create创建新项目flutter run运行应用flutter build apk构建APKflutter doctor检查开发环境flutter packages get获取依赖包flutter test运行单元测试flutter clean清理构建文件flutter upgrade升级Flutter版本
1.2.3 调试工具
Flutter提供完善的调试工具链,包括Dart DevTools、Flutter Inspector、性能视图等。开发者可以实时查看Widget树、监控性能指标、调试内存问题。
1.3 开发第一个Flutter程序
1.3.1 HelloWorld案例
创建Flutter项目时,Android Studio提供三种项目模板:Flutter Application用于标准应用开发,Flutter Plugin用于开发原生插件,Flutter Package用于创建纯Dart包。
创建Flutter Application项目时,项目名称需使用小写字母和下划线分隔。项目创建后主要代码位于lib目录,其中main.dart是应用入口文件。
运行项目前需要启动模拟器或连接真机,选择main.dart文件后点击运行按钮。默认生成的示例应用包含AppBar、文本中心和浮动操作按钮,点击按钮可实现计数器功能。
1.3.2 程序结构
Flutter项目采用独特的目录结构:
- android目录:存放Android平台特定代码,结构与标准Android项目类似
- ios目录:存放iOS平台特定代码
- lib目录:核心Dart代码目录,所有业务逻辑在此实现
- pubspec.yaml:项目配置文件,声明依赖项和资源文件
pubspec.yaml文件用于管理项目依赖,可以指定远程pub仓库的依赖库或本地资源。依赖包会下载到本地缓存目录,默认路径为用户目录下的Pub缓存文件夹。
1.3.3 打包发布
发布Flutter应用需要完成以下步骤:
- 创建签名证书:使用keytool生成JKS格式的签名文件
- 配置签名信息:在android目录下创建key.properties文件,存储证书密码和路径
- 配置构建脚本:修改android/app/build.gradle文件,配置release模式的签名设置
- 构建发布包:运行flutter build apk命令生成APK文件
- 安装测试:使用flutter install命令将应用安装到设备
构建完成后,发布版APK位于build/app/outputs/apk/app-release.apk路径。