自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李斯维的博客空间

都是自己的一些东西,不好不好,还需努力。。。

  • 博客(53)
  • 资源 (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 1016 2

原创 制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)

本文利用注解和反射的巧妙结合,在运行时进行事件和 View 的绑定,实现一个运行时的事件绑定注解框架。以 @OnClick 和 @OnLongClick 为例,读者跟着文章一步步将实现自己的运行时的事件绑定注解。

2024-06-15 13:37:29 985 2

原创 制作自己的 ButterKnife(使用 AutoService 和 APT 注解处理器在编译期生成 Java 代码)

本文从原理的角度介绍了 ButterKnife 的方方面面。通过阅读此文,读者可以自己制作自己的 ButterKnife,并掌握诸如 APT、AutoService、SPI 等相关概念。

2024-06-04 21:05:55 629 3

转载 一张图 详解第一性原理

一张图 详解第一性原理

2024-07-21 21:00:34 135

原创 一文掌握 Thread 类里的常用方法(yield、interrupted、join、daemon)

本文介绍了 Java 中的 Thread 中的一些常用方法,这些常用方法在多线程编程中极为重要。本文针对每个方法都用了不同的讲解方式,言简意赅,值得一看

2024-07-21 17:32:29 930

转载 一张图 介绍一些好用的知识管理笔记应用

一张图 介绍一些好用的知识管理笔记应用

2024-07-18 23:46:49 104

原创 Java基础知识之 使用 Cleaner 替代 finalize

本文介绍了Object.finalize 方法,并详细说明了这个方法替代方案:Cleaner,并通过一个完整的例子,介绍了这个方法是如何进行 Java 对象的清理工作的。

2024-07-18 23:44:12 952

转载 一张图 给孩子解释下什么是云计算

一张图给孩子解释什么是云计算

2024-07-16 22:56:26 143

原创 这可能是本年度最好用的 Dagger 使用教程 四(使用 @Builder 和 @Factory 创建依赖注入器)

本文接着前面三篇文章讲解 Dagger 中的注入器的两种创建方式 @Factory 和 @Builder,其也对应了工厂模式和建造者模式。

2024-07-16 22:51:23 376

转载 一张图 给孩子解释下什么是DDoS

一张图 给孩子解释下什么是DDoS

2024-07-15 09:47:34 161

原创 这可能是本年度最好用的 Dagger 使用教程 三(依赖注入器的依赖、子组件、Lazy、Provider)

在上一个文章中,我们介绍了 Dagger 中的限定和范围注解,现在我们将视线转移到依赖注入器来,先介绍这个组件的依赖的两种方式,再介绍两个常用的类型。

2024-07-15 09:46:50 1506

转载 一张图 分享量化金融学习路径

一张图 分享量化金融学习路径

2024-07-14 10:58:30 30

原创 这可能是本年度最好用的 Dagger 使用教程 二(限定注解 @Named、@Qulifier 和 范围注解 @Singleton、@Scope)

本文紧接着上一篇 Dagger 的基本使用,介绍了 Dagger 中的限定注解和范围注解这两个概念,并演示了其注解的使用方法。

2024-07-14 10:55:30 839

转载 一张图 给孩子解释下什么是SEO

一张图 给孩子解释下什么是SEO

2024-07-08 21:54:35 191

转载 一张图 推荐几个玩游戏学习英语的网站

一张图 推荐几个玩游戏学习英语的网站

2024-07-07 23:54:17 124

原创 这可能是本年度最好用的 Dagger 使用教程 一(基本使用)

本文从一个例子入手,解释了依赖注入,和 Dagger 这个库的初步使用方式。

2024-07-07 23:49:58 1437

转载 一张图 简单总结 Git 和 GitHub 的区别

一张图简单总结 Git 和 GitHub 的区别

2024-07-05 23:33:37 115

原创 Java 基础知识之 依赖注入(Dependency Injection)

