一,简介
1.1,混合框架比较
ReactNaive ,Flutter,Uniapp是目前主流的混合框架,接近原生的方法也不尽相同:
ReactNative 会把组件转换为原生组件来达到原生的体验和速度
Flutter 有自己的引擎来支持组件的运行,类似于Unity游戏引擎,这体验速度也可以达到原生体验
Uniapp 其实不算真正的混合,它还是靠JS,说到底还是web,所以体验可能达不到前两者的效果
1.2,选择Flutter原因
Google大佬为背景,强悍的技术团队可以支撑Flutter的稳定发展。相对于ReactNative版本的变化大,更新内容变化快,Flutter基本组件不会有大变化,这也就在版本兼容性方面更稳定。
体验更流畅,基本无卡顿,占用cpu,内存比较其它混合框架更少,综合起来性能更优
开发更简单,快速,采用dart语言,虽然是新语言,但语法更简洁,跟python,js,kotlin这些语言类似
二 环境搭建
2.1 Android环境,AndroidStudio+JDK+SDK,这个比较基础,可以自己找下配置
2.2 Flutter依赖Git命令行工具,需要先下载git并安装:https://git-scm.com/download/win
2.3 FlutterSDK下载:https://docs.flutter.dev/release/archive
解压后放在任何一个目录即可
2.3 运行AndroidStudio,并安装flutter插件,Dart,Flutter
新建flutter项目
如果没有新建flutter选项,可能是App Links Assistant插件选项给关了,给他开启就可以了
创建项目,并调试
点击运行图标
可以看到Gradle开始编译和安装项目
运行成功真机会出现Flutter欢迎页面
2.4 Flutter是支持热加载的,修改dart组件内容,会立即显示到真机上
不如我们把下面这句改了
随便改成其他内容
可以看到,页面会立马改变
三,命令运行
3.1 配置flutter环境变量
D:\FlutterSdk\bin
D:\FlutterSdk\bin\cache\dart-sdk\bin
3.2 检测 flutter 运行环境条件,打开命令工具输入命令
flutter doctor
叉号是不满足条件的
第一个问题,cmdline-tools component is missing
打开AndroidStudio点击SDK 管理
选中SDK Tools -> Command-line tootls 安装
可以看到正在下载cmdline-tools
再次运行检查指令 flutter doctor,看到这个错误已经没有了
第二个问题, Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses.
意思是
Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3) ✗ Android 许可证状态未知。 运行 flutter doctor --android-licenses 以接受 SDK 许可证
根据提示执行 flutter doctor --android-licenses 指令,全部选y
再次运行检查指令 flutter doctor,看到第二个错误也没有了
第三个问题 Unable to find bundled Java version.不能找到 java版本
原因:
由于运行默认的jre目录是AndroidStudio目录的jre,这个里面默认是没有JDK的,需要把JDK的文件复制到AndroidStudio的jre里面
找到AndroidStudio的jre文件
粘贴进jre里面
再次运行检查指令 flutter doctor,看到已经没报错了
3.3 命令调试
发现设备命令
flutter devices
启动应用程序
flutter run
报了个错,意思Gradle需要JDK11版本,但是现在是JDK1.8版本
上面配置jre那步确实复制的JDK1.8的文件,那再操作下把,下载JDK11,把JDK的文件复制到AndroidStudio的"jre"文件里面
再次运行 flutter run,可以看到这次运行成功了
3.4 通过命令创建项目
flutter create flutter_app
可以看到创建成功后,会在命令打开的文件夹地方生成一个新项目
进入到命令根目录
cd flutter_app
运行项目 flutter run,可以看到命令运行你成功
3.5 项目运行前配置
直接运行可能因为远程依赖镜像问题比较慢,我们可以换国内阿里云镜像
来修改两个地方
- Flutter项目里面的android/build.gradle
- FlutterSDK里面的flutter.gradle 文件
修改为
//google()
//mavenCentral()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/public' }
Flutter项目里面的android/build.gradle
FlutterSDK里面的flutter.gradle 文件
3.6 当然也可以指定Gradle版本版本,由于国外网络限制和Gradle构建工具大,下载非常耗费时间。直接指定本地缓存版本会快点
第一步查看 本地缓存的gradle版本,找到 .gradle里面的缓存位置,里面是已经缓存过的版本
第二步修改Flutter项目里面的gradle发行版本 D:\FlutterProject\flutter_app\android\gradle\wrapper\gradle-wrapper.properties
改成缓存里面的版本,我这是 gradle-6.5-bin
第三步修改Flutter项目里面的gradle插件版本
我这改为4.1.2,注意gradle发行版本和插件版本要对应
四 VSCode运行Flutter项目
4.1 AndroidStudio更多的场合是运行android项目,flutter组件是dart语言,用VSCode编辑器开发更合适写
4.2 VSCode下载官网:https://code.visualstudio.com/
下载完安装就行了
4.3 打开Flutter项目
可以选择性安装Flutter相关插件,要运行必须安装Dart插件
4.4 调试,点击 Run => Start Debugging
可以看到浏览器运行成功
上面选择Android真机调试,也运行成功
至此,Flutter的环境 配置,AndroidStudio,VSCode环境配置到此结束