Flutter学习总结(一)环境搭建

Flutter开发也有一段时间了,一直也没有总结,今天发现最初的环境搭建还要各种搜,是时候来上一篇了,以下是在AndroidStudio中进行Flutter环境搭建过程。

开发环境搭建

1.下载安装插件"Dart"和"Flutter"

Flutter学习总结(一)环境搭建_第1张图片

Flutter学习总结(一)环境搭建_第2张图片

2.下载Flutter SDK

官网地址:https://flutter.dev/docs/development/tools/sdk/releases

或者从源仓库中下载Release包:https://github.com/flutter/flutter

3.配置环境变量

配置Flutter SDK环境变量是为了在AndroidStudio中集成Terminal命令行。
Flutter学习总结(一)环境搭建_第3张图片

4.测试Flutter环境

打开命令行,输入flutter doctor

工程搭建

新建工程

Flutter学习总结(一)环境搭建_第4张图片

  • 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

你可能感兴趣的:(Flutter,flutter,移动开发,android)