真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter大作業(yè),flutter 簡書

flutter 常見問題之a(chǎn)pp體積為何比較大

細(xì)心的開發(fā)者會(huì)發(fā)現(xiàn)flutter構(gòu)建的App體積比native的大一些,是什么原因造成App體積大呢?

10年的白塔網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整白塔建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“白塔網(wǎng)站設(shè)計(jì)”,“白塔網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

其實(shí)flutter 在release時(shí)App體積和native的大小差不多,而debug時(shí)體積通常會(huì)大。debug版本體積較大是為了Hot reload和快速編譯。如果有flutter開發(fā)經(jīng)驗(yàn)的朋友都體驗(yàn)過,如果您修改一下App的背景顏色,只需save一下就可以立刻看到修改后效果。我稱之為“像藝術(shù)家一樣在創(chuàng)造App”,因此為了實(shí)現(xiàn)這些目標(biāo),提高開發(fā)的效率,debug將占用全部資源。而當(dāng)我們構(gòu)建release版時(shí),flutter又會(huì)采用AOT策略,提高App運(yùn)行效率,release版只打包必需的資源,因而體積又會(huì)減少。

另外,flutter團(tuán)隊(duì)也一直在尋找減小程序大小的方法。

Flutter開發(fā)Windows 和 Linux 桌面應(yīng)用,設(shè)置默認(rèn)窗口大小

在用Flutter 開發(fā)windows和linux跨平臺(tái)應(yīng)用的時(shí)候,如何設(shè)置默認(rèn)窗口大小呢?

flutter沒有提供統(tǒng)一的api,所以默認(rèn)的窗口大小是1280x720.

如果我們想要改成自己想要的默認(rèn)窗口大小呢?比如我想要設(shè)置為:512像素寬, 926像素高

我該怎么做呢?

請(qǐng)看我的教程。

首先你確保你已經(jīng)為項(xiàng)目創(chuàng)建了windows和Linux的支持。

目前Flutter 為windows和linux提供的是托管式運(yùn)行的主程序,可以理解為一個(gè)殼子,這個(gè)殼子就是用cpp寫的,平臺(tái)原生的window 窗口。

所以我們可以打開相應(yīng)的cpp源代碼,設(shè)置默認(rèn)窗口大小。

這里先講windows和linux,因?yàn)閙ac 平臺(tái)跟windows和linux不一樣,后面單獨(dú)給大家講解。

我們看圖。

源代碼路徑位于:

windows/runner/main.cpp

找到

第一個(gè)參數(shù)是寬度,單位是px,第二個(gè)是高度,單位是px

修改后重新運(yùn)行生效。

源代碼路徑位于:

linux/my_application.cc

找到

方法的第一個(gè)數(shù)字是寬度,第二個(gè)是高度,單位也是px像素。

修改后,重新運(yùn)行生效。

現(xiàn)在,你已經(jīng)學(xué)會(huì)了如何設(shè)置初始窗口大小了。

[img]

Flutter是一個(gè)什么框架

Flutter是一個(gè)移動(dòng)應(yīng)用程序的軟件開發(fā)工具包(SDK),具有以下特征:

跨平臺(tái)應(yīng)用的框架,沒有使用WebView或者系統(tǒng)平臺(tái)自帶的控件,使用自身的高性能渲染引擎自繪

簡化版的瀏覽器,最大限度在android和ios上統(tǒng)一UI,包括業(yè)務(wù)邏輯和用戶體驗(yàn)

開發(fā)語言使用dart,結(jié)合C, C++, 和Skia(2D渲染引擎)構(gòu)建

支持hot reload,包含著完整的控件和工具鏈

一切皆控件,控件是每個(gè)Flutter應(yīng)用程序的基本構(gòu)建塊,與分離視圖、控制器、布局和其他屬性的框架不同,F(xiàn)lutter具有一致的統(tǒng)一對(duì)象模型:控件。一個(gè)控件可以定義:結(jié)構(gòu)元素(比如按鈕或菜單)、風(fēng)格元素(比如字體或顏色方案)、布局的方面(比如填充)、一些業(yè)務(wù)邏輯等

組合大于繼承,控件本身通常由許多小型、單用途的控件組成,結(jié)合起來產(chǎn)生強(qiáng)大的效果,類的層次結(jié)構(gòu)是扁平的,以最大化可能的組合數(shù)量

強(qiáng)化版的WebView,框架僅提供一個(gè)View層,大部分功能要依賴原生

目前只能夠運(yùn)行大部分Dart代碼(不能引入dart:mirrors或dart:html庫)

flutter如何進(jìn)行icloud

flutter用一個(gè)插件進(jìn)行icloud。

拓展資料:為何flutter構(gòu)建的App體積較大?

細(xì)心的開發(fā)者會(huì)發(fā)現(xiàn)flutter構(gòu)建的App體積比native的大一些,是什么原因造成App體積大呢?

