自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 通知相关知识

前台服务需要在状态栏中显示通知,以便系统知道该服务正在运行并且不能被系统杀死。通知是 Android 系统中用来提示用户有新消息或任务的机制。可以为通知设置自定义的声音和振动模式,或使用系统默认的声音和振动。:适用于长时间运行的任务,比如文件下载或上传。可以在通知中添加删除按钮,用于手动删除通知。:最常见的通知类型,显示一条简单的消息。,点击通知时触发某个活动、广播或服务。:适用于播放音乐或视频时显示的通知。来设置定时通知,在特定的时间展示。:适用于通知内容较长的场景。来显示不可取消的通知。

2025-10-13 14:59:42 428

原创 Android asynclayoutinflater源码深入分析

为何在后台解析还会失败?某些 View 的构造函数或初始化逻辑依赖于(例如会创建HandlerView在构造里做线程相关操作),这些操作只在主线程/已有 Looper 的线程上允许。后台线程没有主线程那样的环境,所以会抛。对此采取“在后台尝试 — 失败则将空结果发回主线程 fallback”的策略。对象池与 GC使用复用,同时在中显式清空引用,避免不必要的引用保留导致内存泄漏或延长对象的可达期。队列有界 vs 无界官方采用,这是一种简单的背压方式,但在极端高并发场景下可能导致put。

2025-09-30 17:49:17 278

原创 Android Fragment 深度解析:从入门到精通

Fragment 是 Android 应用程序 UI 的一个模块化部分。它代表了 Activity 中的一个行为或 UI 片段。你可以将多个 Fragment 组合在一个 Activity 中来构建多窗格 UI,也可以在多个 Activity 中重用同一个 Fragment。为什么使用 Fragment?模块化和可重用性:将 Activity 的 UI 和行为分解成更小的、可独立管理和重用的模块。

2025-09-24 13:58:17 1086

原创 Android_Bug switch case R.id.xxx 报错:**需要常量表达式**

根本原因:Android 新版构建工具生成的R.id不再是final,不符合对编译期常量的要求。解决办法:推荐用if/else替代switch,这是官方建议的写法,保证未来兼容性。

2025-09-22 11:30:31 453

原创 git 全面学习认识

目的:按作者分组并按提交数量排序,显示提交摘要。用法:git shortlog -s -n # -s 显示提交数量,-n 按数量排序git shortlog -s -n --all # 显示所有分支的提交统计细致讲解:在项目贡献者较多时,可以快速了解每个人的贡献量。Git 是一个深奥而强大的工具,熟练掌握它需要时间和实践。理解核心概念:工作区、暂存区、本地仓库、远程仓库、HEAD 是所有 Git 操作的基石。从常用命令开始initclonestatusaddcommit。

2025-09-19 17:24:54 1280

原创 Android ViewPager2 和 TabLayout 整合使用教程 (Java)

整个调用流程是高度解耦和自动化的。你只需要提供页面内容 (Fragment) 和标签页数据 (tabTitles),然后通过和将它们连接起来,剩下的同步和生命周期管理都由这些库组件自动完成。这种设计使得ViewPager2和TabLayout的整合变得非常简洁和高效。

2025-09-19 11:33:40 791

原创 Android 生命周期Activity、Fragment等

生命周期就是你的安卓组件的“操作指南”。onCreate()第一次设置,只做一次。onResume()界面活跃,启动所有需要实时互动的功能。onPause()界面暂停,停止耗费资源的实时功能,快速保存临时数据。onStop()界面不可见,释放更多资源,保存持久数据。界面销毁,彻底清理所有残留。掌握这些,并善用 AAC 提供的工具,你就能编写出更稳定、更高效、用户体验更佳的安卓应用!

2025-09-19 11:02:21 566

原创 Android 组件通信技术

安卓应用由四大核心组件(Activity、Service、BroadcastReceiver、ContentProvider)以及其他辅助组件(如 Fragment、View、ViewModel 等)构成。这些组件各自承担特定职责,但它们并非孤立存在,而是需要频繁地进行数据交换、事件通知和状态同步,才能协同工作,共同完成复杂的用户功能。,就像一个城市的交通系统,有高速公路、普通公路、地铁、公交、人行道,每种方式都有其特定的用途和效率。

2025-09-17 13:48:12 985

原创 Android ViewPager2 完整教学,Java 版,小白友好

什么是 ViewPager2?什么时候用哪种 Adapter?关键点(要记住)在 (Module)中:1 — 最简单入门:ViewPager2 + RecyclerView.Adapter适用场景:简易文本/图片滑动,想最小成本实现翻页。单页 item 布局(item_page.xml)Adapter (SimplePageAdapter.java)Activity 集成(MainActivityBasic.java)2 — 进阶:每页用 Fragment & FragmentSt

2025-09-16 14:03:11 1171

原创 Android Intent 的全部用法总结

Intent(意图) 是 Android 应用程序中一个消息传递对象,它用于在不同的组件(Activity、Service、BroadcastReceiver)等之间传递消息,以及在应用程序之间进行通信。它描述了应用程序希望执行的操作。Intent本质上是一个抽象的动作描述,它可以被系统解析并找到合适的组件来执行这个动作。它实现了 Android 各组件之间的松耦合,使得组件无需知道彼此的具体实现细节就能进行交互。

2025-09-15 15:21:14 997

原创 Android 进程间通信(IPC):理解Binder & AIDL

首先,我们需要在文件中,定义我们的远程加法服务接口。在目录下,手动创建一个名为aidl的文件夹。在aidl。在文件夹上右键 -> New -> AIDL File,命名为。// 定义这个 AIDL 接口所属的包名,必须与你的 Android 项目的 Java 包名一致。// 这是一个远程接口,它定义了客户端可以调用服务端哪些方法。// 想象成一份客户端和服务端都认可的“合同”。/*** 定义一个远程方法,用于计算两个整数的和。

2025-09-15 14:10:13 830

原创 Android UI 渲染机制

本资料旨在详细解析 Android UI 渲染的核心机制,涵盖View与ViewGroup关系。Activity、Window 、 DecorView和View的关系。LayoutInflater.factory到LayoutInflaterCompat.setFactory2。

2025-09-11 17:56:23 1043

原创 Android 项目构建流程:从源码到 APK 的旅程

以下图示简洁地描绘了核心文件之间的依赖和数据流向,明确指出项目结构中的文件路径。[MyAwesomeAndroidApp/gradlew (推荐) 或 全局 `gradle` 命令]│▼[Gradle Wrapper (仅 `gradlew` 路径) 或 全局 Gradle] ───> `MyAwesomeAndroidApp/gradle/wrapper/gradle-wrapper.properties` (仅 `gradlew` 路径)│▼。

2025-09-10 18:25:16 422

原创 Android HandlerThread 与 Handler 机制学习笔记

初始化创建绑定到主线程Looper,用于UI更新。创建并启动(后台线程),它自带一个Looper和。创建绑定到**的Looper**,用于处理后台任务。触发任务用户在主线程点击按钮。主线程通过向发送消息。消息被放入的。执行后台任务内部的Looper从中取出消息。Looper将消息分发给。在**(子线程)** 上执行耗时操作。主线程保持流畅。更新UI后台任务完成后,创建一个包含结果的Message。通过将消息发送给。消息被放入主线程的。主线程的Looper从中取出消息。

2025-09-09 16:03:00 1001

空空如也

空空如也

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

TA关注的人

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