欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter打包慢,flutter不流暢

為什么Flutter開發(fā)APP性能最接近原生,前端程序員請關(guān)注

Flutter是谷歌公司推出的跨終端的開發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開發(fā)語言是Dart,Dart也是谷歌開發(fā)的計算機編程語言,語法類似C,是編譯型語言:

創(chuàng)新互聯(lián)公司專注于文登企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。文登網(wǎng)站建設(shè)公司,為文登等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

hello world例子,打印字符串“Hello World!”:

1、沒有橋接層

React Native、Weex等技術(shù)都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:

React Native、Weex等技術(shù)多了一個橋接層,所以界面渲染會慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢所在:

Dart可以被編譯成不同平臺的本地代碼,讓Flutter不通過橋接層直接跟平臺通信,自然性能會快一些。

2、編譯執(zhí)行

JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰好一目了然。

3、Flutter Engine虛擬機

Flutter是依靠Flutter Engine虛擬機在iOS和Android上運行的,F(xiàn)lutter Engine使用C/C++編寫,開發(fā)人員通過Flutter框架直接和API在內(nèi)部進行交互,所以具有輸入低延遲和UI渲染高幀速率的特點。除了這特點之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構(gòu)建的。 中心思想是您使用小部件構(gòu)建UI。

窗口小部件根據(jù)其當(dāng)前配置和狀態(tài)描述了它們的視圖。 當(dāng)窗口小部件的狀態(tài)發(fā)生更改時,窗口小部件會重建其描述,框架將根據(jù)前面的描述進行區(qū)分,以確定底層呈現(xiàn)樹從一個狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需的最小更改。可以直接在OS平臺提供的畫布上進行描繪,也就是一些核心類庫直接放到虛擬機里面,調(diào)用起來更快。

從它的系統(tǒng)結(jié)構(gòu)可以看出,類似安卓的ART(Android Run Time)虛擬機,同樣采用AOT(Ahead of TIme)技術(shù),會在APP安裝時就編譯成機器語言,不再解釋執(zhí)行,從而優(yōu)化了APP運行的性能。

4、自帶渲染引擎

Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,從而實現(xiàn)了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。

綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開發(fā)框架,未來也會是構(gòu)建谷歌Fuchsia應(yīng)用的主要方式,前途不可限量,唯一的問題就是需要學(xué)習(xí)一門新的語言:Dart,而有Java或者C#語言基礎(chǔ)的程序員會比較容易學(xué)習(xí)。

Flutter下載jar速度慢

文章轉(zhuǎn)自:

用Android Stduio創(chuàng)建Flutter項目的時候,會出現(xiàn)各種問題,踩了一個又一個,最后編譯的時候可能會出現(xiàn)一直顯示Running Gradle task 'assembleDebug'然后就不動了,或者會顯示Could not resolve io.flutter等問題,歸根結(jié)底是網(wǎng)絡(luò)無法訪問到Google服務(wù)引起的,兩種解決方案:

1.具有比較良好的訪問谷歌的網(wǎng)絡(luò)環(huán)境

2.修改鏡像源為國內(nèi)的:

找到Flutte SDK目錄下的Flutter打包配置文件flutter.gradle

路徑為flutter\packages\flutter_tools\gradle\flutter.gradle

第一處配置:

