- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 一文掌握 Object 类里的所有方法(wait、notify、finalize)
本文讲解了 Object 里面的所有方法,包含常用的5个方法:getClass、hashCode、equals、clone、toString,除此之外本文重点讲解了 Object 中与线程相关的方法:wait、wait(long)、notify、notifyAll。对于线程的等待和唤醒进行了详细的讲解。最后介绍了 finalize 方法,介绍了该方法的使用方式和替代方案。
2024-06-29 13:25:47 1082 2
原创 制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)
本文利用注解和反射的巧妙结合,在运行时进行事件和 View 的绑定,实现一个运行时的事件绑定注解框架。以 @OnClick 和 @OnLongClick 为例,读者跟着文章一步步将实现自己的运行时的事件绑定注解。
2024-06-15 13:37:29 1022 2
原创 制作自己的 ButterKnife(使用 AutoService 和 APT 注解处理器在编译期生成 Java 代码)
本文从原理的角度介绍了 ButterKnife 的方方面面。通过阅读此文,读者可以自己制作自己的 ButterKnife,并掌握诸如 APT、AutoService、SPI 等相关概念。
2024-06-04 21:05:55 671 3
原创 这一文,关于 Java 泛型的点点滴滴 二 (extends、super、<?> 通配符、泛型与反射)
本文在上一篇的基础上,介绍了 extends 、super 、?等泛型中的通配符,并在最后介绍了使用泛型获取泛型信息,阅读本文大家会对 Java 泛型有一个更深的理解。
2024-07-28 11:37:24 1234
原创 这一文,关于 Java 泛型的点点滴滴 一(泛型基础、类型擦除)
泛型是 Java 中的非常重要的点,本文将对 Java 中的泛型进行全面的介绍,并使用代码示例演示 Java 泛型的使用方式。并特别介绍了 extends 、super 、?等泛型中的通配符,阅读本文大家会对 Java 泛型有一个更深的理解。
2024-07-27 22:59:45 1161
原创 一文掌握 Thread 类里的常用方法(yield、interrupted、join、daemon)
本文介绍了 Java 中的 Thread 中的一些常用方法,这些常用方法在多线程编程中极为重要。本文针对每个方法都用了不同的讲解方式,言简意赅,值得一看
2024-07-21 17:32:29 981
原创 Java基础知识之 使用 Cleaner 替代 finalize
本文介绍了Object.finalize 方法,并详细说明了这个方法替代方案:Cleaner,并通过一个完整的例子,介绍了这个方法是如何进行 Java 对象的清理工作的。
2024-07-18 23:44:12 1038
原创 这可能是本年度最好用的 Dagger 使用教程 四(使用 @Builder 和 @Factory 创建依赖注入器)
本文接着前面三篇文章讲解 Dagger 中的注入器的两种创建方式 @Factory 和 @Builder,其也对应了工厂模式和建造者模式。
2024-07-16 22:51:23 451
原创 这可能是本年度最好用的 Dagger 使用教程 三(依赖注入器的依赖、子组件、Lazy、Provider)
在上一个文章中,我们介绍了 Dagger 中的限定和范围注解,现在我们将视线转移到依赖注入器来,先介绍这个组件的依赖的两种方式,再介绍两个常用的类型。
2024-07-15 09:46:50 1670
原创 这可能是本年度最好用的 Dagger 使用教程 二(限定注解 @Named、@Qulifier 和 范围注解 @Singleton、@Scope)
本文紧接着上一篇 Dagger 的基本使用,介绍了 Dagger 中的限定注解和范围注解这两个概念,并演示了其注解的使用方法。
2024-07-14 10:55:30 921
原创 Java 基础知识之 依赖注入(Dependency Injection)
本文介绍了在 Java 开发中常用的 依赖注入 设计模式的基本概念,并演示了使用和不使用依赖注入时代码的区别及影响,详细说明了依赖注入的4种方式,最后介绍了几个常用的依赖注入框架。
2024-07-05 23:29:00 1487
原创 Java 基础知识之 switch 语句和 yield 关键字
本文讲解 Java 中 switch 关键字的用法,包括其传统用法和 Java 12 之后新添加的 switch 表达式,并演示了 yield 关键字。
2024-07-03 23:17:50 735 2
原创 Java 基础知识之 深拷贝与浅拷贝(Cloneable接口、clone方法)
本文讲解 Java中深拷贝和浅拷贝的区别,并有示例演示其中区别。对于 Cloneable 接口和 clone 方法也进行了解释。
2024-07-02 09:29:34 951
原创 代理模式与静态代理、动态代理的实现(Proxy.newProxyInstance、InvocationHandler)
代理模式是23种设计模式中比较常用的一种,属于结构型设计模式。在 Android 领域中,有大量的库都使用了代理模式,例如 Retrofit 使用动态代理来实现 API 接口的调用,Dagger 使用代码生成和反射机制来创建依赖注入的代理对象等等。本文将带你了解代理模式,并且介绍静态代理和动态代理的实现方式。
2024-06-12 15:34:59 1240 2
原创 Java Reflection 反射使用 完全指南
Java 中的反射大家都不陌生,有很多很好的文章都进行了讲解,但是很难找到一篇文章能完全解释反射的所有用法,特别是反射获取这个对象的注解的信息和泛型信息,往往都停留在了获取类的函数、方法,构造上。所以这篇文章将全面讲解 Java 反射中的所有用法,特别是对于类中的注解的获取上。另外,本文章不会对反射的原理进行讲解,看完本文你应该只能学会怎么用反射,至于其原理,本文不会涉及。
2024-06-12 15:26:43 1099 1
原创 Java 和 C 中 测量代码耗时 最佳实践
测量代码耗时是在开发过程中不可避免会遇到的问题。本文讲解了在 Java 和 C 语言中常用的几种测试代码耗时的方法,简单易用,值得收藏。
2022-08-16 22:27:35 407 1
原创 Android 源代码在线查看 目录结构 不完全指南
分享几个可以在线查看Android 源代码的网站:Android 源代码官方查看网站:https://cs.android.com/;AOSPXRef 在线查看源代码:http://aospxref.com/;AndroidXRef 在线查找源代码:http://androidxref.com/;
2022-01-19 16:14:43 7341 1
原创 快速上手 TinyXML-2 不完全教程
TinyXML-2 不完全教程XML 作为程序开发中非常常用的数据文档之一,各个语言或是开发环境都有对应的用于处理 XML 文件的库。在 C++ 语言中,TinyXML-2 就是这样的一个库。TinyXML-2 是一个简单,小巧,高性能的 C++ 的 XML 解析器,它能够容易地集成到其他程序中。与 TinyXML-2 有关的两个网页如下:GitHub 主页:https://github.com/leethomason/tinyxml2在线帮助文档:http://leethomason.git
2022-01-08 16:16:42 4239 7
原创 记录 NDK JNI 的崩溃 Fatal signal 5 (SIGTRAP), code 1 in tid
在 Android 写 CPP 的代码时碰到了一个崩溃的问题,且崩溃日志只有下面的一行:Fatal signal 5 (SIGTRAP), code 1 in tid 32450后来在经过检查时才发现是由于有一个函数是定义了返回值的,但是实际上却没有返回任何东西导致的。即,JNI 函数或者使用到的 C++ 函数缺少指定的返回值。(也很纳闷为什么这种情况下编译都能过)参考了这个博文:https://blog.csdn.net/whartonyang/article/details/10692685
2022-01-05 21:03:11 2757
原创 使用 Xcode 配置 OpenGL 开发环境
前提准备在打开 Xcode 之前,我们需要准备两个库:GLFW 和 GLAD。这是开发 OpenGL 需要依赖的库,所以先看看如何准备好这两个库吧:GLFW在我们画出任何效果之前,首先要做的就是创建一个OpenGL上下文和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地将这些操作抽象出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针对OpenGL的。这些库节省了我们书写操作系
2021-01-13 20:44:36 1732 22
原创 Android 应用的版本兼容 了解一下(理解 minSdkVersion、targetSdkVersion、maxSdkVersion、compileSdkVersion)
前言总所周知,Android 适用于众多类型的设备,从手机到平板电脑和电视都能搭载使用。为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。设备兼容性:设备兼容 Android 的前提是它可以正常运行针对 Android 执行环境编写的应用。应用兼容性:针对市面上千奇百怪的 Android 设备,应用是否兼容每一种可能的设备配置。对于Android 应用开发者来说 ,我们无需担
2021-01-09 17:04:25 13205 8
原创 对于 MVP 应用架构的理解及其优化改造
MVP 架构MVP架构由MVC发展而来。在MVP中,M代表Model,V代表View,P代表Presenter。Model 负责获取数据,数据的来源可以是网络或本地数据库等;View 负责界面数据的展示,与用户进行交互;Presenter 是Model与View之间的通信的桥梁,将Model与View分离开来,也是业务进行实现的地方;这三个层面之间的关系如下:我们先简单用一个简单...
2020-10-27 15:09:27 464
mips[64]el-linux-android-4.9.zip
2020-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人