Akindone's Studio.

Akindone's Studio.

where there is a will there is a way

Flutter 插件编写必知必会
本文目的 介绍包和插件的概念 介绍 flutter 调用平台特定代码的机制:Platform Channels,和相关类的常用方法 介绍插件开发流程和示例 介绍优化插件的方法:添加文档,合理设置版本号,添加单元测试,添加持续集成 介绍发布插件的流程和常见问题 目录结构 编写之前 Platform Channels 插件开发 优化插件 发布插件 总结 编写之前包(packages)的概念packages 将代码内聚到一个模块中,可以用来分享代码。一个 package 最少要包括: 一个 pubspec.yaml 文件:它定义了包的很多元数据,比如包名,版本,作者等 一个 lib...
Flutter 插件使用必知必会
本文目的 介绍插件的搜索方式,三方库评估的意义和基本思路 介绍如何给应用添加插件,从源码角度看插件是如何注册生效的 介绍如何给插件指定版本和解决版本冲突问题 介绍依赖源的种类,如何从pub/git/本地指定依赖库 介绍依赖的2种分类方式:直接依赖和传递依赖;常规依赖和dev依赖 介绍pub这个包管理工具获取依赖的流程和 lockfile 文件的意义 目录结构 获取插件 插件的使用 依赖的分类 包管理 总结 获取插件搜索途径Flutter 框架为我们提供了很多UI层的控制和支持,但APP的功能并不局限在显示上,还需要依赖Native 平台的支持,比如文件系统,摄像头等硬件调用等。所...
Observatory帮我找到循环调用的真凶
引子最近在自测flutter项目中的一个模块,运行到某个页面的某个功能时会突然卡住,log也没有任何的报错信息,应用的进程也没有被杀死,说明不是遇到异常。我先后用了print日志,加断点debug去寻找是哪里出现了问题,但都没有收获。我猜测可能是遇到循环调用,导致卡死了。刚好最近在学习Observatory,觉得应该能从函数的调用情况中发现什么。 Debug思路Observatory是dart应用的性能优化工具,它能获取应用内存分配,CPU资源分配。既然怀疑是循环调用,那么肯定有某个函数出现了爆炸式的调用,那我们可以去CPU Profile面板看看。关于这个工具的使用,可以看我之前写的这...
Dart性能优化工具——Observatory
Observatory 是用于分析和调试Dart应用程序的工具。Observatory允许您根据需要查看正在运行的Dart虚拟机(VM),并提供实时,即时的数据报告。您可以使用它来浏览应用程序的大多数状态。 打开Observatory有2种方式: 在androidStudio中打开Flutter Inspector面板,点击小闹钟图标,如下图 再命令行中运行flutter run,应用启动成功后,命令行中会输出一个url,把url copy到浏览器即可。 打开Observatory面板,要先选择isolate,表示当前应用。 主要页面下面是性能优化常关注的几个页面。 CPU Prof...
RxBus:谁动了我的线程
我们在线上收集到一些异常:在某个RxBus的事件监听回调中抛出了在子线程更改UI的异常。可我们去查看这个RxBus.send()所在的线程的确就是主线程。一般来说订阅事件发生在哪个线程,如果没有修改过线程,那回调也会在同一个线程。事出幺蛾必有妖,我们还是要去看看代码。 尝试复现1234567891011121314151617181920class RxBusTest { @Test @Throws(Exception::class) fun send() { RxBus.toObservable(SomeEvent::class.ja...
Flutter 跑马灯
本文介绍2种跑马灯效果的实现:连贯式,非连贯式。效果如下图 连贯式实现思路:写一个无限长度的列表(ListView),通过一个定时任务(Timer)每隔一定时间滑动一定距离(ScrollController)。这里面比较tricky的是滑动距离的设置,你不能直接设置一个和时间成正比的值。因为页面可能存在息屏或者跳转到其它页面的不可见状态,此时是不希望有滑动的,就算你给他设置了滑动,系统并不会去滑动它 123456789101112131415161718192021222324252627282930313233343536class _MarqueeContinuousState e...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More...
avatar
akindone
witness me
FRIENDS
friendA friendB