本文介绍了在 Java 开发中常用的 依赖注入 设计模式的基本概念,并演示了使用和不使用依赖注入时代码的区别及影响,详细说明了依赖注入的4种方式,最后介绍了几个常用的依赖注入框架。

2024-07-05 23:29:00 1009

转载 一张图 对比4个主流后端语言

一张图 对比4个主流后端语言

2024-07-03 23:23:30 95

原创 Java 基础知识之 switch 语句和 yield 关键字

本文讲解 Java 中 switch 关键字的用法,包括其传统用法和 Java 12 之后新添加的 switch 表达式,并演示了 yield 关键字。

2024-07-03 23:17:50 539 2

原创 Java 基础知识之 深拷贝与浅拷贝(Cloneable接口、clone方法)

本文讲解 Java中深拷贝和浅拷贝的区别,并有示例演示其中区别。对于 Cloneable 接口和 clone 方法也进行了解释。

2024-07-02 09:29:34 923

转载 一张图 给孩子解释下什么是 API

一张图 给孩子解释下什么是API

2024-07-02 09:23:10 88

转载 一张图 给孩子解释下什么是CDN

一张图,给孩子介绍下什么是CDN

2024-06-29 13:44:36 32

转载 一张图 给孩子解释下什么是Cookie

一张图 给孩子解释下什么是Cookie

2024-06-29 11:14:21 30

原创 代理模式与静态代理、动态代理的实现(Proxy.newProxyInstance、InvocationHandler)

代理模式是23种设计模式中比较常用的一种,属于结构型设计模式。在 Android 领域中,有大量的库都使用了代理模式,例如 Retrofit 使用动态代理来实现 API 接口的调用,Dagger 使用代码生成和反射机制来创建依赖注入的代理对象等等。本文将带你了解代理模式,并且介绍静态代理和动态代理的实现方式。

2024-06-12 15:34:59 1193 2

原创 Java Reflection 反射使用 完全指南

Java 中的反射大家都不陌生,有很多很好的文章都进行了讲解,但是很难找到一篇文章能完全解释反射的所有用法,特别是反射获取这个对象的注解的信息和泛型信息,往往都停留在了获取类的函数、方法,构造上。所以这篇文章将全面讲解 Java 反射中的所有用法,特别是对于类中的注解的获取上。另外,本文章不会对反射的原理进行讲解,看完本文你应该只能学会怎么用反射,至于其原理,本文不会涉及。

2024-06-12 15:26:43 1050 1

原创 Java 和 C 中 测量代码耗时 最佳实践

测量代码耗时是在开发过程中不可避免会遇到的问题。本文讲解了在 Java 和 C 语言中常用的几种测试代码耗时的方法,简单易用,值得收藏。

2022-08-16 22:27:35 395 1

原创 Android 源代码在线查看 目录结构 不完全指南

分享几个可以在线查看Android 源代码的网站:Android 源代码官方查看网站:https://cs.android.com/;AOSPXRef 在线查看源代码:http://aospxref.com/;AndroidXRef 在线查找源代码:http://androidxref.com/;

2022-01-19 16:14:43 7211 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 3971 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 2709

原创 使用 Xcode 配置 OpenGL 开发环境

前提准备在打开 Xcode 之前,我们需要准备两个库:GLFW 和 GLAD。这是开发 OpenGL 需要依赖的库,所以先看看如何准备好这两个库吧:GLFW在我们画出任何效果之前,首先要做的就是创建一个OpenGL上下文和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地将这些操作抽象出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针对OpenGL的。这些库节省了我们书写操作系

2021-01-13 20:44:36 1619 22

原创 Android 应用的版本兼容 了解一下(理解 minSdkVersion、targetSdkVersion、maxSdkVersion、compileSdkVersion)

前言总所周知,Android 适用于众多类型的设备,从手机到平板电脑和电视都能搭载使用。为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。设备兼容性:设备兼容 Android 的前提是它可以正常运行针对 Android 执行环境编写的应用。应用兼容性:针对市面上千奇百怪的 Android 设备,应用是否兼容每一种可能的设备配置。对于Android 应用开发者来说 ,我们无需担

