当前位置: 首页 > article >正文

保姆级教程:用Android Studio 2023.3 + Flutter 3.19 从零搭建开发环境到跑通第一个App

保姆级教程用Android Studio 2023.3 Flutter 3.19 从零搭建开发环境到跑通第一个App移动应用开发的世界正在经历一场革命而Flutter无疑是这场革命中最耀眼的明星之一。作为Google推出的开源UI工具包Flutter允许开发者使用单一代码库构建跨平台的精美应用从Android到iOS甚至桌面和Web平台。对于刚踏入这个领域的新手来说最大的障碍往往不是编程本身而是那个令人头疼的开发环境配置过程——错误的SDK路径、卡在下载中的Gradle文件、莫名其妙的模拟器崩溃...这些问题足以浇灭任何初学者的热情。本教程专为零基础但追求细节的移动开发新手设计我们将使用当前最新的稳定版本组合Android Studio 2023.3和Flutter 3.19。与普通教程不同我们不仅会告诉你怎么做还会解释为什么这么做特别针对中国开发者常见的网络环境和配置痛点提供解决方案。从环境变量设置到模拟器优化每个步骤都经过实测验证确保你在2024年的开发环境中能够顺利复现。1. 开发环境准备精确版本控制与系统适配1.1 硬件与操作系统要求在开始之前请确保你的开发机满足以下最低配置要求组件最低要求推荐配置操作系统Windows 10 64位/macOS 10.14/Linux Ubuntu 20.04Windows 11/macOS VenturaCPU支持虚拟化的四核处理器六核及以上内存8GB16GB及以上磁盘空间10GB可用空间仅开发工具SSD剩余空间≥40GB显示器1366×768分辨率1920×1080及以上提示强烈建议使用SSD硬盘机械硬盘在Gradle构建时会有明显延迟。同时确保BIOS中已启用虚拟化技术Intel VT-x/AMD-V这对Android模拟器至关重要。1.2 精确版本工具下载为了避免版本冲突我们需要严格锁定以下工具的版本Android Studio 2023.3代号Flamingo官方下载地址developer.android.com/studio文件校验Windows版certutil -hashfile android-studio-2023.3.x.x-windows.exe SHA256 # 正确SHA256值应为a1b2c3d4...下载后请核对官网最新校验值Flutter SDK 3.19.02024年3月稳定版中文镜像下载推荐国内用户使用wget https://storage.flutter-io.cn/flutter_infra_release/releases/stable/windows/flutter_windows_3.19.0-stable.zip国际源备用git clone https://github.com/flutter/flutter.git -b stableJDK 17LTS版本Flutter 3.19要求的最低Java版本java -version # 应输出java version 17.x.x2. 分步安装与避坑指南2.1 Android Studio定制化安装运行安装程序时特别注意以下选项组件选择必须勾选Android SDKAndroid SDK Platform-ToolsAndroid Emulator建议勾选Performance (Intel® HAXM) - 提升模拟器性能Google USB Driver - 真机调试需要SDK路径配置避免使用包含中文或空格的路径推荐路径WindowsC:\Android\Sdk修改方法安装后File → Settings → Appearance Behavior → System Settings → Android SDK首次运行优化修改gradle配置加速依赖下载# gradle.properties org.gradle.daemontrue org.gradle.paralleltrue org.gradle.cachingtrue2.2 Flutter SDK配置细节解压与路径设置将下载的Flutter SDK解压到非系统盘如D:\DevTools\flutter永久环境变量设置Windows[Environment]::SetEnvironmentVariable(Path, [Environment]::GetEnvironmentVariable(Path, User) ;D:\DevTools\flutter\bin, User)国内镜像配置解决pub.dev访问问题 创建或修改~/.pub-cache/config.json{ flutter: { sdk: D:/DevTools/flutter }, pub_hosted_url: https://pub.flutter-io.cn, flutter_storage_base_url: https://storage.flutter-io.cn }依赖完整性检查 运行以下命令验证环境flutter doctor预期完整输出应显示所有检查项通过✓常见问题解决方案Android license缺失 → 运行flutter doctor --android-licensesChrome未安装 → 需要安装Chrome用于web调试3. 模拟器优化配置实战3.1 创建高性能虚拟设备在Android Studio中打开Device Manager→Create device硬件选择建议机型Pixel 6最新硬件配置文件系统镜像选择带有Google Play标志的版本API级别与Flutter 3.19兼容的Android 13API 33高级设置关键参数RAM Size 4096MB VM Heap 1024MB CPU Cores 4 Graphics Hardware (GLES 2.0)注意模拟器内存不足是新手常见崩溃原因。如果遇到System UI isnt responding错误请增加RAM分配并确保关闭其他内存占用大的程序。3.2 冷启动加速技巧快照保存首次启动模拟器后在正常状态时点击Take snapshot下次启动选择Quick boot模式命令行快速启动emulator -avd Pixel_6_API_33 -no-snapshot-load -no-snapshot-save -gpu swiftshader_indirect日常维护定期执行emulator -avd your_avd_name -wipe-data清除临时文件rm -rf ~/.android/avd/your_avd_name.avd/*.lock4. 第一个Flutter应用从创建到热重载4.1 项目创建最佳实践在Android Studio中选择File → New → New Flutter Project...关键配置项Project类型Application非plugin或moduleFlutter SDK路径验证是否指向flutter 3.19目录Platforms至少勾选Android和iOSProject名称使用下划线命名法如my_first_app项目结构说明my_first_app/ ├── android/ # Android平台特定代码 ├── ios/ # iOS平台特定代码 ├── lib/ # 主要Dart代码 │ └── main.dart # 应用入口文件 ├── test/ # 测试代码 └── pubspec.yaml # 依赖管理文件4.2 代码修改与热重载体验替换lib/main.dart内容为import package:flutter/material.dart; void main() runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( appBar: AppBar( title: const Text(我的第一个Flutter应用), centerTitle: true, ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const FlutterLogo(size: 100), const SizedBox(height: 20), ElevatedButton( onPressed: () { print(按钮被点击!); }, child: const Text(点击我), ), ], ), ), ), ); } }热重载操作步骤确保模拟器正在运行在Android Studio中点击绿色运行按钮修改代码如修改按钮文字点击闪电图标⚡或按Ctrl\Windows/Linux执行热重载4.3 常见问题即时排错Gradle卡在下载手动下载对应版本https://services.gradle.org/distributions/gradle-8.4-bin.zip放置到缓存目录~/.gradle/wrapper/dists/gradle-8.4-bin/随机文件夹/模拟器黑屏尝试切换图形渲染模式emulator -avd avd_name -gpu swiftshaderpub get失败临时切换镜像源flutter pub cache repair在开发过程中保持Android Studio和Flutter SDK的定期更新但要注意先备份项目再升级主要版本。Flutter 3.19带来的改进包括更快的编译速度和增强的web支持特别适合新手构建第一个跨平台应用。

