### 1.2.1 Windows环境搭建
1\.使用镜像
首先解决网络问题。环境搭建过程中需要下载很多资源文件,当某个资源更新不到时,就可能会报各种错误。在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:
- - - - - -
```
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
```
- - - - - -
![](https://box.kancloud.cn/d88777efa3a733e32bc26c26c9888346_43x47.jpeg)注意 此镜像为临时镜像,并不能保证一直可用,读者可以参考Using Flutter in China:<https://github.com/flutter/flutter/wiki/Using-Flutter-in-China>以获得有关镜像服务器的最新动态。
2\.安装Git
Flutter依赖的命令行工具为Git for Windows(Git命令行工具)。Windows版本的下载地址为:<https://git-scm.com/download/win>。
3\.下载安装Flutter SDK
去Flutter官网下载其最新可用的安装包。
![](https://box.kancloud.cn/d88777efa3a733e32bc26c26c9888346_43x47.jpeg)注意 Flutter的渠道版本会不停变动,请以Flutter官网为准。Flutter官网下载地址:[https://flutter.io/docs/development/tools/sdk/archive#windows。Flutter GitHub](https://flutter.io/docs/development/tools/sdk/archive#windows%E3%80%82Flutter%20GitHub)下载地址:<https://github.com/flutter/flutter/releases>。
将安装包zip解压到你想安装Flutter SDK的路径(如:D:\\Flutter)。在Flutter安装目录的Flutter文件下找到flutter\_console.bat,双击运行并启动Flutter命令行,接下来,你就可以在Flutter命令行运行flutter命令了。
![](https://box.kancloud.cn/d88777efa3a733e32bc26c26c9888346_43x47.jpeg)注意 不要将Flutter安装到需要一些高权限的路径如C:\\Program Files\\。
4\.添加环境变量
不管使用什么工具,如果想在系统的任意地方能够运行这个工具的命令,则需要添加工具的路径到系统path里去。这里路径指向到Flutter文件的bin路径,如图1-5所示。同时,检查是否有名为“PUB\_HOSTED\_URL”和“FLUTTER\_STORAGE\_BASE\_URL”的条目,如果没有,也需要添加它们。重启Windows才能使更改生效。
![](https://box.kancloud.cn/21bb69e381963bb406609dfefe38131e_667x190.jpeg)
图1-5 添加Flutter环境变量
5\.运行flutter命令安装各种依赖
使用Windows命令窗口运行以下命令,查看是否需要安装任何依赖项来完成安装:
- - - - - -
```
flutter doctor
```
- - - - - -
该命令检查你的环境并在终端窗口中显示报告。Dart SDK已经捆绑在Flutter里了,没有必要单独安装Dart。仔细检查命令行输出以获取可能需要安装的其他软件或进一步需要执行的任务。如下代码粗体显示,Android SDK缺少命令行工具,需要下载并且提供了下载地址,通常这种情况只需要把网络连好,VPN开好,然后重新运行flutter doctor命令即可。
- - - - - -
```
[-] Android toolchain - develop for Android devices
• Android SDK at D:\Android\sdk
x Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
• Try re-installing or updating your Android SDK,
visit https://flutter.io/setup/#android-setup for detailed instructions.
```
- - - - - -
![](https://box.kancloud.cn/d88777efa3a733e32bc26c26c9888346_43x47.jpeg)注意 一旦你安装了任何缺失的依赖,需再次运行flutter doctor命令来验证你是否已经正确地设置了,同时需要检查移动设备是否连接正常。
6\.编辑器设置
如果使用flutter命令行工具,可以使用任何编辑器来开发Flutter应用程序。输入flutter help在提示符下查看可用的工具。但是笔者建议最好安装一款功能强大的IDE来进行开发,毕竟开发调试运行打包的效率会更高。由于Windows环境只能开发Flutter的Android应用,所以接下来我们会重点介绍Android Studio这款IDE。
(1)安装Android Studio
要为Android开发Flutter应用,你可以使用Mac或Windows操作系统。Flutter需要安装和配置Android Studio,步骤如下:
1)下载并安装Android Studio:<https://developer.android.com/studio/index.html>。
2)启动Android Studio,然后执行“Android Studio安装向导”。这将安装最新的Android SDK、Android SDK平台工具和Android SDK构建工具,这是Flutter为Android开发时所必需的。
(2)设置你的Android设备
要准备在Android设备上运行并测试你的Flutter应用,需要安装Android 4.1(API level 16)或更高版本的Android设备。步骤如下:
1)在你的设备上启用“开发人员选项”和“USB调试”,这些选项通常在设备的“设置”界面里。
2)使用USB线将手机与计算机连接。如果你的设备出现提示,请授权计算机访问你的设备。
3)在终端中,运行flutter devices命令以验证Flutter识别出你连接的Android设备。
4)用flutter run启动你的应用程序。
![](https://box.kancloud.cn/49f6525ce5aa5ee81247bfc3fbfc8d30_46x47.jpeg)提示 默认情况下,Flutter使用的Android SDK版本是基于你的adb工具版本。如果你想让Flutter使用不同版本的Android SDK,则必须将该ANDROID\_HOME环境变量设置为SDK安装目录。
(3)设置Android模拟器
要准备在Android模拟器上运行并测试Flutter应用,请按照以下步骤操作:
1)启动Android Studio→Tools→Android→AVD Manager并选择Create Virtual Device,打开虚拟设备面板,如图1-6所示。
![](https://box.kancloud.cn/98596ca50f6a4c51562468556c8fe5fd_1038x580.jpeg)
图1-6 打开虚拟设备面板
2)选择一个设备并点击Next,如图1-7所示。
![](https://box.kancloud.cn/054dc8bdd9ac47e38b9ae643694ada1d_1038x668.jpeg)
图1-7 选择模拟硬件设备
3)选择一个镜像点击download即可,然后点击Next,如图1-8所示。
![](https://box.kancloud.cn/dbdfc223b10a0243a3975c58d7c2ea02_1038x678.jpeg)
图1-8 选择系统镜像
4)验证配置信息,填写虚拟设备名称,选择Hardware-GLES 2.0以启用硬件加速,点击Finish,如图1-9所示。
![](https://box.kancloud.cn/21f75bff397b20407072d73a928c0b59_1038x674.jpeg)
图1-9 验证配置信息
5)在工具栏选择刚刚添加的模拟器,如图1-10所示。
![](https://box.kancloud.cn/4f58f8127a9cd90e0b03993f29e03bc8_460x185.jpeg)
图1-10 在工具栏选择模拟器
6)也可以在命令行窗口运行flutter run启动模拟器。当能正常显示模拟器时(如图1-11所示),则表示模拟器安装正常。
![](https://box.kancloud.cn/e03a5887ac189fcaf7f14425a3e1449c_243x434.jpeg)
图1-11 Android模拟器运行效果图
![](https://box.kancloud.cn/49f6525ce5aa5ee81247bfc3fbfc8d30_46x47.jpeg)提示 建议选择当前主流手机型号作为模拟器,开启硬件加速,使用x86或x86\_64image。
详细文档请参考:<https://developer.android.com/studio/run/emulator-acceleration.html>。
(4)安装Flutter和Dart插件
IDE需要安装两个插件:
·Flutter插件:支持Flutter开发工作流(运行、调试、热重载等)。
·Dart插件:提供代码分析(输入代码时进行验证、代码补全等)。
打开Android Studio的系统设置面板,找到Plugins分别搜索Flutter和Dart,点击安装即可,如图1-12所示。
![](https://box.kancloud.cn/3a82b859e1315c102430160637c9b183_1038x600.jpeg)
图1-12 Android Studio插件安装
- 前言
- 第1章 开启Flutter之旅
- 1.1 Flutter的特点与核心概念
- 1.1.1 一切皆为组件
- 1.1.2 组件嵌套
- 1.1.3 构建Widget
- 1.1.4 处理用户交互
- 1.1.5 什么是状态
- 1.1.6 分层的框架
- 1.2 开发环境搭建
- 1.2.1 Windows环境搭建
- 1.2.2 MacOS环境搭建
- 1.3 第一个Flutter程序
- 第2章 Flutter基础知识
- 2.1 入口程序
- 2.2 Material Design设计风格
- 2.3 Flutter主题
- 2.3.1 创建应用主题
- 2.3.2 局部主题
- 2.3.3 使用主题
- 2.4 无状态组件和有状态组件
- 2.5 使用包资源
- 2.6 Http请求
- 第3章 Dart语言简述
- 3.1 Dart重要概念与常用开发库
- 3.2 变量与基本数据类型
- 3.3 函数
- 3.4 运算符
- 3.5 流程控制语句
- 3.6 异常处理
- 3.7 面向对象
- 3.7.1 实例化成员变量
- 3.7.2 构造函数
- 3.7.3 读取和写入对象
- 3.7.4 重载操作
- 3.7.5 继承类
- 3.7.6 抽象类
- 3.7.7 枚举类型
- 3.7.8 Mixins
- 3.8 泛型
- 3.9 库的使用
- 3.10 异步支持
- 3.11 元数据
- 3.12 注释
- 第4章 常用组件
- 4.1 容器组件
- 4.2 图片组件
- 4.3 文本组件
- 4.4 图标及按钮组件
- 4.4.1 图标组件
- 4.4.2 图标按钮组件
- 4.4.3 凸起按钮组件
- 4.5 列表组件
- 4.5.1 基础列表组件
- 4.5.2 水平列表组件
- 4.5.3 长列表组件
- 4.5.4 网格列表组件
- 4.6 表单组件
- 第5章 Material Design风格组件
- 5.1 App结构和导航组件
- 5.1.1 MaterialApp(应用组件)
- 5.1.2 Scaffold(脚手架组件)
- 5.1.3 AppBar(应用按钮组件)
- 5.1.4 BottomNavigationBar(底部导航条组件)
- 5.1.5 TabBar(水平选项卡及视图组件)
- 5.1.6 Drawer(抽屉组件)
- 5.2 按钮和提示组件
- 5.2.1 FloatingActionButton(悬停按钮组件)
- 5.2.2 FlatButton(扁平按钮组件)
- 5.2.3 PopupMenuButton(弹出菜单组件)
- 5.2.4 SimpleDialog(简单对话框组件)
- 5.2.5 AlertDialog(提示对话框组件)
- 5.2.6 SnackBar(轻量提示组件)
- 5.3 其他组件
- 5.3.1 TextField(文本框组件)
- 5.3.2 Card(卡片组件)
- 第6章 Cupertino风格组件
- 6.1 CupertinoActivityIndicator组件
- 6.2 CupertinoAlertDialog对话框组件
- 6.3 CupertinoButton按钮组件
- 6.4 Cupertino导航组件集
- 第7章 页面布局
- 7.1 基础布局处理
- 7.1.1 Container(容器布局)
- 7.1.2 Center(居中布局)
- 7.1.3 Padding(填充布局)
- 7.1.4 Align(对齐布局)
- 7.1.5 Row(水平布局)
- 7.1.6 Column(垂直布局)
- 7.1.7 FittedBox(缩放布局)
- 7.1.8 Stack/Alignment
- 7.1.9 Stack/Positioned
- 7.1.10 IndexedStack
- 7.1.11 OverflowBox溢出父容器显示
- 7.2 宽高尺寸处理
- 7.2.1 SizedBox(设置具体尺寸)
- 7.2.2 ConstrainedBox(限定最大最小宽高布局)
- 7.2.3 LimitedBox(限定最大宽高布局)
- 7.2.4 AspectRatio(调整宽高比)
- 7.2.5 FractionallySizedBox(百分比布局)
- 7.3 列表及表格布局
- 7.3.1 ListView
- 7.3.2 GridView
- 7.3.3 Table
- 7.4 其他布局处理
- 7.4.1 Transform(矩阵转换)
- 7.4.2 Baseline(基准线布局)
- 7.4.3 Offstage(控制是否显示组件)
- 7.4.4 Wrap(按宽高自动换行布局)
- 7.5 布局综合示例
- 7.5.1 布局分析
- 7.5.2 准备素材
- 7.5.3 编写代码
- 第8章 手势
- 8.1 用GestureDetector进行手势检测
- 8.2 用Dismissible实现滑动删除
- 第9章 资源和图片
- 9.1 添加资源和图片
- 9.1.1 指定assets
- 9.1.2 加载assets
- 9.1.3 平台assets
- 9.2 自定义字体
- 第10章 路由及导航
- 10.1 页面跳转基本使用
- 10.2 页面跳转发送数据
- 10.3 页面跳转返回数据
- 第11章 组件装饰和视觉效果
- 11.1 Opacity(透明度处理)
- 11.2 DecoratedBox(装饰盒子)
- 11.3 RotatedBox(旋转盒子)
- 11.4 Clip(剪裁处理)
- 11.5 案例——自定义画板
- 第12章 动画
- 12.1 用AnimatedOpacity实现渐变效果
- 12.2 用Hero实现页面切换动画
- 第13章 Flutter插件开发
- 13.1 新建插件
- 13.2 运行插件
- 13.3 示例代码分析
- 第14章 开发工具及使用技巧
- 14.1 IDE集成开发环境
- 14.1.1 Android Studio/IntelliJ
- 14.1.2 Visual Studio Code
- 14.2 Flutter SDK
- 14.3 使用热重载
- 14.4 格式化代码
- 14.5 Flutter组件检查器
- 第15章 测试与发布应用
- 15.1 测试应用
- 15.1.1 简介
- 15.1.2 单元测试
- 15.1.3 Widget测试
- 15.1.4 集成测试
- 15.2 发布Android版App
- 15.2.1 检查App Manifest
- 15.2.2 查看构建配置
- 15.2.3 添加启动图标
- 15.2.4 App签名
- 15.2.5 构建发布版APK并安装在设备上
- 15.3 发布iOS版App
- 15.3.1 准备工作
- 15.3.2 在iTunes Connect上注册应用程序
- 15.3.3 注册一个Bundle ID
- 15.3.4 在iTunes Connect上创建应用程序记录
- 15.3.5 查看Xcode项目设置
- 15.3.6 添加应用程序图标
- 15.3.7 准备发布版本
- 15.3.8 将应用发布到App Store
- 第16章 综合案例——即时通讯App界面实现
- 16.1 项目介绍
- 16.2 项目搭建
- 16.2.1 新建项目
- 16.2.2 添加源码目录及文件
- 16.3 入口程序
- 16.4 加载页面
- 16.5 应用页面
- 16.6 搜索页面
- 16.6.1 布局拆分
- 16.6.2 请求获取焦点
- 16.6.3 自定义TouchCallBack组件
- 16.6.4 返回文本组件
- 16.6.5 组装实现搜索页面
- 16.7 聊天页面
- 16.7.1 准备聊天消息数据
- 16.7.2 聊天消息列表项实现
- 16.7.3 聊天消息列表实现
- 16.8 好友页面
- 16.8.1 准备好友列表数据
- 16.8.2 好友列表项实现
- 16.8.3 好友列表头实现
- 16.8.4 ContactSiderList类
- 16.8.5 Contacts类
- 16.9 我的页面
- 16.9.1 通用列表项实现
- 16.9.2 Personal类