Flutter在Android Studio上创建项目与构建模式

一、安装插件

    1、前提条件,安装配置好Android Studio环境

    2、安装Flutter和Dart插件

        Linux或者Windows平台:

1)、打开File > Settings。

2)、在左侧列表中,选择"Plugins"右侧上方面板选中 "Marketplace"

在搜索框中输入“flutter”,选择Flutter插件,点击“Install”安装。

3)、提示安装时点击确认。如果提示同时安装 Dart 插件也点击确认。

4)、当弹出重新启动提示时,点击 Restart
 

二、创建Flutter工程

1、在IDE中,点击File > New > Project 中的 New Flutter Project

2、在菜单左侧中选择“Flutter”项,右侧要在“Flutter SDK path”项选择flutter sdk的路径,点击 “Next”。

3.、输入你的 Project nameDescription 和 Project location,点击“Create”开始创建应能用。

4、点击“finnish”等待工程编译。

三、Flutter的构建模式选择
    Flutter支持三种模式(debug、profile、release)编译app,也支持使用headless模式来测试。
  1、 我们什么时候应该使用哪种模式呢?
  • 开发过程中,需要使用热重载功能,请选择debug构建模式。
  • 当你需要分析性能的时候,选择使用profile构建模式。
  • 发布应用的时候,需要选择使用release构建模式。
2、调试模式(debug)
    在debug模式下,app可以被安装在物理设备、仿真器、模拟器等上进行调试。
    使用 debug模式意味着:
  •   断点是开启的  
  • 服务扩展是开启的。
  • 针对快速开发和运行周期进行了编译优化。
  • 调试开启,类似开发者工具等调试工具可以连接到进程里。

    在 Web 平台下的调试模式意味着:

  • 本次构建 没有 最小化资源并且整个构建 没有 优化性能。
  • 为了简化调试,这个 Web 应用使用了 dartdevc 编译器。
    默认情况下,运行 flutter run 会使用debug模式。
提示:
  • 热重载功能仅能在调试模式下运行。
  • 仿真器模拟器仅能在调试模式下运行。
  • 在调试模式下,应用的性能可能会掉帧或者卡顿,profile模式下会更接近真机。
2、Release模式
    当你想要最大的优化以及最小的占用空间时,就使用 Release 模式来部署 app 
    release 模式是不支持模拟器或者仿真器的。
    使用 Release 模式意味着:
  • 断点是不可用的
  • 调试信息是不可见的
  • 调试是禁用
  • 编译针对快速启动,快速执行和小的package的大小进行优化。
  • 服务扩展是禁用的。

    在 Web 平台的 Release 模式意味着:

  • 这次构建资源已经被压缩,并且性能得以优化。
  • 这个 Web 应用通过 dart2js 编译器构建,以确保更优秀的性能。
    
    flutter run --release命令会使用Release模式来进行编译的。
    你也可以使用 flutter build <target> 针对特定目标编译Release模式,请使用 flutter help build 查看支持的目标列表
    你也可以通过 flutter build --release 命令来使用release模式。
    你也可以运用 flutter build 命令使用Releasae模式来编译。
3、Profile模式
    在profile模式下,一些调试功能是被保留的,足够用来分析app性能。在仿真器与模拟器上,profile模式是不可用的,因为它们的行为不代表真实的性能。
    profile模式与release模式相似,但有以下不同:
  • 一些服务扩展是启用的。
  • Tracing是启用的,一些调试工具 ,比如开发者工具可以连接到进程里。

    在 Web 平台的 Profile 模式意味着:

  • 资源文件没有被压缩,但是整体性能已经优化。
  • 这个 Web 应用通过 dart2js 编译器构建。
  • DevTool 无法连接至以性能模式运行的 Flutter Web 应用。你需要用 Chrome 的 DevTools 来为 Web 应用生成时间线事件。
    flutter run --profile 命令是使用Profile模式来编译的。
    提示:
    可以使用 开发者工具 来测试应用的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-element-admin如何把mock换成使用真实后台接口

