flutter打包慢,flutter不流畅

为什么Flutter开发APP性能最接近原生,前端程序员请关注

Flutter是谷歌公司推出的跨终端的开发框架,支持Android、iOS和WEB终端。1.0版在2018年12月5日发布,目前的最新版本是1.5,它采用的开发语言是Dart,Dart也是谷歌开发的计算机编程语言,语法类似C,是编译型语言:

创新互联公司专注于文登企业网站建设,响应式网站建设,成都商城网站开发。文登网站建设公司,为文登等地区提供建站服务。全流程按需定制网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

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

1、没有桥接层

React Native、Weex等技术都是跨终端的框架,然而性能跟原生App存在很大差距。这是由于它们的工作原理决定的:

React Native、Weex等技术多了一个桥接层,所以界面渲染会慢一些,由于UI渲染非常频繁,想要不卡顿,基本上比较难,性能和用户体验跟原生代码有差距。而这恰恰是Flutter的优势所在:

Dart可以被编译成不同平台的本地代码,让Flutter不通过桥接层直接跟平台通信,自然性能会快一些。

2、编译执行

JavaScript是解释执行的,Dart是编译执行的,性能谁好一目了然。

3、Flutter Engine虚拟机

Flutter是依靠Flutter Engine虚拟机在iOS和Android上运行的,Flutter Engine使用C/C++编写,开发人员通过Flutter框架直接和API在内部进行交互,所以具有输入低延迟和UI渲染高帧速率的特点。除了这特点之外,Flutter还提供了自己的小部件,Flutter小部件是使用从React获取灵感的现代框架构建的。 中心思想是您使用小部件构建UI。

窗口小部件根据其当前配置和状态描述了它们的视图。 当窗口小部件的状态发生更改时,窗口小部件会重建其描述,框架将根据前面的描述进行区分,以确定底层呈现树从一个状态转换到下一个状态所需的最小更改。可以直接在OS平台提供的画布上进行描绘,也就是一些核心类库直接放到虚拟机里面,调用起来更快。

从它的系统结构可以看出,类似安卓的ART(Android Run Time)虚拟机,同样采用AOT(Ahead of TIme)技术,会在APP安装时就编译成机器语言,不再解释执行,从而优化了APP运行的性能。

4、自带渲染引擎

Flutter使用谷歌自己的Skia渲染引擎,而Android系统自带Skia引擎,iOS平台上Flutter也会把Skia引擎打包到APP中,从而实现了高效渲染。而React Native通过桥接层访问原生UI,操作频繁就容易出性能问题。

综合所述,Flutter 是性能最接近原生代码 的一种开发框架,未来也会是构建谷歌Fuchsia应用的主要方式,前途不可限量,唯一的问题就是需要学习一门新的语言:Dart,而有Java或者C#语言基础的程序员会比较容易学习。

Flutter下载jar速度慢

文章转自:

用Android Stduio创建Flutter项目的时候,会出现各种问题,踩了一个又一个,最后编译的时候可能会出现一直显示Running Gradle task 'assembleDebug'然后就不动了,或者会显示Could not resolve io.flutter等问题,归根结底是网络无法访问到Google服务引起的,两种解决方案:

1.具有比较良好的访问谷歌的网络环境

2.修改镜像源为国内的:

找到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,就可以正常构建了!!!

flutter-android打包

android打包教程:

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

2、在app/build.gradle中设置安卓兼容版本targetSdkVersion和最低版本minSdkVersion,还有编译版本compileSdkVersion,还有设置包名applicationId,一般不用设置,除非你是要变更

4、添加启动图标,图标资源文件的位置如下:

看到这个文件的时候,就说明创建证书成功了

6、配置项目证书

在android目录下新建一个file文件key.properties,然后填写证书的信息如下:

7、启用混淆

在app路径中添加proguard-rules.pro文件(这个百度下就好了)

8、构建flutter build apk

Flutter 的Android 、iOS 打包

Flutter 项目虽说是跨平台项目,但是项目的名称还是需要在不同的平台设置,不同平台的设置位置是:

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

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

Flutter 项目虽说是跨平台项目,但是项目的 Logo 图标还是需要在不同的平台设置,不同平台的设置位置是:

1、 Android 项目 Logo 配置是在图片放置在 android/app/src/main/res 下的对应目录下:

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)的根目录(方便后面操作),如下图所示:

填写对应的值,如下图所示:

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

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

如下图所示:

3、 build.gradle 文件中进行签名配置。

如下图所示:

注意: buildTypes 中的 signingConfig signingConfigs.debug 可以变更为 signingConfig signingConfigs.release ,这样在打包的时候,直接可以 flutter build apk ,否则就执行 flutter build apk --release 。如图所示:

1、 cd 进入功能(testapp) 的根目录,如下图所示:

2、执行 flutter build apk 指令,如下图所示:

我们打包成功, 生成的 apk 包在 build/app/outputs/apk/release/app-release.apk 目录下,如下图所示:

1、将真机通过 USB 链接到电脑上,如下图所示:

2、然后,在项目的根目录执行 flutter install , 如果出现电脑同时有多个设备时,就执行 flutter install -d deviceid 。如下图所示:

3、设备的安装过程如下:

1、必须一个 Xcode 开发工具

2、如果是 Window 的电脑,请安装 Mac 虚拟系统,进行安装 Xcode .

1、打开目录下的 Runner.xcworkspace 工程。

如下图所示:

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

1、进入项目的根目录

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

如图所示:

3、使用 Xcode 工具进行打包

如图所示:

注意:进行该步骤,必须执行 flutter build ios --release 否则会报错。

打包成功,如下图所示:


文章题目:flutter打包慢,flutter不流畅
标题链接:http://pwwzsj.com/article/dsgpsjp.html