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.pswp.cn/news/35400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35400.shtml
英文地址,請注明出處:http://en.pswp.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;也…