惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Spread Privacy
Spread Privacy
V
Visual Studio Blog
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog RSS Feed
博客园 - 【当耐特】
有赞技术团队
有赞技术团队
The Register - Security
The Register - Security
Latest news
Latest news
The Cloudflare Blog
Project Zero
Project Zero
月光博客
月光博客
U
Unit 42
Vercel News
Vercel News
Attack and Defense Labs
Attack and Defense Labs
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
F
Full Disclosure
Schneier on Security
Schneier on Security
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
博客园 - 叶小钗
腾讯CDC
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - Franky
S
Security Affairs
Hacker News: Ask HN
Hacker News: Ask HN
Security Latest
Security Latest
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
MongoDB | Blog
MongoDB | Blog
D
DataBreaches.Net
SecWiki News
SecWiki News
Recorded Future
Recorded Future
NISL@THU
NISL@THU
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cloudbric
Cloudbric

繁星点点

最新轻量级龙虾部署教程 通过netboot.xyz重装系统 giffgaff卡保号教程 Llinux系统中全新透明代理方案(可代理所有出站流量) tailscale开启子网路由常见的坑 OpenWrt固件编译 解决UFW和Docker的问题 使用PGP的非对称算法加密文件 NSSM工具把任意exe程序注册为Windows后台服务 轻量级简约端口转发rinetd 安卓IDE的安装和使用 IP信息查询网站汇总 热点共享代理教程 SSH使用密钥认证登录详细解释 Debian系统公网IP出口切换指南,适用多IP服务器 Windows系统安装Scoop包管理器 使用手机搭建节点服务端 关于github提交记录泄露真实邮箱的处理办法 anytls协议部署教程 caddy给域名用上ECH加密 通过gitlab流水线自动备份仓库 通过CF-Workers代理访问网站 低配机器使用alpine系统跑docker 端口敲门教程 3x-ui面板通过api管理示例 nmap端口扫描 数据库常用命令 snap和winget包管理器 Git推送GitHub常用命令 😩😩😩学不完,根本学不完😩😩😩 使用CDN后获取访客真实IP 一些用于网络测试的下载测速文件 纯v6网络访问v4站点最简单的方法 服务器配置SSH密钥登录 windows重装系统教程 Docker部署哪吒监控 Github-Actions默认用户变量GITHUB_TOKEN的提权语法 给站点套CFT的一些坑 解决CF反代Docker失效的问题 使用py3快速启动一个文件上传和下载的接口 ios系统最新免拔卡使用tiktok方法 clash手搓配置最全协议示例详解 为IP地址申请免费证书并开启HTTPS 实用网站收藏 纯CSS实现剧透效果 在CloudflareWAF中屏蔽国内浏览器 网络安全之百度URL欺骗漏洞分析和复现 超级强大的ansible批量管理主机运维工具使用教程 收集整理的最新的常用VPS脚本工具 无法注册TG账号和国内号码接收不到验证码详细解决方案 国内环境安装xui面板 免费接码网站合集 完整的网络状态码列表 关于xui面板报错无法监听127.0.0.1:62789的问题 Xboard面板常见问题 项目编译构建文档 ios最新美区ID注册方法 V2board前后端分离 Markdown语法教程 Github加速 Docker镜像加速和离线安装 Liunx配置wrap 代理工具和SSH工具推荐 常用代码记录
安卓Flutter开发学习笔记
2025-06-07 · via 繁星点点

Windows 系统手动安装 Flutter 环境

✅ 一、准备条件

安卓sdk:

Image


✅ 二、安装 Flutter SDK

1. 下载 Flutter

2. 解压

解压到路径,例如:

C:\flutter

3. 配置环境变量

将以下路径添加到系统环境变量 Path 中:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\flutter\bin", "Machine")

然后重启终端(powershell)。

✅ 三、验证安装

flutter doctor --android-licenses

一路输入y直到完成

检查是否识别出所有组件并显示 ✅。


