摘要:
简介 某些音乐播放或者视频播放的界面上,资源还在加载时,进度条的原点(thumb)会显示一个转圈的效果。 资源加载完成后,又切换回静态效果。这个效果增强了用户体验。 一般来说有美术人员负责设计和切图。尝试实现时,我们可以使用使用drawable,来模拟实现这个转圈的效果。 示例 dimens.xml 阅读全文
摘要:
WebRTC WebRTC(Web Real-Time Communication)。Real-Time Communication,实时通讯。 WebRTC能让web应用和站点之间选择性地分享音视频流。在不安装其它应用和插件的情况下,完成点对点通信。 WebRTC背后的技术被实现为一个开放的Web 阅读全文
摘要:
给现有的Android应用工程中引入Compose。需要对gradle进行设置。引入后使用Compose验证一下。 阅读全文
摘要:
引入 Jetpack Compose 示例工程 去GitHub上找到Compose的示例工程 https://github.com/android/compose-samples ,clone到本地 网络不好的同学也可以去gitee上面搜索「compose-samples」,也能找到这个示例工程。 阅读全文
摘要:
Duplicate class android.support.v4.widget.TintableCompoundButton found in modules classes.jar 一个旧Android工程,把gradle中support-v4改成androidx的引用,编译报错 Duplic 阅读全文
摘要:
运行环境 Android Studio 4.1.1 compileSdkVersion 29 buildToolsVersion "29.0.2" 点击绿色锤子「make project」出现以下错误 Default interface methods are only supported star 阅读全文
摘要:
Android官方推荐使用协程来处理异步问题。以下是协程的特点: 轻量:单个线程上可运行多个协程。协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。 内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。 内置取消支持:取消操作会自动在运行中的整个协程层次结构 阅读全文
摘要:
Kotlin协程基础,使用协程。阻塞与非阻塞:delay是非阻塞的,Thread.sleep是阻塞的。显式使用runBlocking协程构建器来阻塞。单元测试。有时候需要等待协程执行完毕。可以用join()方法。这个方法会暂停当前的协程,直到执行完毕。结构化的并发。作用域构建器coroutineScope。提取函数重构。协程是轻量的,用示例来验证。全局协程像守护线程,在GlobalScope中启动的活动协程并不会使进程保活。它们就像守护线程。 阅读全文
摘要:
开发环境 IntelliJ IDEA 2021.2.2 (Community Edition) Kotlin: 212-1.5.10-release-IJ5284.40 介绍Kotlin中的协程。用一个例子来展示协程的基本用法。 第一个例子 新建工程 我们使用的是社区版IntelliJ IDEA 2 阅读全文
摘要:
Android教程,View.post方法流程分析。View.post与Handler的post方法有何不同?先来简单看一下Handler的post(Runnable)方法。这个方法是将一个Runnable加到消息队列中,并且会在这个handler关联的线程里执行。可以看到一开始就查询是否有attachInfo,如果有,则用attachInfo.mHandler来执行这个任务。 阅读全文
摘要:
本文主要使用kotlin,讨论Android开发中的线程池用法。 我们想使用线程的时候,可以直接创建子线程并启动 Thread { Log.d("rfDev", "rustfisher said: hello") }.start() 不想每次都创建新的子线程 如果有大量的异步任务,不想每次都创建子线 阅读全文
摘要:
运行环境与工具 jdk1.8.0 macOS 11.4 IDEA 操作系统可以在同一时刻运行多个程序。例如一边播放音乐,一边下载文件和浏览网页。操作系统将cpu的时间片分配给每一个进程,给人一种并行处理的感觉。 一个多线程程序可以同时执行多个任务。通常,每一个任务称为一个线程(thread),它是线 阅读全文
摘要:
an.rustfisher.com有很多内容,很多页面。如果用一个树状图把所有页面展示出来会是什么效果? 第一时间想到了ECharts。 最后效果: https://an.rustfisher.com/an-tree.html 数据处理 数据来源于配置文件。我们只需要把内容读出来,整理成EChart 阅读全文
摘要:
App有时可能需要定期运行某些工作。例如,可能要定期备份数据、上传信息到服务器,定期获取新的内容等等。 在app运行期间,我们使用Handler也可以完成定期的功能。在这里我们介绍WorkManager使用定时任务的方法。 前面我们介绍了WorkManager的使用方法,约束和延迟等。本文介绍Wor 阅读全文
摘要:
WorkManager工作约束,延迟与查询工作 本文可能会混用“工作”与“任务”这两个词。 本文例子使用Kotlin 准备一个工作类(任务)UploadWorker2 class UploadWorker2(context: Context, params: WorkerParameters) : 阅读全文
摘要:
WorkManager使用入门 WorkManager提供了任务调度功能,我们可以对工作进行标记或命名。 我们用一个示例来演示如何使用WorkManager。本文使用Kotlin。 入门示例 gradle引入依赖 将以下依赖项添加到应用模块的build.gradle文件中 dependencies 阅读全文
摘要:
Android补间动画。旋转,位移,缩放,透明度变化。 阅读全文
摘要:
帧动画 使用一系列不同的图片,然后像一卷胶卷一样按顺序播放,这是一种传统的动画,也可称为帧动画。也可以比喻为像一卷胶卷一样按顺序播放。 播放起来,有点像在看gif图。 本文介绍使用AnimationDrawable类来实现动画效果。 为了开发方便,我们可以在xml中指定动画各个帧的信息。 使用背景图 阅读全文
摘要:
bug描述 我们使用NestJS写后台代码,给微信公众号提供服务。 用户给公众号发消息时,公众号会显示“该公众号提供的服务出现故障”。 虽然后台代码可以正常处理业务,但这个提示非常影响用户体验。 检查 根据微信公众号文档给的提示,出现这个问题的原因是没有给微信服务器返回正确的信息。 微信服务器需要的 阅读全文
摘要:
使用NestJs提供WebSocket服务。新建一个项目来演示功能。实用性指南。 阅读全文