自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 收藏
  • 关注

原创 Android Photo Picker 深入解析与实战指南

随着 Android 生态系统的不断演进,用户对隐私保护和无障碍使用体验的要求越来越高。为了解决传统图片选择器在权限、隐私以及兼容性上的种种问题,Google 推出了全新的 **Android Photo Picker** API。本篇博客将详细解读 Photo Picker 的各个方面,包括它的背景、工作原理、集成方法、实战代码、最佳实践、常见问题及未来趋势,帮助大家在项目中高效、安全地使用这一新技术。

2025-04-01 14:59:50 836

原创 深入解析Ktlint —— 打造优雅统一的Kotlin代码风格

本文将全面解析Ktlint的基本原理、安装配置、核心功能、如何编写自定义规则,以及在实际项目中如何应对常见问题。我们还将与其他代码检查工具如Detekt和Android Lint进行对比,并分享一些实用的最佳实践。希望这篇博客能够帮助你全面了解并正确使用Ktlint,进而提升项目的代码质量和团队协作效率。

2025-04-01 14:03:41 415

原创 深入解析KSP(Kotlin Symbol Processing):现代Android开发的新利器

随着Kotlin在Android开发中的普及,开发者对于编译速度、内存消耗以及代码生成的效率要求越来越高。在这种背景下,Google推出了KSP(Kotlin Symbol Processing),旨在提供比传统的Kapt更快、更轻量级的编译体验。本文将全面解析KSP的工作原理、配置集成、使用案例以及最佳实践,帮助你在实际项目中充分发挥KSP的优势。

2025-04-01 10:59:51 650

原创 深入解析Kapt —— Kotlin Annotation Processing Tool 技术博客

在Android开发的世界中,随着应用架构和模块化设计的不断演进,各种依赖注入、数据绑定、数据库访问等技术成为必不可少的组成部分。Kapt(Kotlin Annotation Processing Tool)正是在这种背景下诞生的,它为Kotlin语言提供了强大的注解处理能力,帮助开发者在编译期间自动生成大量样板代码,从而简化开发流程,提高开发效率。本文将深入探讨Kapt的作用、原理、配置、常见问题及解决方案、性能优化、最佳实践以及与KSP的对比,帮助大家更好地理解和使用这一工具。

2025-04-01 10:28:40 1099

原创 Android性能优化及调试技巧全攻略

这里奉上关于Android性能优化一篇详细的技术博客,全文约1万字,涵盖了Android应用性能的重要性、常见性能瓶颈、主流性能分析工具、常见优化策略及调试技巧等内容,附有实战案例、示例代码以及对比图示(图示均为占位示例),希望对各位开发者有所帮助!🚀

2025-03-28 11:13:00 781

原创 Kotlin协程在Android项目中的深度应用与实践指南

在移动开发领域,异步操作的处理始终是核心挑战。传统的回调机制(Callback)导致代码嵌套层级过深,形成"回调地狱";RxJava等响应式框架虽然提供了链式调用,但学习曲线陡峭且资源消耗较大。Kotlin协程通过**挂起函数**和**结构化并发**机制,实现了以同步方式编写异步代码的突破,使代码可读性提升300%以上(JetBrains官方数据)。

2025-03-28 10:35:22 628

原创 Android Architecture Components 深入解析

在 Android 开发早期,应用状态管理和数据持久化一直是开发者面临的挑战。随着应用复杂度的增加,开发者通常会遇到以下问题:- Activity 和 Fragment 频繁重建导致数据丢失。- 代码耦合度高,难以维护和测试。- 数据同步和生命周期管理困难。为了提升开发效率和代码质量,Google 在 2017 年推出了 **Android Architecture Components (AAC)**,帮助开发者更高效地构建高质量应用。

2025-03-28 10:31:02 941

原创 Android adb 的功能和用法

Android Debug Bridge(简称 adb)是 Android 开发者必备的调试工具。它允许我们在开发设备(比如电脑)和 Android 设备(真机或模拟器)之间建立通信,并通过命令行执行各种操作,如安装应用、日志查看、调试应用、文件传输等。

2025-03-28 10:19:15 1139

原创 Android Compose 中的 Surface 和 Card:这对兄弟到底有啥不一样?

作为安卓开发者,咱们在写 UI 的时候总遇到这两个长得挺像的组件——Surface 和 Card。今天我就用做菜打比方,带你们扒开它们的底裤看看有啥本质区别(代码示例都现炒现卖,记得自己替换包名)。

2025-03-11 17:37:50 898

原创 Android Compose Surface 完全指南:从入门到花式操作

今天咱们来聊聊 Compose 世界里那个既基础又强大的组件——**Surface**。这个看似简单的矩形区域,实际藏着不少宝藏玩法,准备好你的 IDE,咱们发车!

