flutter项目 环境搭建

开发flutter项目 搭建工具环境
flutter项目本身 所需开发工具环境
flutter 谷歌公司开发 系统支持库 镜像库

搭建流程:
flutter 官网:
https://flutter.dev/community/china

//步骤1 .bash_profile
touch .bash_profile
pwd
/Users/haijunyan
open ~
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

//步骤2 获取Flutter SDK
https://docs.flutter.dev/release/archive
mac OS Stable channel (macOS) 3106
flutter_macos_3.10.6-stable.zip
(支持)系统flutter底层文件夹(安装包)至目标目录
/Users/haijunyan/Documents
/Users/haijunyan/Documents/flutter
系统flutter底层文件夹(安装包)的访问路径配置至全局变量配置文件
export PATH=/Users/haijunyan/Documents/flutter/bin:$PATH

//FlutterSDK 支持开发环境检验
flutter doctor
交互式脚本(命令行交互区)
报错:zsh: command not found: flutter

Mac 默认采用 zsh交互式脚本(命令行交互区) 作为 登录Shell /交互式Shell

解决方案一:手动切换至bash交互式脚本(命令行交互区)
source ~/.bash_profile // source /Users/haijunyan/.bash_profile
flutter doctor

解决方案二:
pwd // /Users/haijunyan
cd /Users/haijunyan/
open ~/.zshrc
vim ~/.zshrc //新建文件(若提示文件不存在)
open ~/.bash_profile
把bash_profile中的内容copy到zshrc文件中(全局变量配置)
source ~/.zshrc //再资源载入source命令重新加载
终端退出重启 flutter doctor

AndroidStudio Google公司提供的兼容性辅助工具 可构建出android/ios/window/macos/linux等兼容各个方向的运行包
AndroidStudio (version 最新Mac)
右上角 更多
Apply > OK
flutter doctor --android-licenses //y
AndroidStudio 兼容性工具平台的配置
.bash_profile

Xcode 专业辅助构建出iOS运行包

依托于flutter项目 产生的app应用包

创建基(本)层的flutter项目
cd /Users/haijunyan/Desktop/CustomKit/TeamGroupSimulation/FlutterDemo/
source /Users/haijunyan/.bash_profile 或 source ~/.bash_profile
flutter create 项目文件夹名称

运行基层的flutter项目
切换至flutter项目对应的文件夹路径下
cd 相对路径 //cd fltapp

正式运行基层的flutter项目
flutter run //命令行运行(手动关联模拟器或手机设备)

brew -v //判断是否安装Homebrew环境
brew update //brew环境更新至最新版本

//安装辅助插件(flutter项目 iOS包 运行iOS真机)
xcode-select --install //Xcode 相关 工具命令行

//安装 ipa包(通过命令码实现(需要预配置好开源库插件环境)(不推荐))
brew cleanup
brew install --HEAD usbmuxd
Error: libusbmuxd 2.0.2 is already installed
brew unlink libusbmuxd
brew install --HEAD usbmuxd //brew update --auto-update
brew link usbmuxd
brew install --HEAD libimobiledevice
brew unlink imobiledevice
brew install --HEAD imobiledevice //强调分支下载
brew install libimobiledevice //不强调分支(基于tag下载)
brew link libimobiledevice
brew install ideviceinstaller ios-deploy cocoapods

pod setup

//安装 lipa包(通过辅助工具实现(itools/iTunes/Xcode等工具平台)(推荐))

brew doctor

切换至二方库flutter项目本身的路径目录文件夹下
cd /Users/haijunyan/Desktop/FlutterDemo/fltapp
pwd
/Users/haijunyan/Desktop/FlutterDemo/fltapp
open ios/Runner.xcworkspace //ios方向workspace运行研究(默认打开Xcode的workspace编辑模式)

AndroidStudio 兼容性工具平台(推荐(自动关联))
左 模拟器
右 真机

热重载r 更改的部分刷新 维持状态
热重启R 全部刷新 全部刷新重启

二方库flutter项目 通过模拟器运行自动热重载(实时更新(调试推荐))
二方库flutter项目 通过真机运行需要手动热重载(手动更新(调试不推荐))