✅ 四、创建和构建项目

1. 创建多平台项目

flutter create myapp --org io.github.name --platforms android,ios,windows,macos,linux

2. 构建 APK

flutter build apk --release

输出文件路径:

build\app\outputs\flutter-apk\app-release.apk

Flutter 常用命令

命令 说明
flutter doctor -v 检查 Flutter 开发环境
flutter doctor --android-licenses 接受 Android SDK 许可证
flutter config --enable-windows-desktop 启用 Windows 桌面支持
flutter devices 查看已连接设备
flutter emulators 查看模拟器列表
flutter create myapp 创建 Flutter 项目
flutter create . 为当前项目补充缺失平台目录
flutter pub get 下载项目依赖
flutter pub upgrade 升级依赖
flutter pub outdated 检查可升级依赖
flutter clean 清理构建缓存
flutter run 运行项目
flutter run -d chrome 在 Chrome 中运行
flutter run -d windows 在 Windows 桌面运行
flutter run -d android 在 Android 设备运行
flutter run --release Release 模式运行
flutter build apk 构建 APK
flutter build appbundle 构建 AAB
flutter build windows 构建 Windows 程序
flutter build apk --release 构建 Release APK
flutter build apk --split-per-abi 按 ABI 拆分 APK
flutter test 运行单元测试
flutter analyze 静态代码检查
flutter format . 格式化代码
flutter --version 查看版本

Docker构建安卓项目参考

services:
  android:
    image: mingc/android-build-box
    container_name: android
    working_dir: /workspace
    stdin_open: true
    tty: true
    volumes:
      - .:/workspace
      - ./gradle-cache:/root/.gradle
      - ./flutter-cache:/root/.pub-cache
  • 启动:
docker compose up -d
  • 进入:
docker exec -it android bash
  • 启动后先检查一下环境:
java -version
gradle -v
flutter --version
sdkmanager --version
adb version
  • 然后随便执行:
# Kotlin
./gradlew assembleDebug
./gradlew assembleRelease

# Flutter
flutter doctor -v
flutter pub get
flutter build apk --release

# Android SDK
sdkmanager --list
adb version

🤖Go 项目生成 Android SDK (AAR) 并在 Kotlin 调用

  1. 安装 gomobile
go install golang.org/x/mobile/cmd/gomobile@latest
go install golang.org/x/mobile/cmd/gobind@latest
gomobile init
  1. 编写 Go 库
  • 导出函数首字母必须大写
  • 一般只需暴露 Go 项目的启动、停止、重启、日志、生命周期等函数接口即可
  • gomobile 生成 Android 绑定后,业务端需要使用小驼峰命名调用
  • 默认会生成一个“通用 AAR”,里面会包含所有 Go 支持的多种架构,可在业务端打包时拆分abi

Flutter多平台架构思想

说明:Flutter 负责 UI 和业务编排,Platform Adapter 负责平台差异,Native Core 负责真正运行。

App 启动
↓
初始化依赖注入 / 配置 / 存储
↓
注册当前平台的 RuntimeService
↓
加载 Flutter UI
↓
用户操作 UI
↓
ViewModel 处理状态与交互
↓
UseCase / Repository 执行业务逻辑
↓
调用统一 RuntimeService 接口
↓
Platform Adapter 适配当前平台
↓
调用原生内核
   Android → AAR / .so
   Windows → exe
   Linux → binary
   macOS → binary / framework
   iOS → XCFramework / NetworkExtension
↓
内核回传状态 / 日志 / 错误 / 流量统计
↓
RuntimeService 统一转换为 Dart Model / Stream
↓
ViewModel 更新状态
↓
UI 自动刷新

最简结构

lib/
├── main.dart
├── ui/              # 页面、组件、ViewModel
├── domain/          # Model、UseCase、抽象接口
├── data/            # Repository、Service实现
└── platform/        # Android/Windows/Linux/macOS/iOS 适配器