Flutter开发也有一段时间了,一直也没有总结,今天发现最初的环境搭建还要各种搜,是时候来上一篇了,以下是在AndroidStudio中进行Flutter环境搭建过程。
开发环境搭建
1.下载安装插件"Dart"和"Flutter"
2.下载Flutter SDK
官网地址:https://flutter.dev/docs/development/tools/sdk/releases
或者从源仓库中下载Release包:https://github.com/flutter/flutter
3.配置环境变量
配置Flutter SDK环境变量是为了在AndroidStudio中集成Terminal命令行。
4.测试Flutter环境
打开命令行,输入flutter doctor
工程搭建
新建工程
- Flutter Application:创建一个Flutter项目,内部包含iOS和Android。
- Flutter Plugin: 可以通过plugin形式包装原生代码,使得Flutter项目能够调用plugin的中原生代码。
- Flutter Package: 纯Dart层实现,常用于定义一些公共的widget。
- Flutter Module: 混编到已有的android或者iOS功能内,即在现有的项目中引入Flutter。
pubspec.yaml认识
pubspec.yaml
文件是flutter全局配置文件,类似Android上的AndroidManifest或者Gradle。
flutter应用开发中的pubspec.yaml:
# 键值对,表示app的名字为flutter_app
name: flutter_app
# 描述
description: A new Flutter application.
# flutter工程版本,加号前是版本号,加号后是版本名字
version: 1.0.0+1000
# SDK环境,dart的SDK和flutter的SDK都可以设置在这里。
environment:
# dart sdk,一般设置一个最小兼容版本
sdk: ">=2.12.0 <3.0.0"
# flutter sdk,团队开发时可以把flutter sdk版本固定,防止团队间不一致,默认可不用设置。
# flutter: "2.5.0"
# 依赖库
dependencies:
flutter:
sdk: flutter
# cupertino图标,项目开发一般是自己的图标,所以此处也不一定能用到
cupertino_icons: ^1.0.3
#Flutter国际化支持
flutter_localizations:
sdk: flutter
# 权限申请
permission_handler: ^8.2.5
#图片加载组件 https://pub.dev/packages/extended_image/install
extended_image: ^5.1.3
# 预览图片
photo_view: ^0.13.0
# 图片压缩 https://pub.flutter-io.cn/packages/flutter_image_compress
flutter_image_compress: ^1.1.0
#自定义加载框、toast、弹框 https://pub.dev/packages/flutter_smart_dialog/versions
flutter_smart_dialog: ^3.3.0
# 获取应用程序包信息(应用名,包名,版本号,构建号等等)
package_info: ^2.0.2
# 获取文件系统中常用的目录路径
path_provider: ^2.0.5
# 下拉刷新上拉加载
flutter_easyrefresh: ^2.2.1
# 打电话、打开网址、发送邮件、信息
url_launcher: ^6.0.12
# 状态管理器 GetX
get: ^4.3.8
# 网络库
dio: ^4.0.3
# 加解密
crypto: ^3.0.1
# 若该插件未部署在pub.dev上,例如部署在私服上,可以通过URL来指定出插件下载的源
common_widget_lib:
hosted:
name: common_widget_lib
url: http://192.168.x.xx:8080
version: 2.0.1
# # 有时候插件在本地,那么直接可以指定本地路径,这种情况一般是本地调试,调试完毕一般都会发布到远程。
# common_widget_lib:
# path: ../common_widget_lib
#测试环境的依赖库
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
#使用Material图标
uses-material-design: true
#assets文件,用来指定assets文件夹下的图片资源
assets:
- assets/images/common/
- assets/images/login/
- assets/images/main/
#字体样式
#fonts:
#family与fonts是一个整体,列表的一项
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
flutter plugin中的pubspec.yaml,相比工程中的主要区别就是需要明确发布仓库、地址、版本、作者等信息:
name: common_widget_lib
description: 通用控件
version: 2.0.1
author: XXXXX
homepage: http://192.168.x.xx:8080/Flutter/_git/common_widget_lib
publish_to: http://192.168.x.xx:8080
更多配置可参考:https://blog.csdn.net/mengks1987/article/details/109500041
常用命令
运行打包命令(debug、profile、release),target是指定main.dart文件位置,如果main.dart在lib根目录可以不用配置target:
- flutter run --debug
- flutter run --release --target=lib\app\run\main.dart
- flutter build apk //debug和release包都会打出
- flutter build apk --release --target=lib\app\run\main_demo.dart
- flutter build ios --release //打ios的release包
- flutter build aar //插件打aar包
- flutter pub publish //插件pub发布,需要注意有可能墙的限制
其他命令:
- flutter //获取flutter所有命令
- flutter help //获取命令帮助信息
- flutter doctor //检查flutter安装状态,确保环境配置完好
- flutter devices //获取所有真机设备列表包括iOS模拟器
- flutter run -d //运行指定模拟器或者真机
- flutter run -d all //运行所有模拟器,run的时候必须先开启模拟器
- flutter pub get //获取flutter项目中依赖的包,如果已经下载,不强制获取,速度比较快
- flutter packages get //强制获取flutter项目中依赖的包,不包括flutter sdk
- flutter packages upgrade //更新flutter项目所有依赖包,不包括flutter sdk
- flutter analyze //代码分析
其它问题
flutter找不到androidstudio模拟器:
执行命令行:
flutter config --android-sdk D:\android-sdk