2025-03-11 17:27:23 545

原创 Android Compose MutableInteractionSource介绍

在 Android 开发中,Compose 是 Google 推出的现代化 UI 工具包,它让开发者能够更简洁高效地构建应用界面。而 `MutableInteractionSource` 是 Compose 中一个重要的组件,它可以帮助你处理用户与界面交互时的状态变化,尤其在处理交互反馈(比如点击、按下、聚焦等)时非常有用。接下来,我们将详细解析 `MutableInteractionSource` 的作用及如何在实际开发中使用它。

2025-03-11 17:09:08 703

原创 Android Compose: `remember` 与 `ViewModel` 保存数据的优缺点对比

在开发 Android 应用时,管理 UI 状态是一个不可避免的话题。Jetpack Compose 提供了两种常见的方式来保存和管理数据:`remember` 和 `ViewModel`。它们各有优缺点,适用于不同的场景。 本文将详细对比这两者在保存数据时的优缺点,帮助你在实际开发中做出更合适的选择。

2025-03-11 16:54:41 975

原创 Android Compose remember 详解

在 Android Jetpack Compose 中,`remember` 是一个非常重要的概念。它帮助我们优化 UI 组件的重组(Recomposition)性能。简单来说,`remember` 可以缓存某些数据或对象,避免每次重组时重新计算或创建这些对象,从而提高性能并减少不必要的计算。

2025-03-11 16:51:20 797

原创 Android `%d` 与 `1$%d` 格式化的区别

在 Android 开发中,我们经常需要对字符串进行格式化处理,比如动态填充数字、日期、字符等。 其中,`%d` 和 `1$%d` 都是格式化占位符,但它们在使用上有一些不同。 本文将详细解析这两者的区别,并结合 Kotlin 代码示例帮助你理解。

2025-03-11 15:02:54 553

原创 Android Flow 示例

在Android开发的世界里,处理异步数据流一直是一个挑战。随着Kotlin的流行,Flow作为Kotlin协程库的一部分,为开发者提供了一种全新的方式来处理这些问题。今天,我将深入探讨Flow的设计理念,并通过具体的例子展示如何在实际项目中应用它。

2025-03-03 15:22:34 384

原创 Switch开关的防抖监听器

作为一个在安卓坑里摸爬滚打多年的老码农,肯定都遇到过这种场景:用户疯狂点击Switch开关,结果触发一堆重复回调。这种防抖需求就跟吃饭喝水一样常见。传统实现要么用Handler.postDelayed,要么用RxJava的throttle,但今天这个Kotlin扩展函数写法,直接把逼格拉满!

2025-03-03 15:17:25 724

原创 Android 常见View的防抖

在开发Android应用时,我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作,例如多次提交表单、重复加载数据等。为了避免这些问题,我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中为常见的View添加防抖功能。

2025-03-03 15:06:53 442

原创 Android中的AtomicLong:原理、使用与实战指南

本文结合生产环境实战案例,带你彻底搞懂AtomicLong在Android多线程开发中的应用。全文包含大量Kotlin代码示例,建议收藏备用。

2025-03-03 14:31:24 1009

原创 Android Hilt 高级用法

Hilt 是 Android 官方推荐的依赖注入框架,虽然它提供了简单易用的 API,但在复杂项目中,我们可能需要用到更高级的特性,比如自定义作用域、多模块 DI、绑定接口、多构造函数注入等。

2025-02-27 14:43:42 521

原创 在 Android 应用中使用 Hilt

依赖注入(DI,Dependency Injection)是现代 Android 开发中提高代码可维护性和可测试性的重要工具。Hilt 是 Google 推出的一个基于 Dagger 的依赖注入框架,它简化了 DI 在 Android 应用中的使用。

2025-02-27 14:41:27 1131

原创 ChatGPT 提示词框架

作为一个资深安卓开发工程师,我们在日常开发中经常会用到 ChatGPT 来提升开发效率,比如代码优化、bug 排查、生成单元测试等。 但要想真正发挥 ChatGPT 的潜力,我们需要掌握一些提示词(Prompt)的编写技巧,并且有一个良好的提示词框架。 本文将详细介绍 ChatGPT 提示词的框架,并结合 Kotlin 代码示例,帮助大家更高效地使用 ChatGPT。

2025-02-27 14:11:54 940

原创 Android 开发使用 AI 提升效率:提示词如何编写?

在 Android 开发中,AI 工具(如 ChatGPT、GitHub Copilot、Gemini 等)已经成为提升效率的重要助手。但如何最大化利用 AI?关键在于“提示词” (Prompt) 的编写。本文将详细讲解如何编写高质量的提示词,帮助 Android 开发者更高效地利用 AI。

