Flutter环境搭建【win10虚拟机】+夜神模拟器【主机】

Flutter环境搭建

0 Android Studio 与 VS Code 资源消耗对比

在这里插入图片描述
在这里插入图片描述

1 系统配置要求

为了安装和运行 Flutter,你的开发环境必须至少满足以下要求:

  • 操作系统:Windows 10 或更高的版本(基于 x86-64 的 64 位操作系统)。
  • 磁盘空间:除安装 IDE 和一些工具之外还应有至少 2.5 GB 的空间。
  • 工具:要让 Flutter 在你的开发环境中正常使用,依赖于以下的工具:
    • Windows PowerShell 5.0 或者更高的版本(Windows 10 中已预装)
    • Git for Windows 2.x,并且勾选从 Windows 命令提示符使用 Git 选项。
      如果 Windows 版的 Git 已经安装过了,那么请确保能从命令提示符或者 PowerShell 中直接执行 git 命令。

2 Flutter SDK

2.1 获取 Flutter SDK

https://flutter.cn/docs/release/archive?tab=windows

选择 flutter_windows 3.16.8-stable.zip

2.2 解压

将压缩包解压,然后把其中的 flutter 目录整个放在你想放置 Flutter SDK 的路径中。

2.3 更新 path 环境变量

在开始菜单的搜索功能键入「env」,然后选择 编辑系统环境变量。
在这里插入图片描述

Dart SDK 要兼容 Flutter SDK

Flutter SDK 在 flutter 命令脚本的同级目录下增加了 dart 命令,你可以更方便地运行 Dart 命令行程序。下载 Flutter SDK 时也会下载对应版本的 Dart SDK,但如果你单独下载了 Dart SDK,请确保 Flutter SDK 内的 dart 在你的环境变量中排在首位,因为单独的 SDK 可能并不兼容 Flutter SDK。下面的命令展示了 flutter 和 dart 是否来自相同的 bin 目录,并且是否可以兼容使用。

where flutter dart

在这里插入图片描述

双击 flutter_console.bat 输入 flutter doctor 检测环境

在这里插入图片描述
在这里插入图片描述

3 VS code 与插件

3.1 安装 VS code

3.2 安装 flutter 插件

在这里插入图片描述
flutter插件安装成功后应该会自动安装dart插件
在这里插入图片描述

3.3 查看 flutter 项目

快捷菜单查看 flutter 项目
在这里插入图片描述

4 Java 环境

Flutter开发需要有Java的支持。

4.1 JDK 版本

  • JDK 1.0(1996年1月23日发布)
  • JDK 1.1(1997年2月19日发布)
  • JDK 1.2(1998年12月8日发布)
  • JDK 1.3(2000年5月8日发布)
  • JDK 1.4(2002年2月6日发布)
  • JDK 5.0(2004年9月30日发布)
  • JDK 6(2006年12月11日发布)
  • JDK 7(2011年7月28日发布)
  • JDK 8(2014年3月18日发布)
  • JDK 9(2017年9月21日发布)
  • JDK 10(2018年3月20日发布)
  • JDK 11(2018年9月25日发布)
  • JDK 12(2019年3月19日发布)
  • JDK 13(2019年9月17日发布)
  • JDK 14(2020年3月17日发布)
  • JDK 15(2020年9月15日发布)
  • JDK 16(2021年3月16日发布)
  • JDK 17(2021年9月发布)
  • JDK 18(2022年3月发布)
  • JDK 19(2022年9月发布)
  • JDK 20(2023年3月发布)
  • JDK 21(2023年9月发布)

4.2 下载

https://www.oracle.com/java/technologies/downloads/#jdk21-windows

JDK21 【放弃,Android SDK Tools r24.4.1 不兼容该版本?】

在这里插入图片描述

JDK17

在这里插入图片描述

4.3 安装 & 环境配置

JDK21下载+安装+环境配置教程(Windows系统)

4.4 查看版本

java -version
在这里插入图片描述
在这里插入图片描述

4.5 测试

welcome.java

public class Welcome {
	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
}

java welcome.java
在这里插入图片描述

5 Android 环境 SDK 【体积大】【如下尝试都失败,借用Android Studio来安装】

5.1 exe安装失败,放弃 【JDK21】

https://www.androiddevtools.cn/
在这里插入图片描述
在这里插入图片描述

5.1 exe安装成功 【JDK17】

在这里插入图片描述

选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装

在这里插入图片描述

如下报错,处理:【放弃】