备注:
flutter 业务层面 lib 业务 源码资源
二方库 flutter 项目(本身) pubspec 库本身配置文件

iOS 宿主层面 (iOS体系(iPhone iPod iWatch iPad ITV))
android宿主层面(Android体系(安卓手机 安卓手环(表) 安卓平板 安卓电视 安卓GoogleChrome浏览器 ))
macos宿主层面 Mac电脑端原生项目产生电脑.dmp产品包(mac电脑设备)
windows宿主层面 window电脑端原生项目产生电脑.exe产品包(window电脑设备)
linux宿主层面 linux电脑端原生项目产生电脑产品包(linux电脑设备)

二方库flutter本身源码+xxx(iOS/macos/Android/windows/linux)原生项目(包)

基于硬件的待渲染载体设备触发对应的xxx原生项目(包)

flutter运行流程之iOS方向 关键要素2次中转

Xcode工具平台 iOS方向产品包 对应iOS(真机/模拟器)设备 运行视觉流程效果
AndroidStudio工具平台 兼容型各方向的产品包 对应各种兼容性(真机/模拟器)设备 运行视觉流程效果

二方库flutter项目通过中转式运行后最终实际产生的目标程序为原生移动端iOS(Xcode工具平台)/Android(AndroidStudio工具平台)产品包

keg 文件夹
formulae 法则/手段
brew 基层管理环境(管理上层插件) //通过brew环境下载插件的过程非常缓慢(大概率断开失效,不断重新连接网络重新下载)

1.辅助工具实现安装 ipa(推荐)
2.命令码实现安装 ipa(不推荐)

libimobiledevice 本质是开源库 (—HEAD/—MASTER …强调各种分支branch)
pod --version
辅助工具AndroidStudio工具平台编辑模式:可开发Android原生项目产生安卓.apk产品包
二方库flutter项目本身层面自有文件的变更通过AndroidStudio工具平台

AndroidStudio工具平台:兼容型原生项目层文件的变更+flutter项目层自有文件的变更
Xcode工具平台:原生iOS项目层文件的变更

AndroidStudio工具平台:兼容各种原生项目(不同运行平台的项目框架(器))

原生项目包(通常比较干净)即项目框架(器)(承载体作用)内被注入的资源通常为业务需求资源(lib文件夹内的业务源码主文件资源(即lib文件夹内进行flutter源码开发))

haijunyan 15.7.3(版本高) iPhone7Plus

真机调试:
举例:iPhoneYHJ 12.5.7 iPhone5s
cd /Users/haijunyan/Desktop/FlutterDemo/fltapp
open ios/Runner.xcworkspace

备注:
iOS真机调试
AndroidStudio工具平台+Xcode工具平台
1.flutter项目首次:AndroidStudio工具平台设备运行>Xcode工具平台团队签名配置预安装>关闭退出Xcode工具平台>AndroidStudio工具平台设备运行安装真机调试
2.flutter项目非首次:AndroidStudio工具平台设备运行安装真机调试

android安卓真机调试
AndroidStudio工具平台
1.flutter项目:AndroidStudio工具平台设备运行安装真机调试

mac和iphone数据线连接断续闪烁
解决方案:
终端Terminal输入sudo killall -STOP -c usbd回车
进程关闭 sudo killall -STOP -c usbd

安卓开发者官网:
http://developer.android.com/studio //国境外(VPN)
https://developer.android.com/studio#downloads
https://developer.android.com/studio/run/emulator-acceleration.html
https://developer.android.com/studio/run/emulator-acceleration.html#vm-mac //mac使用的加速器插件(境外)
https://developer.android.google.cn/studio //国境内镜像下载站
https://developer.android.google.cn/studio/intro?hl=zh-cn //AndroidStudio官方说明文档

安卓模拟器 处于 AndroidStudio 自有的Dock栏区(window窗口)

source ~/.bash_profile
emulator -list-avds //列出AndroidStudio工具相关的android模拟器设备插件

emulator -avd Nexus_6P_API_29 //启动AndroidStudio工具相关的android模拟器
emulator -avd Pixel_2_API_29