2025-02-27 14:05:01 1071

原创 Android 开发使用 AI 提升效率

在当今快速发展的科技领域,人工智能(AI)正逐步渗透到各个行业。对于 Android 开发者而言,如何利用 AI 技术提升开发效率,已成为一个值得探讨的话题。本文将深入探讨如何在 Android 开发中有效地应用 AI 技术,以提高工作效率和代码质量。·

2025-02-27 14:00:54 1154

原创 实现RecyclerView Item拖拽效果

在移动应用开发中,**列表项的拖拽排序**是提升用户体验的关键功能之一。无论是任务管理应用的优先级调整,还是相册应用的图片排序,流畅的拖拽效果都能让用户直观地感知操作结果。

2025-02-27 13:49:42 417

原创 自定义ToolbarView实战指南(Kotlin版)

看到标题你可能会问:系统自带Toolbar不香吗?确实香,但遇到这些场景就抓瞎了:- 设计稿要求标题栏带渐变背景+动态波浪线- 产品经理非要搞个不对称的返回按钮布局- UI设计师坚持标题和副标题要45度角重叠这时候再不自己动手撸View,就只能等着加班掉头发了!

2025-02-26 17:11:27 549

原创 Android老司机带你搞懂onCreate里的savedInstanceState

在Android里,当系统杀你Activity时(比如屏幕旋转/内存不足),这个Bundle就是用来存档的

2025-02-26 16:33:16 360

原创 BottomSheetDialog 无法直接设置圆角的解决方案

BottomSheetDialog 默认无法直接设置圆角,因为它的外层 FrameLayout 没有背景。我们需要给这个 FrameLayout 设置一个圆角背景,才能让圆角效果显现。

2025-02-10 10:46:22 412

原创 Android Compose Modifier

在 Android 的 Compose 框架中,`Modifier` 是一种非常强大且灵活的工具,它用于修饰 Compose UI 元素的行为、布局和外观。你可以用它来做很多事情,比如设置宽度、高度、点击事件、拖拽动作等。在这篇文章中,我们将详细讲解 `Modifier` 的用法,并带你逐步走过实际代码示例。

2024-12-17 16:07:06 796

原创 Compose组件之Box

在Jetpack Compose中,Box是一个非常常用的布局组件,它可以将子组件层叠起来,类似于一个容器。通过Box,我们可以轻松地进行元素的定位、堆叠等操作。今天,我们就来详细了解一下Box的用法,以及如何通过Box来实现一些常见的UI效果。

2024-12-04 17:58:05 642

原创 Mac 的 Git 公钥位置 —— 你需要知道的一切

在使用 Git 与 GitHub 等平台进行代码管理时,我们需要用到 SSH 公钥来认证身份。SSH 公钥是一种加密方式,它让我们能够安全地通过网络进行身份验证而不暴露密码。推送代码到 GitHub、GitLab 等平台从远程仓库拉取代码配置和管理私有仓库今天我们详细介绍了如何在 Mac 上查找、生成和配置 Git SSH 公钥。掌握这个技巧后,你就可以轻松与 GitHub 等平台进行安全、高效的代码管理了。希望这篇文章能帮到你!

2024-12-04 16:17:30 1079

原创 深入了解 Android 中的命名空间:`xmlns:tools` 和其他常见命名空间

在 Android 开发中,`xmlns` 命名空间是一个非常重要的概念。通过引入不同的命名空间,可以使用不同的属性来设计布局、设置工具属性或者支持自定义视图等。除了 `xmlns:tools` 以外,还有很多常见的命名空间可以在布局文件中使用。本文将介绍几个常见的命名空间及其用途,并详细探讨它们的使用场景。

2024-10-23 16:37:52 1464

原创 Android 布局 `android:textAlignment=“viewStart“` 和 `android:textAlignment=“textStart“` 的区别和联系

在Android开发中,`android:textAlignment` 属性用来控制文本在视图中的对齐方式。虽然 `viewStart` 和 `textStart` 听起来相似,但它们其实有不同的应用场景和功能。接下来,我们来深入探讨这两者之间的区别和联系。

2024-10-23 16:12:08 623

原创 装饰器模式知识分享:Android (Kotlin) 与 iOS (Swift) 实现

装饰器模式(Decorator Pattern)是一种非常重要的设计模式,它允许我们在不修改已有对象的情况下,动态地为其添加新的行为和功能。 这种模式广泛用于 Android 和 iOS 的开发中,特别是在我们想要扩展现有功能,而不破坏已有代码时。让我们从 Android 和 iOS 两个角度,详细了解一下如何使用装饰器模式。

