Loading

摘要: Android官方推荐使用协程来处理异步问题。以下是协程的特点: 轻量:单个线程上可运行多个协程。协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。 内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。 内置取消支持:取消操作会自动在运行中的整个协程层次结构 阅读全文
posted @ 2021-09-26 17:09 AnRFDev 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Kotlin协程基础,使用协程。阻塞与非阻塞:delay是非阻塞的,Thread.sleep是阻塞的。显式使用runBlocking协程构建器来阻塞。单元测试。有时候需要等待协程执行完毕。可以用join()方法。这个方法会暂停当前的协程,直到执行完毕。结构化的并发。作用域构建器coroutineScope。提取函数重构。协程是轻量的,用示例来验证。全局协程像守护线程,在GlobalScope中启动的活动协程并不会使进程保活。它们就像守护线程。 阅读全文
posted @ 2021-09-26 09:54 AnRFDev 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 开发环境 IntelliJ IDEA 2021.2.2 (Community Edition) Kotlin: 212-1.5.10-release-IJ5284.40 介绍Kotlin中的协程。用一个例子来展示协程的基本用法。 第一个例子 新建工程 我们使用的是社区版IntelliJ IDEA 2 阅读全文
posted @ 2021-09-24 14:30 AnRFDev 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Android教程,View.post方法流程分析。View.post与Handler的post方法有何不同?先来简单看一下Handler的post(Runnable)方法。这个方法是将一个Runnable加到消息队列中,并且会在这个handler关联的线程里执行。可以看到一开始就查询是否有attachInfo,如果有,则用attachInfo.mHandler来执行这个任务。 阅读全文
posted @ 2021-09-23 09:17 AnRFDev 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 本文主要使用kotlin,讨论Android开发中的线程池用法。 我们想使用线程的时候,可以直接创建子线程并启动 Thread { Log.d("rfDev", "rustfisher said: hello") }.start() 不想每次都创建新的子线程 如果有大量的异步任务,不想每次都创建子线 阅读全文
posted @ 2021-09-13 17:25 AnRFDev 阅读(100) 评论(0) 推荐(0) 编辑
摘要: Java多线程 运行环境与工具 jdk1.8.0 macOS 11.4 IDEA 操作系统可以在同一时刻运行多个程序。例如一边播放音乐,一边下载文件和浏览网页。操作系统将cpu的时间片分配给每一个进程,给人一种并行处理的感觉。 一个多线程程序可以同时执行多个任务。通常,每一个任务称为一个线程(thread),它是线 阅读全文
posted @ 2021-09-07 12:14 AnRFDev 阅读(258) 评论(0) 推荐(1) 编辑
摘要: an.rustfisher.com有很多内容,很多页面。如果用一个树状图把所有页面展示出来会是什么效果? 第一时间想到了ECharts。 最后效果: https://an.rustfisher.com/an-tree.html 数据处理 数据来源于配置文件。我们只需要把内容读出来,整理成EChart 阅读全文
posted @ 2021-09-02 17:13 AnRFDev 阅读(379) 评论(0) 推荐(1) 编辑
摘要: App有时可能需要定期运行某些工作。例如,可能要定期备份数据、上传信息到服务器,定期获取新的内容等等。 在app运行期间,我们使用Handler也可以完成定期的功能。在这里我们介绍WorkManager使用定时任务的方法。 前面我们介绍了WorkManager的使用方法,约束和延迟等。本文介绍Wor 阅读全文
posted @ 2021-08-30 12:34 AnRFDev 阅读(200) 评论(0) 推荐(0) 编辑
摘要: WorkManager工作约束,延迟与查询工作 本文可能会混用“工作”与“任务”这两个词。 本文例子使用Kotlin 准备一个工作类(任务)UploadWorker2 class UploadWorker2(context: Context, params: WorkerParameters) : 阅读全文
posted @ 2021-08-23 09:35 AnRFDev 阅读(86) 评论(0) 推荐(0) 编辑
摘要: WorkManager使用入门 WorkManager提供了任务调度功能,我们可以对工作进行标记或命名。 我们用一个示例来演示如何使用WorkManager。本文使用Kotlin。 入门示例 gradle引入依赖 将以下依赖项添加到应用模块的build.gradle文件中 dependencies 阅读全文
posted @ 2021-08-19 13:10 AnRFDev 阅读(199) 评论(0) 推荐(0) 编辑
摘要: Android补间动画。旋转,位移,缩放,透明度变化。 阅读全文
posted @ 2021-08-11 17:27 AnRFDev 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 帧动画 使用一系列不同的图片,然后像一卷胶卷一样按顺序播放,这是一种传统的动画,也可称为帧动画。也可以比喻为像一卷胶卷一样按顺序播放。 播放起来,有点像在看gif图。 本文介绍使用AnimationDrawable类来实现动画效果。 为了开发方便,我们可以在xml中指定动画各个帧的信息。 使用背景图 阅读全文
posted @ 2021-08-05 15:20 AnRFDev 阅读(131) 评论(0) 推荐(0) 编辑
摘要: bug描述 我们使用NestJS写后台代码,给微信公众号提供服务。 用户给公众号发消息时,公众号会显示“该公众号提供的服务出现故障”。 虽然后台代码可以正常处理业务,但这个提示非常影响用户体验。 检查 根据微信公众号文档给的提示,出现这个问题的原因是没有给微信服务器返回正确的信息。 微信服务器需要的 阅读全文
posted @ 2021-08-04 08:56 AnRFDev 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 使用NestJs提供WebSocket服务。新建一个项目来演示功能。实用性指南。 阅读全文
posted @ 2021-07-27 09:44 AnRFDev 阅读(698) 评论(0) 推荐(1) 编辑
摘要: 图表有很多个组成部分,例如标题、x/y轴名称、大刻度小刻度、线条、数据点、注释说明等等。 我们来看官方给的图,图中标出了各个部分的英文名称 Matplotlib提供了很多api,开发者可根据需求定制图表的样式。 前面我们设置了标题和x/y轴的名称,本文介绍更多设置其他部分的方法。 绘图 先绘制一个事 阅读全文
posted @ 2021-07-22 10:30 AnRFDev 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 触摸事件 假设给整个Canvas添加了事件监听。用网页模拟时,鼠标移动,点击子node都会监听到。 start() { this._cfgTouchField(); } _onTouchFieldDown(e) { cc.log('table', '_onTouchFieldDown'); } _o 阅读全文
posted @ 2021-01-05 01:28 AnRFDev 阅读(646) 评论(0) 推荐(0) 编辑
摘要: ccc的坐标系 ccc提供了api,在世界坐标和本地坐标之间可以相互转换。 let postion = node.position; // postion是在父节点中的坐标 cc.log(name, 'position (', postion.x.toFixed(2), ',', postion.y 阅读全文
posted @ 2021-01-05 01:27 AnRFDev 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 我们要实现的效果是,按住并拖动一个小物体,物体跟随手指(鼠标)移动。 拖到指定位置放下。如果没有到指定位置,则回到上一个位置。 新建脚本DragToTarget.ts,挂到预制体上。 const { ccclass, property } = cc._decorator; @ccclass expo 阅读全文
posted @ 2021-01-05 00:53 AnRFDev 阅读(449) 评论(1) 推荐(1) 编辑
摘要: 我们要实现的效果是,按住并拖动一个小物体,物体跟随手指(鼠标)移动。 代码DragToAnywhere.ts const { ccclass, property } = cc._decorator; @ccclass export default class DragToAnywhere exten 阅读全文
posted @ 2021-01-04 23:45 AnRFDev 阅读(1230) 评论(0) 推荐(0) 编辑
摘要: 使用链控制线性组 链是一组视图,这些视图通过双向位置约束条件相互链接到一起。链中的视图可以垂直或水平分布。 1. Spread:视图是均匀分布的(在考虑外边距之后)。这是默认值。 2. Spread inside:第一个和最后一个视图固定在链两端的约束边界上,其余视图均匀分布。 3. Weighte 阅读全文
posted @ 2020-04-13 09:04 AnRFDev 阅读(1095) 评论(0) 推荐(0) 编辑