其實(shí)flutter 在release時(shí)App體積和native的大小差不多,而debug時(shí)體積通常會(huì)大。debug版本體積較大是為了Hot reload和快速編譯。如果有flutter開發(fā)經(jīng)驗(yàn)的朋友都體驗(yàn)過,如果您修改一下App的背景顏色,只需save一下就可以立刻看到修改后效果。我稱之為“像藝術(shù)家一樣在創(chuàng)造App”,因此為了實(shí)現(xiàn)這些目標(biāo),提高開發(fā)的效率,debug將占用全部資源。而當(dāng)我們構(gòu)建release版時(shí),flutter又會(huì)采用AOT策略,提高App運(yùn)行效率,release版只打包必需的資源,因而體積又會(huì)減少。

另外,flutter團(tuán)隊(duì)也一直在尋找減小程序大小的方法。

Flutter Android端集成排坑 - armeabi 適配 & FlutterBoost

Flutter可以算是當(dāng)下最火熱的新技術(shù)之一,我現(xiàn)在所在團(tuán)隊(duì)也準(zhǔn)備將Flutter技術(shù)應(yīng)用到線上工程中。

關(guān)于混合工程,官方文檔其實(shí)寫的已經(jīng)比較清楚了,按著文檔走一般問題不大,

但是有一點(diǎn)值得注意的是,F(xiàn)lutter工程引入的庫的gradle的 buildTypes 要與原工程保持一致,如果不一致需要手工添加。

進(jìn)入正題,現(xiàn)在Flutter官方默認(rèn)只提供armeabi-v7a、arm64-v8a、x86和x86-64,其中x86和x86-64是為模擬器準(zhǔn)備的。目前我們使用的SDK大部分只使用了armeabi架構(gòu),直接使用我們會(huì)遇見找不到 libflutter.so,libapp.so 的情況,所以我們需要對(duì)FlutterSDK做一定的改造。

首先我們要了解下Flutter編譯產(chǎn)物,因?yàn)椴煌姹井a(chǎn)物是不同的,這里我們只針對(duì)Flutter 1.9.1-hotfixes來說。除了資源文件之外,F(xiàn)lutter打包會(huì)生成兩個(gè)非常重要的so庫,他們分別是 libflutter.so,libapp.so 。其中 libflutter.so 是Flutter的SDK產(chǎn)物而 libapp.so 正是我們編寫的dart文件的產(chǎn)物。默認(rèn)情況下,這兩個(gè)文件都會(huì)出現(xiàn)在armeabi-v7a中,因此我們要作出對(duì)應(yīng)的改造。

libflutter.so 位于FlutterSDK中,這里順帶提一句,除了這對(duì)不同CPU架構(gòu),它還分為Debug版和Release版,它們的區(qū)別在于Debug是為JIT編譯方式打造的,體積較大而Release是為AOT編譯方式打造的,體積很小。對(duì) libflutter.so 的改造,只要將其移動(dòng)文件路徑即可,運(yùn)行以下腳本即可,此腳本來自美團(tuán)分享的Flutter文章。

移動(dòng)完了 libflutter.so 之后我們打包發(fā)現(xiàn), libapp.so 仍然會(huì)出現(xiàn)在armeabi-v7a中,所以第二部我們就是移動(dòng) libapp.so 。這個(gè)需要更改 flutter.gradle ,我們?cè)?flutter.gradle 的45行可以看到如下定義,它定義了我們的環(huán)境。

在524行我們可以看到,abiValue的取值就是根據(jù)上述定義值。

所以結(jié)論很簡單,只要將

private static final String ARCH_ARM32 = "armeabi-v7a";

改為

private static final String ARCH_ARM32 = "armeabi";

就可以完成對(duì)與 libflutter.so 的移動(dòng)。

前期工作我們都做好了,打成aar就非常簡單了

直接使用 flutter build aar --target-platform android-arm

打出來后可以解壓檢查下 libflutter.so,libapp.so 是否都在armeabi文件夾下即可。

說完了armeabi適配問題,這里下說下有關(guān)于有關(guān)于FlutterBoost的接入。這個(gè)東西接入有兩點(diǎn)要注意。

在主app內(nèi)加上即可,常規(guī)操作,強(qiáng)制統(tǒng)一support包的版本號(hào)

注釋flutter.gradle第655行。因?yàn)榫幾g過程中,會(huì)去初始化插件項(xiàng)目的buildType下面的debug配置,而插件項(xiàng)目下并未配置debug,導(dǎo)致報(bào)錯(cuò)。

如果發(fā)現(xiàn)文章中有錯(cuò)誤或者有更好的解決方案歡迎指正留言,當(dāng)然如果本篇文章幫助你解決了問題,也不要吝嗇你的感謝。謝謝各位。


名稱欄目:flutter大作業(yè),flutter 簡書
網(wǎng)站網(wǎng)址:http://weahome.cn/article/dsopgji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部