2024-10-16 10:12:53 1332

原创 如何在 Android 中用 Kotlin 将 dp 转换为 px

我们在开发 Android 应用时,经常需要将 dp(密度无关像素)转换为 px(像素)。这是因为不同设备有不同的屏幕密度,使用 dp 可以保持在不同设备上的一致性。📱 但究竟如何将 dp 转换为 px 呢?让我来展示一个简单的 Kotlin 解决方案,快速搞定!😎

2024-09-26 17:39:40 819

原创 Kotlin 中的 `flatMap` 方法详解

`flatMap` 是一种将嵌套集合“展平”的操作。简单来说,`flatMap` 会对集合中的每个元素执行一个映射操作,并返回一个新的集合,然后它会将所有这些子集合合并成一个集合。

2024-09-12 15:12:57 1230

原创 Android Kotlin 中的 `groupBy` 方法详解

在 Kotlin 中,`groupBy` 是一个非常有用的集合操作函数。我们可以使用它按照某个标准,将集合中的元素分组,形成一个 Map,其中 key 是我们分组的标准,value 是符合这个标准的元素列表。本文将通过几个实际例子,来详细说明如何使用 `groupBy`,并且还会解释一些常见的应用场景。

2024-09-12 15:10:51 1091

原创 如何在Android项目中进行性能优化分析?

在开发过程中,性能优化是一个重要的话题。用户对于应用的性能有着非常高的期望:快速启动、流畅的操作体验、低内存消耗等。那么,作为开发者,我们如何才能在项目中进行性能优化分析呢?今天就来和大家聊聊这个话题!😊

2024-08-29 13:53:13 1272

原创 使用 LeakCanary 检测内存泄漏的完整指南

内存泄漏不仅会让我们的应用程序变慢,还可能导致崩溃!😱 今天,我们将介绍一个超级棒的工具——**LeakCanary**,它可以帮助我们快速发现和解决内存泄漏问题。现在,就让我们开始吧!

2024-08-29 13:42:16 2430

原创 Bitmap 压缩:质量 100% 与 90% 的区别是什么?

在 Android 开发中,我们经常会使用 `Bitmap` 来处理图片。为了优化性能和减少存储空间,我们通常需要对 `Bitmap` 进行压缩。但问题来了:压缩时的“质量”到底意味着什么?如果把质量从 100% 降到 90%,会有什么区别呢?今天我们就来聊聊这个话题。

2024-08-28 17:54:42 1179

原创 Kotlin 泛型小知识: `<T>`, `<out T>`, `<in T>` 的区别

我们是不是常常在 Kotlin 的代码中看到一些奇怪的符号,比如 `` 或者 ``?如果我们对这些泛型(Generics)符号还不太了解,没关系!今天我们就来聊一聊它们的区别,以及如何在实际开发中正确使用它们

2024-08-28 17:22:29 1158

汇编语言程序设计大作业-走迷宫.md

这篇文章描述了在汇编语言程序设计大作业中解决走迷宫问题的经历和思考。文章首先介绍了迷宫问题的背景和挑战,以及采用的深度优先搜索算法的设计思路。然后详细解释了程序的实现过程,包括代码结构、初始化设置、搜索函数、检查移动函数和输出路径函数。最后,作者总结了本次大作业的收获与挑战,并展望了未来的学习方向。整篇文章结构清晰,内容丰富,对于想要学习汇编语言和算法设计的读者具有很高的参考价值。

2024-02-06

Python 小技巧.md

Python 小技巧集锦是一个旨在帮助 Python 开发者提高编程效率和代码质量的资源。该资源汇总了一系列简洁、实用的 Python 编程技巧和技巧,涵盖了各种常见场景下的用例和解决方案。通过这些技巧,开发者可以更加高效地编写 Python 代码,减少冗余和重复工作,提高代码的可读性和可维护性。

2024-02-06

一个使用HTML5 Canvas和JavaScript创建的春节烟花特效动画

这是一个使用HTML5 Canvas和JavaScript创建的春节烟花特效动画。该动画会在页面加载时自动触发烟花效果,并且还可以通过点击画布来手动触发更多的烟花。烟花的颜色、速度和大小都是随机生成的,使得每次烟花的效果都会有所不同。烟花会在画布中迅速绽放,然后逐渐消失,营造出绚丽的烟花效果。整个动画效果会持续循环播放,直到页面被关闭。这段代码使用了HTML5 Canvas的绘图功能和JavaScript的动画循环,通过粒子系统模拟了烟花的绽放效果。

2024-02-06

gradle-8.2-bin.zip 下载资源

gradle-8.2-bin.zip 下载资源

2023-12-06

空空如也

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

TA关注的人

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