相关文章:

保姆级教程:用Android Studio 2023.3 + Flutter 3.19 从零搭建开发环境到跑通第一个App

保姆级教程:用Android Studio 2023.3 Flutter 3.19 从零搭建开发环境到跑通第一个App 移动应用开发的世界正在经历一场革命,而Flutter无疑是这场革命中最耀眼的明星之一。作为Google推出的开源UI工具包,Flutter允许开发者使用单一代码库构建…...

别再只盯着参数了!手把手教你为项目选对Intel RealSense D400系列相机(D415/D435/D455对比)

别再只盯着参数了!手把手教你为项目选对Intel RealSense D400系列相机 在机器人导航、工业检测或三维重建项目中,选择一款合适的深度相机往往让人头疼。Intel RealSense D400系列凭借成熟的立体视觉技术和丰富的型号选择,成为许多开发者的首选…...

从零到可视化:用WinCC V7.5给S7-1500 PLC做个简易监控界面(附动画效果)

从零构建动态监控界面:WinCC V7.5与S7-1500 PLC实战指南 在工业自动化领域,可视化监控系统如同工程师的"眼睛",能够实时反映设备状态与工艺参数。本文将带您完成一个污水处理罐监控界面的完整开发流程,从项目创建到动画…...

RH850中断配置避坑指南:从TAUB定时器到CAN通信的实战代码解析

RH850中断配置避坑指南:从TAUB定时器到CAN通信的实战代码解析 在汽车电子和工业控制领域,RH850系列微控制器凭借其卓越的实时性能和丰富的外设资源,成为众多关键系统的首选。中断系统作为实时响应的核心机制,其配置质量直接决定了…...

Prompt Engineering实战:如何用ChatGPT API构建高效提示词模板(附LangChain代码示例)

Prompt Engineering实战:用ChatGPT API构建高效提示词模板 在AI应用开发领域,Prompt Engineering已经从简单的聊天技巧演变为一门系统的工程学科。随着大模型API的普及,如何将零散的提示词转化为可复用的工程组件,成为开发者提升效…...

用Camera2 API实现一个简易抖音拍摄功能:录制、预览与视频保存

