Android 夯实基础
文章平均质量分 69
jiet_h
道阻且长,行则将至。
设计做得再漂亮,代码写得再完美,项目做得再符合标准,一旦项目亏本,产品投入大于产出,那整体就是扯淡!一切必须得成功!------Big Skipper
展开
-
使用 LooperPrinter 监控 Android 应用的卡顿
在 Android 开发中,主线程(UI线程)的卡顿直接影响用户体验。`LooperPrinter` 是一种有效的工具,可以帮助我们监测和识别这些卡顿。下面是如何实现 `LooperPrinter` 监控的详细步骤和相应的 Kotlin 代码示例。原创 2024-04-29 16:38:42 · 562 阅读 · 0 评论 -
深入理解 ANR WatchDog 库
ANR WatchDog 是一个用于检测 Android 应用程序中的 ANR (应用程序无响应) 的开源库。本文将深入探讨这个库的工作原理、如何集成到你的应用中,以及它如何帮助你避免用户体验不佳的情况。原创 2024-04-29 15:25:25 · 650 阅读 · 0 评论 -
如何监控ANR
ANR是影响用户体验的严重问题。通过理解ANR的成因和实施有效的监控与预防措施,开发者可以减少其发生的频率,从而提升应用的整体质量和用户满意度。原创 2024-04-29 15:23:09 · 235 阅读 · 0 评论 -
SharedPreferences.Editor 中 apply 与 commit 方法的区别
SharedPreferences.Editor 中 apply 与 commit 方法的区别原创 2024-04-01 11:19:32 · 359 阅读 · 0 评论 -
@InstallIn(SingletonComponent::class) 和 @InstallIn(ApplicationComponent::class) 的区别
@InstallIn(SingletonComponent::class) 和 @InstallIn(ApplicationComponent::class) 的区别原创 2024-04-01 10:08:26 · 180 阅读 · 0 评论 -
Retrofit核心原理
Retrofit是一个类型安全的HTTP客户端库,广泛用于Android和Java应用中,用于简化网络请求和响应的处理。本文将深入探讨Retrofit的核心原理,帮助开发者理解其背后的工作机制。原创 2024-02-28 19:08:07 · 457 阅读 · 0 评论 -
ViewModel 原理
ViewModel是Android Jetpack架构组件的一部分,它的主要目的是管理和存储与UI相关的数据。ViewModel的设计初衷是使数据能够在配置更改(如屏幕旋转)后继续存在。原创 2024-02-28 15:28:15 · 1393 阅读 · 0 评论 -
详解HashMap的底层原理和相关问题回答
在Java编程语言中,HashMap是一种广泛使用的数据结构,它提供了快速的数据存取能力。理解HashMap的底层原理不仅有助于编写更高效的代码,而且还能帮助开发者更好地理解Java集合框架的内部工作机制。原创 2024-02-28 14:12:32 · 750 阅读 · 0 评论 -
详解Kotlin中run、with、let、also与apply的使用和区别
Kotlin作为一种现代、静态类型的编程语言,不仅提供了丰富的特性,还提供了极具表现力的函数:`run`, `with`, `let`, `also`, 和 `apply`。理解这些函数的不同之处对于编写高效、易于维护的代码至关重要。原创 2024-02-27 15:19:25 · 709 阅读 · 0 评论 -
详细对比 inline 和 crossinline
在Kotlin中,inline关键字用于优化高阶函数(即函数作为参数或返回值的函数)。通过将函数的代码在编译时直接插入到调用位置,它能够减少函数调用的开销,尤其是在处理高阶函数时。原创 2024-02-27 15:06:57 · 633 阅读 · 0 评论 -
Android: 深入理解 ‘companion object {}‘
在这篇博客中,我们深入探讨了Kotlin中`companion object`的各个关键方面。我们讨论了`companion object`如何与`@JvmField`注解、匿名内部类、构造函数以及扩展函数一起工作。这些知识将帮助我们更好地理解和使用Kotlin中的`companion object`,从而提升我们的编程效率和代码质量。原创 2024-02-01 10:31:33 · 2393 阅读 · 0 评论 -
Kotlin:用源码来深入理解 ‘StateFlow和SharedFlow的区别和联系‘
在这篇文章中,我们将深入研究Kotlin中的StateFlow和SharedFlow,以及它们的相似之处和不同之处。我们将通过查看它们的源代码来理解它们的工作原理,这将帮助我们更好地理解它们的用途和优势。原创 2024-01-31 17:51:57 · 1357 阅读 · 1 评论 -
Kotlin 协程:用源码来理解 ‘viewModelScope‘
`viewModelScope` 是 Android 架构组件库中 ViewModel 类的一个扩展属性,它为 ViewModel 提供了一个协程作用域。在这个作用域中启动的所有协程都会在 ViewModel 清除时自动取消,防止内存泄漏。原创 2024-01-31 17:12:17 · 1284 阅读 · 0 评论 -
Kotlin 协程:深入理解 ‘lifecycleScope‘
在 Kotlin 协程库中,`lifecycleScope` 是一个关键的概念,它允许我们将协程的生命周期绑定到 Android 组件的生命周期。在本篇博客中,我们将深入探讨 `lifecycleScope` 的工作原理,以及如何在实际的 Kotlin 代码中使用它。原创 2024-01-31 16:56:47 · 1605 阅读 · 0 评论 -
Kotlin 协程:深入理解 ‘async { }‘
`async {}` 是 Kotlin 协程库中的一种强大的异步编程工具,它提供了一种简洁、易读的方式来处理并发和异步操作。通过深入理解 `async {}` 的工作原理和使用方式,我们可以更有效地使用 Kotlin 协程来构建高性能、高可读的并发代码。原创 2024-01-31 16:36:45 · 1512 阅读 · 0 评论 -
Kotlin 协程1:深入理解withContext
在 Kotlin 中,协程提供了一种优雅和高效的方式来处理异步编程和并发。在这篇文章中,我们将深入探讨 Kotlin 协程中的一个重要函数:withContext。原创 2024-01-31 15:49:12 · 1528 阅读 · 0 评论 -
Android Serializable 和 Parcelable 的详解以及代码示例(Kotlin)
Serializable方便Java中对象的序列化,可将对象存储在存储设备上。而`Parcelable主要用于内存序列化`,用于在Activity、Service、Receiver之间传输数据。原创 2024-01-09 11:05:09 · 1372 阅读 · 0 评论 -
Android View绘制流程详解
除了使用系统提供的View,我们还可以自定义View来实现特定的绘制效果。自定义View的绘制过程与系统View的绘制流程类似,只需要在onLayout()和onDraw()方法中实现自己的逻辑即可。自定义View的绘制过程可以通过以下步骤来完成:重写方法,根据自己的需求计算出View的测量宽度和高度。重写onLayout()方法,根据测量结果和父容器的布局参数,确定View在父容器中的位置和大小。重写onDraw()方法,根据需要绘制自定义的内容。在onDraw()方法中,可以使用Canvas。原创 2023-12-14 20:01:18 · 685 阅读 · 0 评论 -
Android适配分区存储后如何获取外部存储的File对象
Android 10推出分区存储(Scoped Storage)后,我们在处理外部存储的文件时面临了新的挑战。本文将探讨在适配分区存储之后,如何有效地获取外部存储的File对象。原创 2023-12-12 14:59:05 · 124 阅读 · 0 评论 -
Android Kotlin 泛型:强大的类型抽象和重用利器
泛型是一种参数化类型的机制,它允许我们在定义类、接口和方法时使用类型参数,从而实现代码的重用和类型安全。通过使用泛型,我们可以将类型作为参数传递给类或方法,在不同的场景中实现灵活的类型适配和操作。原创 2023-12-08 19:36:13 · 440 阅读 · 0 评论 -
Kotlin 中密封类、枚举类与密封接口的对比分析
在 Kotlin 编程语言中,密封类(Sealed Classes)、枚举类(Enum Classes)和密封接口(Sealed Interfaces)是处理一组固定类型的强大工具。它们在 Kotlin 中扮演着特殊的角色,特别是在创建类型安全的分支逻辑时。本文旨在对比这三种类型,探讨它们的特性及各自的使用场景。原创 2023-12-08 14:28:22 · 390 阅读 · 0 评论 -
okhttp3 的简单使用
一个简单的GET请求原创 2023-12-07 17:37:11 · 60 阅读 · 0 评论 -
探析 Android Kotlin 中的 object 关键字:对象声明、伴生对象和对象表达式
Android Kotlin 开发中,Object 关键字是一个强大且灵活的工具,它提供了和三种不同的使用方式。原创 2023-12-06 11:26:22 · 709 阅读 · 0 评论 -
Kotlin 中的 also 和 run:选择正确的作用域函数
在 Kotlin 中,also 和 run 是两个十分有用的作用域函数。虽然它们在功能上相似,但各自有独特的用途和适用场景。原创 2023-12-06 10:47:22 · 451 阅读 · 0 评论 -
Kotlin 中的 var 和 val:选择正确的变量声明
在 Kotlin 编程语言中,var 和 val 是两个基本的关键字,用于变量声明。它们的正确使用对于编写可维护和高效的代码至关重要。原创 2023-12-05 19:46:14 · 895 阅读 · 0 评论 -
Kotlin 作用域函数:理解 apply, let, 和 with
Kotlin提供了几个作用域函数来优化和简化代码的结构。本文将对比分析 apply, let, 和 with 三个函数。原创 2023-12-05 19:26:31 · 764 阅读 · 0 评论 -
探索 Kotlin 中的关键字【by】:委托的艺术
在这个例子中,Example 类的 p 属性委托给了 Delegate 类,使得对该属性的访问和更新都通过 Delegate 类中定义的方法来处理。委托模式允许我们将接口的实现分离到不同的类中,这样可以更灵活地重用和替换实现。Kotlin 的 by 关键字引入了一种强大的编程概念:委托模式。在这个例子中,Derived 类将 Base 接口的实现委托给了 BaseImpl 的实例。通过这两个示例,我们可以看到 by 关键字如何在Kotlin中提供强大和灵活的委托功能。原创 2023-12-05 19:13:40 · 176 阅读 · 0 评论 -
安卓常见设计模式14------单例模式(Kotlin版)
单例模式属于创建型模式,旨在确保一个类只有一个实例,并提供一个全局访问点来获取该实例。单例模式的核心思想是限制类的实例化,使得系统中只有一个共享的实例。原创 2023-11-11 15:14:09 · 806 阅读 · 0 评论 -
安卓常见设计模式13------过滤器模式(Kotlin版)
过滤器模式(Filter Pattern)是一种常用的结构型设计模式,用于根据特定条件过滤和筛选数据。原创 2023-11-10 11:07:21 · 1011 阅读 · 0 评论 -
安卓常见设计模式12------观察者模式(Kotlin版、Livedata、Flow)
观察者模式(Observer Pattern)是一种行为型设计模式,用于实现组件间的松耦合通信。主要对象有观察者接口(Observer)和可观察对象(Observable)。原创 2023-11-10 10:29:14 · 898 阅读 · 0 评论 -
安卓常见设计模式11------迭代器模式(Kotlin版)
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种遍历集合对象的方法,而无需暴露集合的内部表示。迭代器模式由两个主要角色组成:迭代器(Iterator)和集合(Collection)。原创 2023-11-09 19:57:46 · 680 阅读 · 0 评论 -
安卓常见设计模式10------责任链模式(Kotlin版)
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它用于将请求的发送者和接收者解耦,并将请求沿着一个处理链进行传递,直到有一个处理者能够处理该请求或者请求到达末尾。责任链模式允许多个对象都有机会处理请求,而不是将请求的发送者和接收者直接耦合在一起。原创 2023-11-09 14:48:24 · 1216 阅读 · 0 评论 -
安卓常见设计模式9------外观模式(Kotlin版)
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,用于隐藏底层系统的复杂性,并将其封装成一个更高级别的接口供客户端使用。外观模式有助于降低系统的复杂性,并提供了一个简化的接口,使得客户端能够更轻松地使用底层功能。解释:当我们的系统变得越来越复杂时,使用外观模式可以帮助我们简化对系统的使用。外观模式提供了一个简单的接口给客户端,隐藏了底层系统的复杂性,就像是一个门面一样。这样,客户端只需要与外观类打交道,而不需要了解系统内部的复杂细节。原创 2023-11-09 14:01:34 · 343 阅读 · 0 评论 -
安卓常见设计模式8------享元模式(Kotlin版)
享元模式(Flyweight Pattern)是一种结构型设计模式,用于有效地支持大量细粒度的对象共享。在 Android 中,享元模式可以用于减少内存使用和提高性能,特别是在需要创建大量相似对象的情况下。原创 2023-11-08 19:53:08 · 597 阅读 · 0 评论 -
安卓常见设计模式7------适配器模式(Kotlin版)(RecycleView adapter 模板代码)
适配器模式(Adapter Pattern)是一种常见的设计模式,它用于将一个类的接口转换成另一个客户端所期望的接口。在 Android 中,适配器模式通常用于将数据与视图进行绑定,以便在列表、网格等视图组件中显示数据。原创 2023-11-08 17:27:03 · 761 阅读 · 0 评论 -
安卓常见设计模式6------代理模式(Kotlin版)
代理模式(Proxy Pattern)是一种结构型设计模式,用于在访问对象之前或之后提供额外的功能或控制。代理模式可以用于各种情况,例如延迟加载、权限控制、日志记录等。。原创 2023-11-08 15:35:29 · 843 阅读 · 0 评论 -
安卓常见设计模式5------桥接模式(Kotlin版)
桥接模式是一种结构性模式。桥接模式旨在将抽象与实现解耦,使它们可以独立地变化。可以这么理解,面向对象编程是单继承多实现的,如果我们有一个可扩展类,和多个相关的可扩展维度的话,就可以创建一个抽象类来像桥梁一样连接这些个维度。因此这里的抽象可以理解为有一个抽象类,实现就代表多个接口。而桥接模式就是在这个抽象类里放多个接口,结构不就清晰明了了哇。原创 2023-11-08 14:32:10 · 749 阅读 · 0 评论 -
安卓常见设计模式4------原型模式(Kotlin版)
原型模式(Prototype Pattern)用于创建对象的克隆副本,而无需依赖于显式的类实例化。原型模式可以帮助我们在创建对象时避免重复的初始化过程,通过复制一个现有对象来创建新的对象,并进行必要的修改。原创 2023-11-07 16:39:58 · 657 阅读 · 0 评论 -
安卓常见设计模式3.2------工厂模式,工厂方法模式,抽象工厂模式对比(Kotlin版)
工厂模式是一种创建对象的模式,它通过一个工厂类来封装对象的创建过程。客户端只需要与工厂类交互,而无需直接实例化具体的产品对象。工厂方法模式是一种创建单个对象的模式,它定义了一个工厂方法接口,在具体的工厂类中实现该方法来创建具体的产品对象。,它提供了一个抽象工厂接口,该接口声明了一组创建产品对象的方法。具体的工厂类实现这些方法来创建具体的产品对象。抽象工厂模式适用于创建一系列相关产品的场景,每个具体工厂类负责创建特定产品族的对象。,它通过工厂类的静态方法或实例方法来创建具体产品对象。原创 2023-11-07 15:27:24 · 468 阅读 · 0 评论 -
安卓常见设计模式3------工厂模式(Kotlin版)
工厂模式(Factory Pattern)是一种创建对象的设计模式。它通过定义一个公共接口或基类,并使用工厂类来创建具体的对象实例,而不是直接在客户端代码中使用构造函数。原创 2023-11-07 14:30:58 · 626 阅读 · 0 评论