flutter是什么?
是一个UI SDK,可以进行跨平台开发
flutter的特点?
美观、快速、高效、开放
1,美观:内置美丽的Material Design和 Cupertino widget,丰富的动画api
2,快速:性能高
3,高效:热重载
4,开放:开源
跨平台开发历史?
webview
react
flutter
webview是一个安卓组件,ios上叫UIwebview,他是一个html渲染引擎,通过第三方库(cordova plugubs)进行原生功能的调用
react native (开源与Facebook)使用类似html的jsx和css来开发,编写jsx和css代码,使用JavaScript虚拟机通过桥接转换成原生代码。
渲染原理
1,编写的flutter代码经过flutter框架进行转换,然后传递给skia绘图引擎进行解析,最后将解析的数据传递给CPU/GPU进行渲染到显示器上。
安卓操作系统中,我们编写的原生控也是依赖于Skia进行绘制,所以flutter在某些安卓操作系统中,性能可能会高于原生。(原生安卓中的Skia随着操作系统进行更新,而flutter SDK总是保持最新的)。
2,编写的RN代码通过RN框架转换成原生代码,然后通过安卓框架进行转换,然后将传递给skia绘图引擎进行解析,最后将解析数据传递给CPU/GPU进行渲染。
skia是什么
1,他是安卓官方的图像渲染引擎
2,他是flutter想GPU提供数据的途径
3,由于安卓自带skia,而ios不是使用的这个引擎,就需要在打ios包的时候将skia嵌入到flutter的IOS SDK中。所以flutter应用的包体积比安卓大
安装与使用
1,下载flutter sdk
2,配置环境变量
3,安装android stdio
4,在android stdio中安装flutter、dart插件
5,配置镜像(环境变量),由于flutter项目依赖一些东西,在国内下载很慢