Downloading Google Play lntel x86 Atom 64 System lmage, Android API R, revision 2Download finished with wrong size. Expected 1313831742 bytes, got 1313824374 bytes.
(1) 相应压缩包已经下载到本地,找到压缩包
(2) Android\android-sdk\temp
在这里插入图片描述
(3) 解压到当前目录

也失败

在这里插入图片描述

离线安装【暂不安装】

Android System Image - Google API PlayStores Intel Atom x86 System Images Direct Download

根据提供的路径下载安装包到本地
Google SDK 分析

Google API intel x86 atom and Google Play intel x86 atom sytem image

Google API Intel x86 Atom System Image 是用于开发和测试的,它包含了 Android 操作系统的核心功能和 API,但不包含 Google Play 商店或专有应用程序。这意味着使用这个系统映像,你可以在模拟器上运行和测试自己的应用程序,但无法直接访问 Google Play 商店来安装其他应用程序。

而 Google Play Intel x86 Atom System Image 则包含了 Google Play 商店和专有应用程序,这使得你可以在模拟器上模拟完整的 Android 设备体验,包括访问 Google Play 商店和应用商店。但是,这个系统映像的使用有一些限制,例如没有 root 访问权限,并且主要用于生产和测试目的,而不是用于开发。

5.2 解压安装,半成功 【JDK21】【放弃】

在这里插入图片描述
【Android】SDK安装及配置

rem Check we have a valid Java.exe in the path.
set java_exe=E:\Java\jdk-21\bin\java.exe
  • 选项
    一般根据默认推荐安装即可。如果自选,必选项:
    • Android SDK Tools:基础工具包,版本号带rc字样的是预览版。
    • Android SDK Platform-tools:从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里。
    • Android SDK Build-tools:Android项目构建工具。
    • SDK Platform:对应平台的开发工具,需要下载Android xxx(API xx)的版本里面已经包含了。
    • Android xxx(API xx) :可选的各平台开发工具,一般选择最新版本即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下载失败

在这里插入图片描述

6 安装 Android Studio

Flutter 依赖 Android Studio 的全量安装来为其提供 Android 平台的支持 包括Android SDK。

6.1 下载地址

https://developer.android.google.cn/studio?hl=zh-cn

【2023最新】Android Studio + JDK11安装配置一条龙

以管理员权限安装,否则报错如下:
在这里插入图片描述

6.2 Android Studio 中 Android SDK 下载如下4个 SDK Tools

  • Android SDK Build-Tools
  • Android SDK Command-line Tools
  • Android SDK Platform-Tools
  • Android sDK Tools

在这里插入图片描述

防止出现如下类似报错:

✗ cmdline-tools component is missing
  Run `path/to/sdkmanager --install "cmdline-tools;latest"`

6.3 为 flutter 配置 Android SDK 目录 【flutter doctor】

flutter config --android-sdk “E:\Android\Android SDK”

6.4 Android 许可证状态

运行以下命令以接受Android SDK的许可证:

flutter doctor --android-licenses

配置成功如下

在这里插入图片描述

几个常见问题

几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK

7 下载模拟器 并 配置 [主机中安装,虚拟机中安装太卡]

7.1 模拟器对比

在这里插入图片描述

7.2 模拟器下载安装

7.3 配置模拟器 【同一系统内】

管理员权限打开 cmd,然后进入夜神模拟器目录,输入如下命令:

nox_adb.exe connect 127.0.0.1:62001

如下报错,原因是模拟器没有运行:
unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: 由于目标计算机积极拒绝,无法连接。 (10061)

在这里插入图片描述

7.3 配置模拟器 【虚拟机 + 主机】

网络设置介绍

在这里插入图片描述
NAT转换:大部分虚拟机默认的 NAT 转换,虚拟机能 ping 通主机(如果主机防火墙没问题),但是,主机 ping 不通虚拟机。
桥接网卡:主机与虚拟机能互相 ping 通,虚拟机不能联网。

网卡1:选择桥接网卡;
网卡2:选择nat转换;
虚拟机中配置正确的ip地址(与你主机同一子网)。

VMware虚拟机网络设置

网络设置

虚拟机的网络模式是NAT模式,且NAT模式的网卡是VMnet8
在这里插入图片描述
在这里插入图片描述

w10 虚拟机默认自动获取IP

在这里插入图片描述
也可以自定义IP
在这里插入图片描述

注意:关闭 win10 虚拟机中的防火墙

关闭防火墙后,主机才能 ping 通虚拟机。
在这里插入图片描述

VMware虚拟机上通过adb连接物理机上的Android模拟器 【端口转发】

VMware虚拟机上通过adb连接物理机上的Android模拟器

