Android 触摸反馈机制源码解析

“定义你的术语……,否则我们将永远无法相互理解。”这是来自作家伏尔泰的忠告。Android 中有关输入事件的表述中,常见以下术语:触摸事件、轻触手势、输入事件、运动事件、触觉反馈、手势处理、触摸反馈等,这就不可避免带来理解上的混乱……

Android MeasureSpec 简介

MeasureSpce 机制下,Android View 整体测量逻辑可以总结为一句话:向下传递约束,向上传递尺寸。

一张图带你了解 View 的绘制流程

关于 Android View 绘制流程是个老生常谈的主题了,相关的优秀博客也有很多,本篇博客希望通过一张时序图作为主线,尽量以好记、好看、好讲的方式简要表述 View 绘制流程一些关键节点。

Android App 代码结构模块化

这篇博客主要介绍我在 MeetMusic 项目中对模块的划分。关于其它相关的架构、框架及开发理念,我在其他博客中也有提及,此处不再赘述。

Android 权限

应用权限有助于保护对受限数据(例如系统状态和用户的联系信息)和受限操作(例如连接到已配对的设备并录制音频)的访问/执行权限,从而为保护用户隐私提供支持。

Android AIDL 服务端客户端双向死亡监听和”连接后执行”的几种尝试

有关 AIDL 详细介绍可直接阅读官网的 Android 接口定义语言 (AIDL) ,这篇博客,就让我们专注于通信的进程双方死亡的互相监听和对 AIDL 接口使用时的安全封装。

ViewBinding 封装

ViewBinding 视图绑定功能可让您更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它会为该模块中显示的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。

ZoomImageView 实现指南(上篇)

ZoomImageView 是一个自定义的 ImageView 控件,用于实现对图片的手势缩放、双击缩放以及放大后的平移查看等功能。在我之前的 MeetPhoto 项目中,图片预览功能使用了一个开源 ZoomImageView 控件(这个控件基于 PhotoView 实现,因其代码量较少而选择它)。但我发现这个控件在某些方面的用户体验并不理想,所以我决定对其进行优化,便是这篇博客的由来。

Android Scroller

Android Scroller 是一个帮助 View 滚动的辅助类,Scroller 本身不会去滚动 View,它只是一个滚动计算辅助类,用于跟踪控件滑动的轨迹(Scroller 滚动分为两种类型,SCROLL_MODE 类型本质上是一个插值器,FLING_MODE 类型模拟物理世界的摩擦力,计算出减速度作用于滚动)。

Android 动画插值器

插值器定义了如何根据动画当前已播放时间来计算属性的值。例如,您可以指定动画在整个动画中线性播放,即动画在整个过程中均匀移动,也可以指定动画使用非线性时间,例如在动画开始时加速,在动画结束时减速。