摘要: Flutter的widget渲染正常情况下一般可以达到60fps以上,作为跨平台语言为甚么有如此优势?它基于Skia引擎直接绘制Skia经过Google团队优化后,性能明显提升,如抗锯齿能力就得到了很好的改善但这并不意味着怎么写都可以达到这个水平,实际开发时需要综合考虑各方面的因数,如业务逻辑臃肿导致WidgetTree庞大,不够合理的状态刷新导致大两部必要的Widget被重新构建,各种插件的注册... 阅读全文
posted @ 2020-10-12 00:33 阿甘左 阅读(2488) 评论(0) 推荐(0) 编辑
摘要: LLVM是编译器的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序编译时间,链接时间,运行时间,以及空闲时间,对开发这保持开放,并兼容已有的脚本(来自百度百科),它的全称是Low Level Virtual MachineLLVM的优势以下来自机翻LLVM使用具有严格定义语义的简单低级语言。它包括C和C++前端。Java、Scheme和其他语言的前端正在开发中。它包括一个积极的优化器,... 阅读全文
posted @ 2020-10-10 23:59 阿甘左 阅读(2047) 评论(0) 推荐(0) 编辑
摘要: 英文全称(business logic),用于处理业务逻辑,其内部实现主要是对Stream的输入和输出进行了封装,它的实现原理是利用RxDart(基于Stream封装)提供的PublishSubject和BehivorSubject实现了Event和State之间的转换,以及利用Flutter提供的 阅读全文
posted @ 2020-10-10 02:41 阿甘左 阅读(346) 评论(0) 推荐(0) 编辑
摘要: Flutter App crash日志搜集包括三部分,一部分来自于Dart code引起的异常,可以在flutter framework的main函数进行全局捕获,此外还需对Native端iOS和Android的异常进行捕获.iOS异常搜集与分析开启DWARF文件搜集获取Mach异常和Unix信号(),用于捕获系统内核的异常,在http://opensource.apple.com 可以看到内核的... 阅读全文
posted @ 2020-10-10 02:19 阿甘左 阅读(1829) 评论(0) 推荐(0) 编辑
摘要: Flutter InspectFlutter Timeline它可以用来分析UI/GPU性能,通过对标记的方法和构建,渲染过程的起始时间来统采用真机测试在profile模式下测试最贴近真实值柱子分别代表了每帧GPU和CPU的耗时,红色标示超出了基准值,渲染较为耗时.下图为CPU Flame Chart选取耗时较长的Build方法研究查看耗时较长的Build CallTree,根据Total Tim... 阅读全文
posted @ 2020-10-09 22:05 阿甘左 阅读(436) 评论(0) 推荐(0) 编辑
摘要: flutter/bin/cache/pkg/sky_engine/lib/_http/http.dart -> HttpClient//示例: var httpClient = new HttpClient(); httpClient.findProxy = (url) { return HttpClient.findProxyFromEnvironment(url, envi... 阅读全文
posted @ 2020-10-09 21:55 阿甘左 阅读(3681) 评论(0) 推荐(0) 编辑
摘要: 启动时通过Flutter framework层的ui.window获取到当前系统的local,根据MaterialApp用户配置的locale进行mapping,初始化Localizations,并加载LocalizationDelegate的load方法(需要在此方法中读取本地对应的locale的翻译),然后将LocalizationDelegate所代理的具体的Localizations和内置... 阅读全文
posted @ 2020-10-09 21:51 阿甘左 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: 它是一个StatefulWidget, 初始化传入一个Listenable通过Listenable内部绑定了setState方法去触发子类的 build方法.子类通过继承AnimatedWidget,通过传入的Animation就能触发build方法以AnimateBuilder为例:_AnimatedState.... @overridevoid initState() {super.init... 阅读全文
posted @ 2020-10-09 21:27 阿甘左 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 内容来源于: objc4-750—> objct-weak.h/mm此类主要是实现管理对象的弱引用关系, 内部是通过一个hash tab来管理所有object的weak引用, 当该object引用技术为0被销毁时, 对象也会随之从引用表中删除. 通过弱引用机制, 可以避开对象的引用计数无法清0, 的循环引用(比较常见的例子是delegate之间的互相依赖)导致内存泄漏。## object-weak... 阅读全文
posted @ 2020-10-09 12:27 阿甘左 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 链接: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008048-CH1-SW1Objective-C运行时的改进: https://develope... 阅读全文
posted @ 2020-10-09 12:25 阿甘左 阅读(240) 评论(0) 推荐(0) 编辑