1&#xff09;修改vue.config.js文件 use strict const path require(path) const defaultSettings require(./src/settings.js)function resolve(dir) {return path.join(__dirname, dir) }const name defaultSettings.title || vue Element Admin // page title// If you…

Vue3-16-【v-model】 表单数据绑定

作用描述 v-model 指令&#xff0c;实现了 表单输入组件的值 与 js 中的变量的值的绑定关系。 当我们在页面上执行输入动作时&#xff0c;js中变量的值也会同步发生变化。表单不仅仅局限于输入框&#xff0c;其他的如 &#xff1a; 单选按钮&#xff0c;复选框&#xff0c;下拉…

数据结构面试题和题目解析

以下是一些数据结构的面试题和解析&#xff1a; 1. 什么是链表&#xff1f; 链表是一种线性数据结构&#xff0c;由一系列节点组成&#xff0c;每个节点包含数据部分和指向下一个节点的指针。链表的主要优点是插入和删除操作比较方便&#xff0c;但访问链表中的元素不如访问数组…

【INTEL(ALTERA)】 quartus SignalTap 逻辑分析器 – Nios® II 插件 无法检测 Nios® II/f 处理器内核

说明 使用 Nios II 插件将 Nios II/f 处理器内核节点添加到 SignalTap 逻辑分析器时&#xff0c;在 英特尔 Quartus Prime Pro Edition 软件 23.3 版中可能会出现此问题。 错误消息&#xff1a; 无法完成“添加带插件的节点”命令&#xff0c;因为在当前设计中找不到所选 IP。…

IDEA之设置项目包的结构层级为eclipse默认样式

idea默认项目包的结构层级如下: 想修改成eclipse默认的那种样式&#xff0c;设置步骤如下: 1.点击下图中红框图标进行设置 2.选择 Tree Appearance&#xff0c;取消勾选 Compact Middle Packages 3.勾选红框里的两个选项&#xff0c;Flatten Packages 和 Hide Empty Middle Pa…

DL Homework 11

由于好多同学问我要代码&#xff0c;但这两天光顾着考四六级了&#xff0c;所以只能今天熬夜先给赶出来&#xff0c;第一题先搁置&#xff0c;晚点补上&#xff0c;先写第二题 习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 习题6-3P 编程实现…

KMP算法, 什么是KMP算法 ,暴力匹配 ,KMP算法实现

文章目录 KMP算法什么是KMP算法暴力匹配KMP算法实现 KMP算法 什么是KMP算法 KMP是Knuth、Morris和Pratt首字母的缩写&#xff0c;KMP也是由这三位学者发明&#xff08;1977年联合发表论文&#xff09;。 KMP主要应用在字符串的匹配&#xff0c;是一个解决模式串在文本串是否…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《耦合碳-绿证-消纳量市场的日前电量市场交易交互式优化》

这个标题描述了一种优化模型或算法&#xff0c;用于在日前电量市场中耦合碳排放权市场、可再生能源绿色证书市场和消纳量市场进行交易的交互式优化。我将解析标题的关键词和概念&#xff1a; 日前电量市场&#xff1a;指的是电力市场中进行短期调度和交易的市场&#xff0c;其…

Idea maven打包时 报错 illegalArgumentException: Malformed \uxxxx encoding 解决方法

1 改变打包命令重新打包 在maven打包命令上加入 -e -X 2 找到报错类和方法 可以看到是 java.util.Properties#loadConvert类方法中有个throw new IllegalArgumentException( "Malformed \\uxxxx encoding.")&#xff0c;在此打断点 3 以Debug方式重新运行maven…

SLAM算法与工程实践——相机篇:传统相机使用(1)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接&#xff0c;本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址&#xff1a; SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

死锁的预防、避免、检测和消除