安卓真机数据线连接(默认调试):
华为荣耀50NTHAN00手机设备(荣耀50开发者模式:设置>关于手机>版本号 多次连续点击>开发者模式)
设置>系统和更新>开发人员选项>USB调试 打开>终端source ~/.bash_profile > 终端flutter devices(验证flutter项目是否识别真机) >
1.AndroidStudio工具平台调试: 运行flutter项目
2.终端调试:
cd /Users/haijunyan/Desktop/FlutterDemo/fltapp
pwd
/Users/haijunyan/Desktop/FlutterDemo/fltapp
flutter run -d ‘设备名称’ //运行flutter项目

安卓真机无线连接调试WLAN(WIFI无线调试)(比较慢/受到Wi-Fi网络质量影响):

设置>系统和更新>开发人员选项>USB调试 打开>无线调试>使用二维码配对设备>已配对的设备>无线调试

二方库flutter项目引入其他三方开源包Package:
举例:english_words三方开源包
1.打开flutter项目目录下 pubspec.yaml 文件
2.dependencies新增english_words配置

english_words三方开源包

english_words: ^3.1.0
3.flutter pub get 开源包相关数据资源拖入项目中
4.english_words: ^4.0.0 三方开源包采用最新版本
5.flutter pub upgrade 重新更新 三方开源包
6.重新启动模拟器

flutter/dart相关辅助插件的安装:
AndroidStudio工具平台 右上角账号旁边设置图标 Plugins Plugins Flutter plugin 搜索辅助插件 install OK

侧边栏(目录)项目面板
二方库 插件项目 整体对外 插件感
sudo killall -STOP -c usbd
buzhidao

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

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

相关文章

商品首页(sass+git本地初始化)

目录 安装sass/sass-loader 首页(vue-setup) 使用git本地提交 同步远程git库 安装sass/sass-loader #安装sass npm i sass -D#安装sass-loader npm i sass-loader10.1.1 -D 首页(vue-setup) <template><view class"u-wrap"><!-- 轮播图 --><…

C++lambda表达式

先来说背景&#xff1a;当我们需要对一些的元素进行排序的时候&#xff0c;可以使用std::sort来进行排序&#xff0c;而当需要对一些自定义类型的元素来排序的时候&#xff0c;要去写一个类&#xff0c;或者说是需要写一个仿函数&#xff0c;而如果功能要求上需要根据不同的比较…

基于chatgpt动手实现一个ai_translator

动手实现一个ai翻译 前言 最近在极客时间学习《AI 大模型应用开发实战营》&#xff0c;自己一边跟着学一边开发了一个进阶版本的 OpenAI-Translator&#xff0c;在这里简单记录下开发过程和心得体会&#xff0c;供有兴趣的同学参考&#xff1b; ai翻译程序 版本迭代 在学习…

VLC播放主要流程

前言 VLC 播放流程大概是先加载解封装器,然后通过es_out控制所有的stream。然后会加载decoder。最终通过resource文件的方法交给输出 模块。下面简要介绍。 正文 播放器主要分为三层。主要通过两个接口实现了功能隔离。分别是es_out.c和decoder.c的实现了&#xff1a; //控…

算法练习-搜索 相关

文章目录 迷宫问题 迷宫问题 定义一个二维数组 m行 * n列 &#xff0c;如 4 5 数组下所示&#xff1a; int arr[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, }; 它表示一个迷宫&#xff0c;1表示墙壁&#xff0c;0表示可以走的路&#xff0c;只…

Synchronized八锁