2021-01-09 17:04:25 12449 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 433

原创 解决方案: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android

问题描述最近在打开一个 Android 工程时,在导入到 Android Studio 后很快就会出现如下问题:问题原因这个问题的最根本原因是因为本地的 NDK 版本过高,而之前的工程在编译时使用的是老版本的 Gradle 插件,这样在打开工程进行同步时,老版本的插件会检查 NDK 中的两个工具链:mips64el-linux-android-4.9mipsel-linux-andro...

2020-03-07 14:01:49 1489

原创 入门 JNI (Android NDK 教程 二)

第一讲用一些概念来理解来原生开发能做什么,有哪些功能。那么从现在开始,就开始真正进入编码阶段了,作为 Android NDK 开发,最先需要知道的,就是 JNI 了。它是一座桥梁,是 Java 代码与 C 代码之间的桥梁,是 Android 开发通往原生开发的必要路径。因此,这一讲的主要内容就对 JNI 有一个初步的认识。初识 JNIJNI 全称是 Java Native Interface(...

2019-03-11 10:59:55 342

原创 Android NDK 简介(Android NDK 教程 一)

Android NDK 简介Android 上的 C++ 简介NDK 是什么NDK 提供的组件Android NDK 的目录结构Android NDK 构建系统所提供的功能Android 上的 C++ 简介这是 Android NDK 开发的第一篇文章,内容当然都是一些简单的概念性的问题。但是像 SDK 安装,环境变量配置什么的,也都是大家应该懂的内容,这里就不在赘述了。后面将会对 Andro...

2019-03-07 21:03:13 836

原创 Android上最简单的IPC方案——Messenger

每个系统都会有相应的 IPC 机制以方便开发者来进行进程间通讯,Android 中有6中IPC机制。这6种方式各有各的优缺点和适用场景,在开发过程中最合适当前需求的才是最好的。至于它们各自适用场景此处就不详述了。今天主要来讲一讲这几种机制中最简单的一个 Messenger

2017-10-15 11:59:47 1316 1

原创 OkHttp接入HttpDNS,最佳实践

DNS(Domain Name System)即域名解析系统,这个东西说对于开发者来说,应该是没有不知道的。说简单点,这个系统的作用就是将域名解析成IP地址。我们的每一次网络请求,如果是使用域名,那么就是进行域名解析。一个优秀的域名服务应该能够满足两点要求,一个是能够正确的返回IP地址,二就是能够根据网络情况返回所请求的域名最近的服务器IP。

2017-10-14 19:15:20 3728 2

原创 Android解析JSON,你真的需要三方库?

一般情况下,如果服务器返回 JSON 数据,而且你又是做 Android 的,那么你首先想到的可能是GSON,或是fastJson这样的框架。这些框架能够很方便和快速的让我们将 JSON 转换成本地对象,是开发的首选。但是引用三方库也是有代价的,显而易见的就是包体积增大,库的升级等。这个时候,就需要想一想我们是不是必须要使用三方库了。

2017-09-18 23:38:31 728

原创 为什么我的 Android Studio 那么卡

最近换了 Mac Pro 写代码,然而没想到 Android Studio 会在苹果电脑上那么卡。主要表现为3点:正常在 java 文件中写注释时,如果输入中文会很卡;基本无法编辑 build.gradle , 一个输入就卡2分钟;打开 Android Studio 就会内存占用升高,电脑温度升高;本文将为上述3个问题提供一个解决方案。

2017-08-27 21:05:55 866

mips[64]el-linux-android-4.9.zip

此文件用于解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android 的问题。下载后需要将其解压到你的 NDK 目录下的 toolchains 文件夹中。在打开工程就不会遇到这个问题了。 注意此文件仅适用于 MAC。 此文件来源于 Android NDK r17c 版本中的 mips64el-linux-android-4.9 和 mipsel-linux-android-4.9。这也是新版本 NDK 中被删除的两个工具链。

2020-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除