
flutter
BATTERIA
这个作者很懒,什么都没留下…
展开
-
Flutter build-runner工具简单使用
build_runner提供了一些用于生成文件的通用命令,这些命令中有的可以用于测试生成的文件,有的可以用于对外提供这些生成的文件以及它们的源代码。如果你开发的是 Web :你可以使用webdev 工具替代 build_runner 以构建和提供 Web 应用。build SummaryGet Startpubspec.yaml添加依赖dependencies: flutter: sdk: flutter build_runner: anybuild.ya...原创 2020-09-21 12:31:43 · 5627 阅读 · 0 评论 -
Ansible自动化配置Flutter环境
安装:python>2.6brew install ansiblebrew install http://git.io/sshpass.rbansible --versionhostsall: children: servers: hosts: 10.23.2.147: ansible_ssh_user: xxxx ansible_ssh_pass: "xxxx123" .原创 2020-09-21 12:22:03 · 145 阅读 · 0 评论 -
Flutter-Dart var、dynamic、object区别
var、dynamic、object区别var在第一次赋值时确定类型,编译时就会转型object是所有类型的父类,可以随便指定引用dynamic是运行时才会确定类型,所以编译时无法发现错误;也因此方便实现动态代理...原创 2020-09-21 12:13:00 · 729 阅读 · 0 评论 -
Flutter-stream流 响应式编程简单应用
Stream流是Flutter对响应式编程的一种实现。创建StreamController(Stream的控制器)/// 使用broadcast构造产生的Stream可以被多次监听final streamController = StreamController.broadcast();// final streamController = StreamController();streamController.cancel();使用StreamController创建Streamfin原创 2020-09-21 12:12:09 · 422 阅读 · 0 评论 -
Dart-线程模型、isolate开启多线程方法
线程模型Dart 在单线程中是以消息循环机制来运行的,其中包含两个任务队列,一个是“微任务队列” microtask queue,另一个叫做“事件队列” event queue。从图中可以发现,微任务队列的执行优先级高于事件队列。现在我们来介绍一下Dart线程运行过程,如上图中所示,入口函数 main() 执行完后,消息循环机制便启动了。首先会按照先进先出的顺序逐个执行微任务队列中的任务,事件任务执行完毕后程序便会退出,但是,在事件任务执行的过程中也可以插入新的微任务和事件任务,在这种情况下,整个线原创 2020-09-21 11:58:16 · 1702 阅读 · 1 评论 -
Flutter-中文无法使用TextAlign.center居中
中文无法使用TextAlign.center居中目前解决方案 使用Baseline微调问题 在不一样的设备上效果有差异,Baseline不是很确定issues表意字符无法居中现已修复,使用新版本flutter不再出现该问题More info: 优快云...原创 2020-09-18 11:28:20 · 1687 阅读 · 0 评论 -
Flutter-布局的树结构分析
Flutter布局的树结构flutter中有三棵树,分别是Widget树、Element树、RenderObject树。其中Widget中只存放基本的配置信息,可以当作就是一个数据结构,而RenderObject是实际渲染使用的,layout和paint等操作都是RenderObject完成的。Element则是存放上下文的,同时持有Widget和RenderObject,并且负责处理state的状态变化。State的生命周期[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(原创 2020-09-18 11:25:51 · 1486 阅读 · 0 评论 -
Flutter-性能优化方法与工具
性能优化分析与优化打开帧率检测[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TDGJHUWE-1600399314679)(/images/performance.jpg)]分析GPU、UI线程爆红的原因UI报红:执行了耗时的工作、算法复杂度过高GPU报红:绘制的图形过于复杂、执行了过多的GPU操作优化方法调整耗时代码的调用时机不要全局刷新使用独立的isolate处理过于耗时的算法多级缓存策略内存优化策略优化图片质量和尺寸在调用频率很高的方法中创原创 2020-09-18 11:22:31 · 462 阅读 · 0 评论 -
Dart-对比Java理解Dart虚拟机内存结构
Dart内存GC方法GC对比Java GCDart和Java的垃圾回收机制一样,都是分成了新生代和老生代,新创建的对象都会先分配在新生代中。然而Dart和Java的新生代内存分配方式不一样,Dart只分了from和to 1:1的两部分,而Java则是分成了Eden、FromSpace、ToSpace 8:1:1三部分。Dart中当from和to其中的一个内存占满则会通过gc将幸存的对象转移到另一个区域内,并将前一个区域清空,当经历了一定次数的gc仍然存活的,会被分配到老生代中。 老年代采用标记整原创 2020-09-18 11:21:23 · 1070 阅读 · 0 评论 -
Flutter-深入理解flutter手势分发过程与相关Api
PointerPointer Event指针事件是指最原始的触摸事件,一次事件包括触摸到屏幕、在屏幕上移动到离开屏幕。使用Listener组件来监听指针事件,基本的回调有onPointerDown、onPointerMove、onPointerUp。Listener( child: Container( alignment: Alignment.center, color: Colors.blue, width: 100, height: 100, ),原创 2020-09-18 11:20:13 · 414 阅读 · 0 评论 -
Flutter Web-调研与简单应用
Flutter WebFlutter 1.9 稳定版正式将独立的 Flutter for web 仓库集成到 Flutter 的主仓库中。Flutter 1.12 稳定版提供了改进的 Web 支持,但仍是beta版,不建议商用。目前Flutter Web仍面临包体积大、性能差、资源缺乏等许多问题。案例Flutter Widget LivebookPanacheRivetKENKEN 益智游戏基本实现[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-di1Xc原创 2020-09-18 11:18:55 · 685 阅读 · 0 评论