/** * Description: 8 锁 * 1 标准访问&#xff0c;先打印短信还是邮件 ------sendSMS ------sendEmail 2 停 4 秒在短信方法内&#xff0c;先打印短信还是邮件 ------sendSMS ------sendEmail 3 新增普通的 hello 方法&#xff0c;是先打短信还是 hello ------getHello ------…

Idea中使用statement接口对象,显示mysql版本号,所有库和表名

使用statement 接口对象&#xff0c;进行以下操作&#xff1a; 显示数据库版本号显示所有库显示所有库中的table表 显示数据库版本号&#xff1a; public class StatementDemo {Testvoid showall(){try{Statement st conn.createStatement();ResultSet rs st.executeQuery(…

pytest fixture 常用参数

fixture 常用的参数 参数一&#xff1a;autouse&#xff0c;作用&#xff1a;自动运行&#xff0c;无需调用 举例一&#xff1a;我们在类中定义一个function 范围的fixture; 设置它自动执行autouseTrue&#xff0c;那么我们看下它执行结果 输出&#xff1a; 说明&#xff1a;…

Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】

题目 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如&#xff0c;在下面的 34 的矩阵中包含单词 "ABCCED"&#xff08;单词中的字母…

CUDA执行模型

一、CUDA执行模型概述 二、线程束执行 1. 线程束与线程块 线程束是SM中基本的执行单元。 当一个线程块的网格被启动后&#xff0c;网格中的线程块分布在SM中。 一旦线程块被调度到一个SM中&#xff0c;线程块中的线程会被进一步划分成线程束。 一个线程束由32个连续的线程…

【Express.js】数据库初始化

数据库初始化 在软件开发阶段和测试阶段&#xff0c;为了方便调试&#xff0c;我们通常会进行一系列的数据库初始化操作&#xff0c;比如重置数据表&#xff0c;插入记录等等&#xff0c;或者在部署阶段进行数据初始化的操作 根据前面章节介绍过的 knex.js 和 sequelize.js&…

基于自适应曲线阈值和非局部稀疏正则化的压缩感知图像复原研究【自适应曲线阈值去除加性稳态白/有色高斯噪声】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

什么是媒体代发布?媒体代发布注意事项

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体代发布是指将新闻稿或其他宣传内容委托给专业的媒体代理机构或公司进行发布和推广的活动。这些机构通常拥有丰富的媒体资源、人脉和经验&#xff0c;能够更好地将信息传递给目标受众…

C语言 指针与内存之间的关系

一、内存与字节 一个内存单元一个字节一个地址 整型 int 类型中int类型的字节数是4 且一个字节表示八个bite位 一个二进制数位有着32个bite 所以又可以表示为&#xff1a;一个字节 8个比特位 32位数的二进制数位的八分之一 例如&#xff1a; int a 10&#xff1b; 该表达式…

项目实战 — 消息队列(9){编写demo程序}

消息队列服务器核心功能就是&#xff0c;提供了虚拟主机&#xff0c;交换机&#xff0c; 队列&#xff0c;消息等概念的管理&#xff0c;实现三种典型的消息转发方式&#xff0c;可以实现跨主机/服务器之间的生产者消费模型。 这里&#xff0c;就编写一个demo&#xff0c;实现…

【实战讲解】数据血缘落地实施

‍在复杂的社会分工协作体系中&#xff0c;我们需要明确个人定位&#xff0c;才能更好的发挥价值&#xff0c;数据也是一样&#xff0c;于是&#xff0c;数据血缘应运而生。 今天这篇文章会全方位的讲解数据血缘&#xff0c;并且给出具体的落地实施方案。 一、数据血缘是什么…

JAVA多线程和并发基础面试问答(翻译)

JAVA多线程和并发基础面试问答(翻译) java多线程面试问题 1. 进程和线程之间有什么不同&#xff1f; 一个进程是一个独立(self contained)的运行环境&#xff0c;它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序…

苏州OV泛域名RSA加密算法https

RSA加密算法是一种非对称加密算法&#xff0c;它被广泛应用于信息安全领域。与对称加密算法不同&#xff0c;RSA加密算法使用了两个密钥&#xff0c;一个公钥和一个私钥。公钥可以公开&#xff0c;任何人都可以使用它加密信息&#xff0c;但只有私钥的持有者才能解密信息。RSA加…

php如何对接伪原创api

在了解伪原创api的各种应用形态之后&#xff0c;我们继续探讨智能写作背后的核心技术。需要说明的是&#xff0c;智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联&#xff0c;在百度的智能写作实践中&#xff0c;常根据实际需求将多…

全球劳动力革命,Papaya Global 打破薪资界限

员工需求和劳动力结构的进一步变化&#xff0c;只会增加对更加自动化和全面的全球薪资解决方案的需求。 远程工作潮流与全球劳动力的蓬勃发展&#xff0c;使得企业在全球范围内&#xff0c;寻找最优秀的人才成为可能。然而&#xff0c;随之而来的复杂薪资管理挑战&#xff0c;也…