用Camera2 API打造短视频拍摄功能:从零实现抖音式交互体验 在移动互联网时代,短视频应用已经成为人们日常生活中不可或缺的娱乐方式。作为Android开发者,掌握如何构建一个高效、流畅的短视频拍摄功能至关重要。本文将带你深入探索如何利用Cam…...

别再死记硬背YOLO的9个anchors了!用Python可视化带你搞懂它在特征图上的调整过程

用Python动态可视化拆解YOLO anchors的调整逻辑 第一次看到YOLO的9个anchors参数时,我盯着那堆数字发呆了半小时——这些宽高组合到底如何影响最终检测框?为什么调整几像素就能让模型性能波动5%?直到我用Matplotlib逐帧绘制了特征图上的坐标变…...

5个专业技巧:掌握Inter字体家族打造完美数字界面体验

5个专业技巧:掌握Inter字体家族打造完美数字界面体验 【免费下载链接】inter The Inter font family 项目地址: https://gitcode.com/gh_mirrors/in/inter Inter字体家族是一款专为现代数字屏幕设计的无衬线字体系统,以其卓越的可读性、丰富的Ope…...

Ai2Psd终极指南:如何彻底解决Illustrator到Photoshop的矢量转换难题

Ai2Psd终极指南:如何彻底解决Illustrator到Photoshop的矢量转换难题 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 你是否曾为Il…...

3分钟掌握ZeroOmega:跨浏览器智能代理管理的终极指南

3分钟掌握ZeroOmega:跨浏览器智能代理管理的终极指南 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega ZeroOmega是一款基于manifest v3标准的开源浏览…...

终极免费打字学习工具:用Qwerty Learner打造你的键盘肌肉记忆系统

终极免费打字学习工具:用Qwerty Learner打造你的键盘肌肉记忆系统 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: …...

鸣潮自动化工具ok-ww:5分钟搞定每日重复任务的终极解决方案

鸣潮自动化工具ok-ww:5分钟搞定每日重复任务的终极解决方案 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 你是否厌倦…...

保姆级教程:手把手为嵌入式Linux移植NAU8810音频Codec驱动(基于ALSA ASoC框架)

嵌入式Linux音频驱动实战:NAU8810 Codec移植全流程解析 当一块崭新的开发板放在你面前,而客户要求在下周之前完成音频功能的集成时,那种既兴奋又紧张的感觉,相信每个嵌入式工程师都深有体会。NAU8810作为一款高性能低功耗的音频编…...

保姆级教程:在Ubuntu 18.04上为Firefly RK3399 ProC交叉编译Python 3.7.10(含zlib、numpy、pyserial)

嵌入式开发实战:为Firefly RK3399 ProC构建定制Python 3.7环境 当你在Firefly RK3399 ProC开发板上尝试运行Python科学计算脚本时,是否遇到过性能瓶颈或依赖缺失的困扰?不同于x86平台的即装即用,ARM架构的嵌入式设备往往需要从源码…...

从‘炼丹’到‘工程’:复盘InceptionV3论文中那些被验证与‘打脸’的设计(附代码对比)

从‘炼丹’到‘工程’:InceptionV3设计思想的现代验证与技术启示 当我们在2023年回望2015年问世的InceptionV3架构,会发现它像一座横跨深度学习"炼丹时代"与"工程时代"的桥梁。这篇论文最珍贵的遗产不是某个具体模块,而是…...

Inspirit Capital将收购Kaplan Languages Group

专注于企业分拆业务投资的Inspirit Capital欣然宣布,计划从Kaplan手中收购全球领先的语言教育平台KLG Kaplan Languages Group (“KLG”)。本次出售的所有条件均已达成,预计交易将于5月1日完成。 KLG旗下拥有Kaplan International Languages、Alpadia L…...

别再混淆了!用Keil MDK调试Cortex-M3/M4时,MSP和PSP到底怎么切换的?

