- 博客(66)
- 资源 (1)
- 收藏
- 关注

原创 深度解析 Android Matrix 变换(一):缩放 scale、旋转 rotate、平移 translate
在 Android 开发中,Canvas 是自定义 View 绘制的核心工具,而 变换(Transformations) 让我们可以灵活地操控图像,创造丰富的视觉效果。这些变换包括 旋转(rotate)、缩放(scale) 还是 平移(translate),合理地使用这些变换不仅可以优化绘制流程,还能减少资源消耗。在这篇文章中,将讲解这些变换的底层原理。
2025-03-15 11:40:09
1049

原创 制作自己的 ButterKnife(使用 AutoService 和 APT 注解处理器在编译期生成 Java 代码)
本文从原理的角度介绍了 ButterKnife 的方方面面。通过阅读此文,读者可以自己制作自己的 ButterKnife,并掌握诸如 APT、AutoService、SPI 等相关概念。
2024-06-04 21:05:55
764
3
原创 深度解析 Android Matrix 变换(二):组合变换 pre、post
文章介绍了 Android 中 Matrix 的组合变换,重点介绍了 preXXX 和 postXXX 方法的使用及其区别。并说明了变换顺序应为先缩放,再旋转,后平移,以确保效果符合预期。文章通过代码示例和动画展示了如何构建组合变换矩阵。
2025-03-23 16:56:09
1068
原创 Android 动画 ValueAnimator 的使用和那些坑
在进行属性动画的开发中, ObjectAnimator 是最常用到的类,它可以直接对任意对象的任意属性进行动画操作。本文讲解 ObjectAnimator 的常规使用以及其中的一些坑。
2025-02-23 18:01:39
1001
原创 这一文,关于 Java 泛型的点点滴滴 二 (extends、super、<?> 通配符、泛型与反射)
本文在上一篇的基础上,介绍了 extends 、super 、?等泛型中的通配符,并在最后介绍了使用泛型获取泛型信息,阅读本文大家会对 Java 泛型有一个更深的理解。
2024-07-28 11:37:24
1522
原创 这一文,关于 Java 泛型的点点滴滴 一(泛型基础、类型擦除)
泛型是 Java 中的非常重要的点,本文将对 Java 中的泛型进行全面的介绍,并使用代码示例演示 Java 泛型的使用方式。并特别介绍了 extends 、super 、?等泛型中的通配符,阅读本文大家会对 Java 泛型有一个更深的理解。
2024-07-27 22:59:45
1236
原创 一文掌握 Thread 类里的常用方法(yield、interrupted、join、daemon)
本文介绍了 Java 中的 Thread 中的一些常用方法,这些常用方法在多线程编程中极为重要。本文针对每个方法都用了不同的讲解方式,言简意赅,值得一看
2024-07-21 17:32:29
1119
原创 Java基础知识之 使用 Cleaner 替代 finalize
本文介绍了Object.finalize 方法,并详细说明了这个方法替代方案:Cleaner,并通过一个完整的例子,介绍了这个方法是如何进行 Java 对象的清理工作的。
2024-07-18 23:44:12
1153
原创 这可能是本年度最好用的 Dagger 使用教程 四(使用 @Builder 和 @Factory 创建依赖注入器)
本文接着前面三篇文章讲解 Dagger 中的注入器的两种创建方式 @Factory 和 @Builder,其也对应了工厂模式和建造者模式。
2024-07-16 22:51:23
636
原创 这可能是本年度最好用的 Dagger 使用教程 三(依赖注入器的依赖、子组件、Lazy、Provider)
在上一个文章中,我们介绍了 Dagger 中的限定和范围注解,现在我们将视线转移到依赖注入器来,先介绍这个组件的依赖的两种方式,再介绍两个常用的类型。
2024-07-15 09:46:50
2037
原创 这可能是本年度最好用的 Dagger 使用教程 二(限定注解 @Named、@Qulifier 和 范围注解 @Singleton、@Scope)
本文紧接着上一篇 Dagger 的基本使用,介绍了 Dagger 中的限定注解和范围注解这两个概念,并演示了其注解的使用方法。
2024-07-14 10:55:30
1115
原创 Java 基础知识之 依赖注入(Dependency Injection)
本文介绍了在 Java 开发中常用的 依赖注入 设计模式的基本概念,并演示了使用和不使用依赖注入时代码的区别及影响,详细说明了依赖注入的4种方式,最后介绍了几个常用的依赖注入框架。
2024-07-05 23:29:00
2867
原创 Java 基础知识之 switch 语句和 yield 关键字
本文讲解 Java 中 switch 关键字的用法,包括其传统用法和 Java 12 之后新添加的 switch 表达式,并演示了 yield 关键字。
2024-07-03 23:17:50
1291
2
原创 Java 基础知识之 深拷贝与浅拷贝(Cloneable接口、clone方法)
本文讲解 Java中深拷贝和浅拷贝的区别,并有示例演示其中区别。对于 Cloneable 接口和 clone 方法也进行了解释。
2024-07-02 09:29:34
1031
原创 一文掌握 Object 类里的所有方法(wait、notify、finalize)
本文讲解了 Object 里面的所有方法,包含常用的5个方法:getClass、hashCode、equals、clone、toString,除此之外本文重点讲解了 Object 中与线程相关的方法:wait、wait(long)、notify、notifyAll。对于线程的等待和唤醒进行了详细的讲解。最后介绍了 finalize 方法,介绍了该方法的使用方式和替代方案。
2024-06-29 13:25:47
1274
3
原创 制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)
本文利用注解和反射的巧妙结合,在运行时进行事件和 View 的绑定,实现一个运行时的事件绑定注解框架。以 @OnClick 和 @OnLongClick 为例,读者跟着文章一步步将实现自己的运行时的事件绑定注解。
2024-06-15 13:37:29
1094
2
原创 代理模式与静态代理、动态代理的实现(Proxy.newProxyInstance、InvocationHandler)
代理模式是23种设计模式中比较常用的一种,属于结构型设计模式。在 Android 领域中,有大量的库都使用了代理模式,例如 Retrofit 使用动态代理来实现 API 接口的调用,Dagger 使用代码生成和反射机制来创建依赖注入的代理对象等等。本文将带你了解代理模式,并且介绍静态代理和动态代理的实现方式。
2024-06-12 15:34:59
1358
2
原创 Java Reflection 反射使用 完全指南
Java 中的反射大家都不陌生,有很多很好的文章都进行了讲解,但是很难找到一篇文章能完全解释反射的所有用法,特别是反射获取这个对象的注解的信息和泛型信息,往往都停留在了获取类的函数、方法,构造上。所以这篇文章将全面讲解 Java 反射中的所有用法,特别是对于类中的注解的获取上。另外,本文章不会对反射的原理进行讲解,看完本文你应该只能学会怎么用反射,至于其原理,本文不会涉及。
2024-06-12 15:26:43
1183
1
原创 Java 和 C 中 测量代码耗时 最佳实践
测量代码耗时是在开发过程中不可避免会遇到的问题。本文讲解了在 Java 和 C 语言中常用的几种测试代码耗时的方法,简单易用,值得收藏。
2022-08-16 22:27:35
450
mips[64]el-linux-android-4.9.zip
2020-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人