一、预防死锁 1. 破坏互斥条件 2. 破坏不剥夺条件 3.破坏请求和保持条件 4.破坏循环等待条件 二、避免死锁 避免死锁的一种方法是使用银行家算法&#xff0c;它涉及到安全序列的概念。银行家算法是一种资源分配和死锁避免的算法&#xff0c;它确保系统能够分配资源而不会导致死…

STM32迪文屏图标控件保姆级教程

要主图的去末尾&#xff0c;末尾福利图在等着你~~~ 文章目录 前言 开发环境 二、使用步骤 1.添加图标控件 2.设置图标属性 3.图标库ICL文件生成 4.单片机程序编写 容易踩得坑 一、前言 本篇文章主要介绍了在DGBUS平台上使用图标变量的步骤。首先需要在DGBUS中添加一个图标变量控…

linux(centos7)mysql8.0主从集群搭建(两台机器)

docker安装:&#xff08;转载&#xff09;centos7安装Docker详细步骤&#xff08;无坑版教程&#xff09;-CSDN博客 环境信息 主数据库服务器&#xff1a;192.168.1.10 从数据库服务器&#xff1a;192.168.1.11 1. mysql8.0镜像下载 docker pull mysql:8.0.23 2.创建docke…

瑞萨单片机学习:RA4M3单片机 BOOTloader升级 跳转到主程序 主程序无法执行问题

背景&#xff1a; 使用瑞萨的RA4M3单片机编写BOOT引导程序进行测试&#xff0c;在BOOT程序跳转到主程序时&#xff0c;主程序无法执行。本文介绍了问题的定位和解决方法。 运行开发环境介绍 硬件环境 RA4M3 官方开发板 J-LINK V11 开发板自带 软件开发环境 e2 studio VSCODE…

oracle怎么导入dmp文件??????

目录 oracle怎么导入dmp文件&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f; 先看&#xff1a; 方法一&#xff1a;【推荐】 winR输入 输入&#xff1a; 检验&#xff1a; 导入成功&#xff01; 方法二&#xff1a; 直接在 PLSQL Developer…

插入排序:直接插入排序 希尔排序

插入排序&#xff1a; 假设红竖线前的元素全部排好序&#xff0c;红线后面的数即为要插入的数据&#xff0c;红线依次往后移&#xff0c;假设end为排好序的最后一个数字&#xff0c;end1即为要插入的数字&#xff0c;一次插入时&#xff0c;end与要插入的数字依次比较&#xf…

Axure元件库的使用

1.基本元件库 1.1Axure的画布范围 Axure是一个绘制项目原型图的软件&#xff0c;它里面的基本原件有&#xff1a; 1.1元件的呈现范围 首先我们要了解基本元件的作用范围在哪里&#xff1f; 浏览效果&#xff1a; 可以看出当我们的基本元件放在画布区域内是可以完全呈现出来…

从0创建并部署一个网页到服务器

创建一个页面 1 下载node.js 下载VScode 2 在Windows下找一个路径新建一个文件夹 例如&#xff1a;D:\study_project\PersonalWeb 3 VSCodee中打开文件夹 4 Windows下 管理员身份打开命令提示符&#xff0c;执行npm install -g vue/cli 5 VSCode下打开终端&#xff0c;执…

线程终止,线程的相关方法,线程状态图以及线程的同步机制。

首先我们知道了什么是线程&#xff0c;以及线程的实现方法&#xff0c;接下来我们来了解一下继承Thread类和Runnable接口的区别&#xff0c;其实本质上是没有区别的&#xff0c;因为Thread也实现了Runnable的接口&#xff0c;唯一区别就是使用Runnable接口&#xff0c;可以实现…

关联规则 Apriori算法原理

Apriori算法 算法概述 Apriori算法利用频繁项集生成关联规则。它基于频繁项集的子集也必须是频繁项集的概念频繁项集是支持值大于阈值 (support) 的项集 Apriori算法就是基于一个先验如果某个项集是频繁的&#xff0c;那么它的所有子集也是频繁的 算法流程 输入: 数据集合D…