Flutter 工程目录结构

人生语录

1.命运就像自己的掌纹,虽然弯弯曲曲,却永远掌握在自己手中。 2.不要浪费你的生命,在你一定会后悔的地方上。 3.激情,这是鼓满船帆的风。风有时会把船帆吹断;但没有风,帆船就不能航行。 4.人是可以快乐地生活的,只是我们自己选择了复杂,选择了叹息! 5…

Flutter 工程目录结构

Flutter 工程目录结构

dart_tool Dart工具开发
.idea 开发环境配置
android 安卓原生工程文件
build 编译或运行后产物
lib 包含.dart结尾的工程相关文件
test  包含.dart结尾的工程测试文件
gen  
.gitignore git提交仓库忽略文件
.metadata 一个对当前workspace的配置记录
.packages 以lib结尾的文件绝对路径
flutter_dir.iml 工程文件的本地路径配置
pubspec.lock 前项目依赖所生成的文件
pubspec.yaml 依赖配置
README.md 自述项目信息(html标签) 
External Libraries 安卓架包和资源文件、Dart SDK 文件、工程开发依赖插件API
Scratches and Consoles 创建的临时文件和缓冲区列表

 

IDE自动生成文件

当我们每次导航到硬盘删除后,重新启动工程会再次生成

Flutter 工程目录结构

工程文件

删除后不会因为工程重新启动而自动创建.

Flutter 工程目录结构

gitignore文件的作用 

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。

# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
.vscode/

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/

# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java

# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

# Web related
lib/generated_plugin_registrant.dart

# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

常用通配符说明

# 注释
* 匹配多个字符
** 中间多级目录
! 不忽略匹配到的文件或目录移除已添加的文件

移除单个文件
git rm -r –cached 文件名
移除全部文件
git rm -r –cached .

flutter工程编译安卓工程后最终产物路径

执行命令 flutter build apk

Flutter 工程目录结构

Flutter 工程目录结构

打包并发布 iOS 应用

打测试包

1、Xcode中的证书配置

Flutter 工程目录结构

2、Xcode清理缓存

Flutter 工程目录结构

3、执行flutter build ios –release 构建release版本的flutter包

Flutter 工程目录结构

 4、archive出IPA包

Flutter 工程目录结构

打正式包,参考Flutter官网

Flutter简介

Flutter的架构主要分成三层:Framework,Engine和Embedder。 

Framework

 

Flutter 工程目录结构

 Egine引擎

Flutter 工程目录结构

Embedder

Embedder是一个嵌入层,即把Flutter嵌入到各个平台上去,这里做的主要工作包括渲染Surface设置,线程设置,以及插件等。从这里可以看出,Flutter的平台相关层很低,平台(如iOS)只是提供一个画布,剩余的所有渲染相关的逻辑都在Flutter内部,这就使得它具有了很好的跨端一致性。

参考:

深入理解flutter的编译原理与优化

【Flutter 极速指南】工作原理篇

 

 

本文由 @不成功的猿人[Vip] 发布于 职涯宝 ,未经作者许可,禁止转载,欢迎您分享文章

发表评论

登录后才能评论
小程序
小程序
微信客服
微信客服
QQ客服 建站服务
分享本页
返回顶部