logo资料库

flutter开发入门与实战教程.pptx

第1页 / 共52页
第2页 / 共52页
第3页 / 共52页
第4页 / 共52页
第5页 / 共52页
第6页 / 共52页
第7页 / 共52页
第8页 / 共52页
资料共52页,剩余部分请下载后查看
FLUTTER开发 --移动端跨平台技术方案 研发部 吴华清 2019/7/25
Flutter 是什么 • Flutter是谷歌开源的一款针对iOS,Android 等主要移动端的跨平台开发的框架(针对web平 台的研发也在跟进),以其优异的跨端界面渲染和操作体验而闻名,于2018.12发布正式版1.0。 目前国内的技术团队都有贡献力量,并在其业务内落地flutter技术。 • Flutter使用的开发语言是Dart语言(一个重要原因是dart团队在flutter团队隔壁),dart是一门 现代化的编程语言,有JIT和AOT双重特性。 • Flutter是谷歌下一代操作系统 Fuchsia 的UI框架
哪些厂子在用 • 闲鱼团队 针对flutter一整套的项目构建,混合开发的实践规范 • 微信团队 针对小程序跨平台的特性,跨平台构建参考flutter UI渲染,并且在底层平台交互方面可 能 摒弃platform channel,实现自己的dart2cpp方案。 • 美团团队 针对flutter的动态化缺陷的特点,构建自己的flutter应用的动态化方案
二、跨平台方案 • Web (hybrid)方案: ionic / cordova等 • 界面展示方面使用移动端的webview加载H5,数据交互方面使用jsbrige 约定协议进行处理。跨平台,动态性以 及渲染都比较理想,随着H5的复杂,性能逐渐递减。
桥接方案:ReactNative / Weex /uniapp • 通过构建js 驱动层来驱动原生系统的组件以及系统能力,动态化/渲染 性能都不错,在系统升级和api 变动上维护困难,跨平台上由于中间jscore的存在,对应用的动画特效的处理平台差异较大。
自绘方案:flutter / cocos2d(主要针对游戏的定制化开发) • 从渲染层开始就自称体系,界面的绘制(flutter ui)与渲染(skia)都由自己处理,没有了jscore的中间 驱动和系统自身sdk的ui绘制。因此从跨平台/界面渲染方面很优异。由于编译成 AOT 代码(ios上就无 法使用动态化技术,android是谷歌的政策限制) ,目前动态化是短板。
基本比对
Flutter 特性及体系结构 • 特性 • 1.Flutter 使用Dart作为开发语言,支持JIT(Just In Time即时编译) AOT(Ahead of Time运行前编译);产 品开发期模式使用JIT ,支持热重载,开发效率高,类似web开发;产品发布期使用AOT,能 够使得应用运行效率高。 • 2.UI绘制使用Skia 渲染引擎 从底层开始构建,Skia本身就跨平台(无特定平台依赖,因此 移动端渲染跨平台成为可能)。 Skia 在图形转换、文字渲染、位图渲染方面都表现卓越, 并提供友好API(android 渲染引擎就是Skia)。所以Flutter在打包APK(Android应用安装包)时, 不需要再将Skia打入APK中,但iOS系统并未内置Skia,所以构建iPA时,也必须将Skia一起打 包,这也是为什么Flutter APP的Android安装包比iOS安装包小的主要原因。
分享到:
收藏