buildscript {

repositories {

//注釋

// google()

// jcenter()

//添加

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

dependencies {

classpath 'com.android.tools.build:gradle:3.5.0'

}

}

第二處配置:

class FlutterPlugin implements PluginProject {

//注釋

// private static final String MAVEN_REPO = " ";

//添加這行

private static final String MAVEN_REPO = " ";

第三處配置:

void addFlutterDependencies(buildType) {

String flutterBuildMode = buildModeFor(buildType)

if (!supportsBuildMode(flutterBuildMode)) {

return

}

String repository = useLocalEngine()

? project.property('local-engine-repo')

: MAVEN_REPO

最后一處,項目中的配置,修改Flutter項目下的android下的build.gradle:

buildscript {

ext.kotlin_version = '1.3.50'

repositories {

// google()

// jcenter()

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

}

allprojects {

repositories {

// google()

// jcenter()

maven { url ' ' }

maven { url ' ' }

maven { url ' ' }

}

}

修改完成后,再build,就可以正常構(gòu)建了!!!

flutter-android打包

android打包教程:

1、在AndroidManifest中確定app的名字:

2、在app/build.gradle中設(shè)置安卓兼容版本targetSdkVersion和最低版本minSdkVersion,還有編譯版本compileSdkVersion,還有設(shè)置包名applicationId,一般不用設(shè)置,除非你是要變更

4、添加啟動圖標(biāo),圖標(biāo)資源文件的位置如下:

看到這個文件的時候,就說明創(chuàng)建證書成功了

6、配置項目證書

在android目錄下新建一個file文件key.properties,然后填寫證書的信息如下:

7、啟用混淆

在app路徑中添加proguard-rules.pro文件(這個百度下就好了)

8、構(gòu)建flutter build apk

Flutter 的Android 、iOS 打包

Flutter 項目雖說是跨平臺項目,但是項目的名稱還是需要在不同的平臺設(shè)置,不同平臺的設(shè)置位置是:

1、 Android 項目名字配置是在 android/app/src/main/AndroidManifest.xml 文件中的 application 下的 android:label 。如下圖所示:

2、 iOS 項目名字配置是在 ios/Runner/Info.plist 文件中的 dict 下的 keyCFBundleName/key stringtestapp/string 。如下圖所示:

Flutter 項目雖說是跨平臺項目,但是項目的 Logo 圖標(biāo)還是需要在不同的平臺設(shè)置,不同平臺的設(shè)置位置是:

1、 Android 項目 Logo 配置是在圖片放置在 android/app/src/main/res 下的對應(yīng)目錄下:

mipmap-mdpi : 48 _ 48

mipmap-hdpi : 72 _ 72

mipmap-xhdpi :96 _ 96

mipmap-xxhdpi :144 _ 144

mipmap-xxxhdpi :192 * 192。如下圖所示:

然后,在 android/app/src/main/AndroidManifest.xml 路徑下的 AndroidManifest.xml 文件中的 android:icon 。如下圖所示:

2、 iOS 項目 Logo 的配置是在 ios/Runner/Assets.xcassets/AppIcon.appiconset 文件下,直接更換圖片,名字不要改動 。如下圖所示:

1、使用 cd 指令進入項目(testapp)的根目錄(方便后面操作),如下圖所示:

填寫對應(yīng)的值,如下圖所示:

1、 build.gradle 文件的位置,如下圖所示:

2、在 build.gradle 中配置 key.propreties 的全局變量,

如下圖所示:

3、 build.gradle 文件中進行簽名配置。

如下圖所示:

注意: buildTypes 中的 signingConfig signingConfigs.debug 可以變更為 signingConfig signingConfigs.release ,這樣在打包的時候,直接可以 flutter build apk ,否則就執(zhí)行 flutter build apk --release 。如圖所示:

1、 cd 進入功能(testapp) 的根目錄,如下圖所示:

2、執(zhí)行 flutter build apk 指令,如下圖所示:

我們打包成功, 生成的 apk 包在 build/app/outputs/apk/release/app-release.apk 目錄下,如下圖所示:

1、將真機通過 USB 鏈接到電腦上,如下圖所示:

2、然后,在項目的根目錄執(zhí)行 flutter install , 如果出現(xiàn)電腦同時有多個設(shè)備時,就執(zhí)行 flutter install -d deviceid 。如下圖所示:

3、設(shè)備的安裝過程如下:

1、必須一個 Xcode 開發(fā)工具

2、如果是 Window 的電腦,請安裝 Mac 虛擬系統(tǒng),進行安裝 Xcode .

1、打開目錄下的 Runner.xcworkspace 工程。

如下圖所示:

2、在 ios 工程中配置 Signing Capabilities , 如下圖所示:

1、進入項目的根目錄

2、打包指令 flutter build ios --release

如圖所示:

3、使用 Xcode 工具進行打包

如圖所示:

注意:進行該步驟,必須執(zhí)行 flutter build ios --release 否則會報錯。

打包成功,如下圖所示:

分享文章:flutter打包慢,flutter不流暢
URL網(wǎng)址:http://chinadenli.net/article28/dsgpsjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化ChatGPT靜態(tài)網(wǎng)站網(wǎng)站設(shè)計公司品牌網(wǎng)站設(shè)計網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)