自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 实战检测Flutter内存泄漏

背景Dart语言有一套自己的内存管理机制,内存泄漏是OOM的元凶为此我们开发者很有必要了解一下Dart的管理以及检测机制,特别是多人协同开发的大型项目如果对内存泄漏不高度重视很容易引发内存溢出。什么是内存泄漏内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺

2022-03-29 17:16:49 4413 2

原创 详解Flutter中各种Binding

前言Flutter中所有的运转都是在各种Binding中调度的,也正是这些绑定器的存在彻底解耦了Widget 、 Element 、RenderObject 对 Platform端的依赖,阅读此文需要有一定的Flutter基础,如:Flutter的绘制流程,Flutter与Platform通信原理,Flutter 三棵树各自的职责WidgetsFlutterBindingWidgetsFlutterBinding是一个单例存,它继承了GestureBinding, SchedulerBinding,

2022-02-23 10:44:07 2149

原创 浅谈Flutter事件分发机制

前言在Flutter中统的事件通过Engine层发送到framework层,GestureBinding负责framework层事件的处理,接下来由GestureBinding为入口来进行分析。设备事件信号分类一,Flutter对设备事件定义了touch , mouse , stylus , invertedStylus , unknown几种,其中手机端屏幕触摸产生的事件对应的是touch类型。其他还有手写笔 , 鼠标 等设备。enum PointerDeviceKind { /// A to

2022-02-22 16:28:15 2224

原创 Flutter中Drat虚拟机服务介绍 --- VmService

开篇在Flutter有三种运行模式分别为release,debug,profile,在debug和profile模式下Flutter Engine会开启一个DartService Isolate,DartService Isolate会创建一个VmService。PS:在debug和profile模式是以JIT模式编译,而release模式是AOT模式编译。通过VM Service就可以获取到运行时的各种信息,DevTools也是基于此Service的可视化工具Engine中创建VmService非r

2022-02-09 14:59:48 4062

原创 Flutter 外接纹理

背景在Flutter开发中需要用到视频播放的功能,Flutter对视频播放的支持并不是很友好所以Google提供了TextureLayer让Flutter端能够使用原生端的渲染,这样我们原生端很多优秀的视频播放组件能够在Flutter程序上使用了Texture的创建Texture是Platform端创建的,创建是会生成一个textureId,textureId可以映射获取到TextureAndroaid端FlutterRenderer创建SurfaceTexture @Override

2022-02-03 16:34:47 3054

原创 Flutter中MethodChannel/EventChannel的原理

前言Flutter开发中或多或少都需要和原生端做一些交互,Flutter SDK中也为开发者提供了MethodChannel/EventChannel实现了Flutter调用原生端以及原生端调用Flutter。MethodChannelFlutter与原生端方法调用使用的是MethodChannel,它是双向通信Flutter和原生端都可以主动发起Flutter端调用原生方法Flutter端调用const MethodChannel _channel = MethodChannel(

2022-01-20 15:36:58 2496

原创 Flutter渲染优化之RepaintBoundary

Flutter渲染优化之RepaintBoundary

2021-12-31 18:11:46 3652

原创 初识Flutter中的Layer

初识Flutter中的Layer开篇接触Flutter开发一段时间后发现自己对Flutter渲染流程重要的一环Layer的认知比较少,虽然Flutter对Widget的封装非常全面了开发者基本上只要面向Widget编程就可以完成绝大部分的功能,但是它作为一个UI框架我们还是需要尽可能的掌握它渲染体系的来龙去脉,因此借此篇文章简单介绍笔者对Layer的探索。Flutter渲染流程简介参与UI的构建和显示涉及到两个线程分别是界面线程(UI Thread)和光栅线程(GPU Thread),UI线程做构建

2021-12-13 17:19:54 2286

原创 Flutter视图刷新流程分析

Flutter视图刷新流程分析引子接触过Flutter开发的同学都知道StatefulWidget是可以支持刷新UI的,当在State中调用setState方法时会触发build来重构视图Flutter渲染中的三棵树在Flutter的渲染过程中由Widget,Element,RenderObject这个三个元素组成三棵树。Widget控件树,Element元素树,RenderObject渲染树。Widget内部调用createElement()会创建对应的Element,Element内部调用cre

2021-07-02 18:15:31 358 2

原创 HttpURLConnection出现cannot write request body after response has been read

HttpURLConnection 中出现java.net.ProtocolException: cannot write request body after response has been readHttpURLConnection是Android原生自带的网库请求框架,因为轻量级的原因很多SDK会使用到它,最近在项目中发现一个问题...

2021-04-09 17:10:50 1579

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除