别再混淆了!用Keil MDK调试Cortex-M3/M4时,MSP和PSP到底怎么切换的? 调试嵌入式系统时,堆栈指针的切换问题常常让开发者头疼。特别是在RTOS环境下,MSP(主堆栈指针)和PSP(进程堆栈指针…...

文科生逆袭!零基础转行AI,我靠AI工具直接涨薪50%!

本文分享了作者从文科背景转行AI的成功经验。作者首先打破文科生不适合进入AI行业的误区,选定AI产品和提示词工程师作为切入点。接着,作者通过大量使用AI工具建立AI体感,并制作了一个轻量级的项目作品集,展示了如何利用AI工具梳理…...

告别书签混乱:3步打造你的Chrome浏览器高效书签管理系统

告别书签混乱:3步打造你的Chrome浏览器高效书签管理系统 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 你是否经常在浏览器中迷失方向&am…...

废旧元件DIY太阳能光控LED灯串设计

1. 项目概述这个用废旧零件拼凑起来的模拟电路项目,完美诠释了"变废为宝"的DIY精神。它由太阳能板、锂电池和几颗白光LED组成,打造出了一串既环保又充满魅力的装饰灯串。在这个被各种专用芯片和微控制器统治的时代,这个项目提醒我们…...

别再被老视频的“毛边”困扰了!手把手教你用TW9912芯片搞定隔行转逐行(附原理详解)

告别隔行扫描困扰:TW9912芯片实战指南与画质优化 想象一下,当你翻出珍藏多年的家庭录像带,满怀期待地将其数字化后,却发现播放时画面布满锯齿和闪烁——这种失落感恐怕只有经历过的人才能体会。隔行扫描技术曾是电视黄金时代的基石…...

Cadence Virtuoso 新手避坑指南:从原理图到版图,手把手搞定 AMI 0.6u 工艺下的 MOS 管仿真

Cadence Virtuoso 新手避坑指南:从原理图到版图,手把手搞定 AMI 0.6u 工艺下的 MOS 管仿真 第一次打开 Cadence Virtuoso 时,复杂的界面和密密麻麻的菜单栏让不少集成电路专业的学生望而生畏。尤其是当教授要求用 AMI 0.6u 工艺完成 MOS 管仿…...

从调光到伽马校正:手把手教你用ILI9341命令优化TFT屏幕显示效果(实战避坑)

从调光到伽马校正:手把手教你用ILI9341命令优化TFT屏幕显示效果(实战避坑) 在嵌入式开发中,TFT屏幕的显示效果往往直接影响用户体验。许多开发者在使用ILI9341驱动芯片时,虽然能够完成基础显示功能,却常常忽…...

拆解一块TFT-LCD屏幕:聊聊驱动板上那颗Power IC是怎么‘发电’的

拆解一块TFT-LCD屏幕:驱动板上那颗Power IC的电力魔法 站在电子爱好者的视角,拆解一块TFT-LCD屏幕总能带来意想不到的惊喜。当我们小心翼翼地剥离背光模组和偏光片,露出那块布满精密电路的PCB时,最引人注目的往往是那颗被众多电容…...

用MPX4115气压传感器和51单片机做个简易气压计(附完整代码与电路图)

从零构建基于MPX4115的智能气压监测系统:硬件连接、代码解析与实战调试 气压监测在气象观测、无人机高度控制、工业设备监控等领域有着广泛应用。今天我们将使用经典的51单片机(以STC89C52为例)和MPX4115气压传感器,打造一个具备实…...

智能补光灯DIY:用STM32和BH1750传感器自动调节LED亮度(含PID算法)

智能补光灯DIY:用STM32和BH1750传感器实现闭环调光系统 深夜伏案工作时,你是否经常因为环境光线不足导致眼睛疲劳?传统台灯需要手动调节亮度,而市面上的智能灯具价格昂贵且功能单一。今天我们将用STM32单片机和BH1750光照传感器&a…...

AI智能体的正确打开方式

先说结论2026年,AI不再只是"你问我答"的聊天框,而是能自己干活、自己决策的智能体。不会用智能体的人,就像有驾照却只会骑自行车。这个东西是什么想象一下:你有一个实习生,你不用手把手教他每一步&#xff0…...

别再乱打拍了!从亚稳态到异步FIFO,手把手教你搞定FPGA跨时钟域信号处理

从亚稳态到异步FIFO:FPGA跨时钟域信号处理实战指南 在FPGA和数字IC设计中,跨时钟域信号处理是一个永恒的话题。每当项目进度紧张、调试压力增大时,工程师们最不愿看到的就是时序报告里那些令人头疼的违例警告。我曾在一个高速数据采集项目中…...

你的FOC电机为啥抖?可能是电角度算错了!聊聊编码器安装与极对数那些坑

你的FOC电机为啥抖?可能是电角度算错了!聊聊编码器安装与极对数那些坑 调试FOC电机时,最让人头疼的莫过于电机运行时抖动、噪音大甚至无法启动。很多工程师在搭建完FOC系统后,发现电机运行效果远不如预期,这时候问题往…...

告别手动输入!用ABAP OOALV事件给报表字段加个“智能下拉框”

告别手动输入!用ABAP OOALV事件给报表字段加个"智能下拉框" 在SAP系统的日常操作中,物料编码、供应商编号等字段的输入是高频且容易出错的操作环节。传统的手工输入不仅效率低下,还容易因记忆偏差导致数据错误。本文将深入探讨如何…...