在主机 Windows 以管理员身份运行cmd,然后执行命令

netsh interface portproxy add v4tov4 listenport=16666 listenaddress=0.0.0.0 connectport=62001 connectaddress=127.0.0.1

listenport: 是自己设定一个端口,可以设定为 16666 ,也可以设成别的;
listenaddress: 是虚拟机的ip,如果你不只一台虚拟机有这个需求,这里也可以设成0.0.0.0,监听所有ip地址向 16666 端口的访问;
connectport: 是原来在Windows连Android模拟器的端口;
connectaddress: 如果你的模拟器就在windows本地开的就127.0.0.1,当然如果想远程连另一台电脑上的,可以改成另一台电脑的ip,同样在那台电脑上也要做端口转发;

然后就可以在虚拟机上通过adb连模拟器(ip是主机,注意这里端口是自定义的 16666 ,不是模拟器原来的21503)

nox_adb.exe connect 192.168.4.63:16666

最后,如果想要删除转发规则,执行命令

netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=16666

8 示例

8.1 创建 Demo 工程

同时按下ctrl + shift + p 输入flutter
选择new Project

8.2 启动模拟器

在主机 Windows 以管理员身份运行cmd,然后执行命令

netsh interface portproxy add v4tov4 listenport=16666 listenaddress=0.0.0.0 connectport=62001 connectaddress=127.0.0.1

listenport: 是自己设定一个端口,可以设定为 16666 ,也可以设成别的;
listenaddress: 是虚拟机的ip,如果你不只一台虚拟机有这个需求,这里也可以设成0.0.0.0,监听所有ip地址向 16666 端口的访问;
connectport: 是原来在Windows连Android模拟器的端口;
connectaddress: 如果你的模拟器就在windows本地开的就127.0.0.1,当然如果想远程连另一台电脑上的,可以改成另一台电脑的ip,同样在那台电脑上也要做端口转发;

然后就可以在虚拟机上通过adb连模拟器(ip是主机,注意这里端口是自定义的 16666 ,不是模拟器原来的21503)

nox_adb.exe connect 192.168.4.63:16666

最后,如果想要删除转发规则,执行命令

netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=16666

8.3 运行 flutter 项目

可以直接在控制台输入 flutter run,就可以在夜神模拟器打开app
如果需要热更新,则可以点击右上角debug
在这里插入图片描述

8.4 debug版本 在夜神模拟器中运行

在这里插入图片描述
在这里插入图片描述

8.5 release版本 在手机中运行【Android】

release包体积较debug包小很多
android 打包命令: flutter build apk
ios 打包命令: flutter build ios --release

在目录下找到apk,然后下载到手机中安装就行。
在这里插入图片描述

其他

flutter 手机架构问题

https://blog.csdn.net/weixin_44911775/article/details/132306275

方案一:只适配armeabi
优点:基本上适配了全部CPU架构(除了淘汰的mips和mips_64)
缺点:性能低,相当于在绝大多数手机上都是需要辅助ABI或动态转码来兼容

方案二:只适配 armeabi-v7a
同理方案一,只是又筛掉了一部分老旧设备,在性能和兼容二者中比较平衡

方案三: 只适配 arm64-v8
优点: 性能最佳
缺点: 只能运行在arm64-v8上,要放弃部分老旧设备用户

这三种方案都是可以的,现在的大厂APP适配中,这三种都有,大部分是前2种方案。具体选哪一种就看自己的考量了,以性能换兼容就arm64-v8,以兼容换性能armeabi,二者稍微平衡一点的就armeabi-v7a。

目前来说,大多数的大厂APP用的都是armeabi或armeabi-v7a。

flutter 安装包体积过大,包体积优化策略

https://www.jianshu.com/p/6cc7c8190c02

参考

1、在 Windows 操作系统上安装和配置 Flutter 开发环境
2、1.3 搭建Flutter开发环境
3、Flutter入门教程(三) 教你如何实现VSCode高效开发
4、JDK21下载+安装+环境配置教程(Windows系统)
5、【Android】SDK安装及配置
6、【Android】SDK Manager打开闪退问题
7、AndroidSDK安装配置(Windows)
8、Android System Image - Google API PlayStores Intel Atom x86 System Images Direct Download
9、Android SDK与Android模拟器安装
10、VSCode配置Flutter模拟器
11、Android SDK 地址,全
12、Android开发者必备工具-常见Android模拟器(MuMu、夜神、蓝叠、逍遥、雷电、Genymotion…)
13、good–windows+vscode+夜神模拟器 flutter环境配置
14、cmdline-tools component is missing

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

worthsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值