- 博客(104)
- 资源 (1)
- 收藏
- 关注
原创 Kotlin 中的属性访问器:设计的得与失
本文介绍 Kotlin 中的属性系统,特别是属性会生成的 getter、setter 方法,以及此特性的利弊。
2026-08-21 16:30:00
178
原创 Kotlin 中的委托:by 关键字全解析
by 关键字是 Kotlin 中非常高频的设计,尤其是在 Android 开发中。本文介绍了 Kotlin 中 by 关键字和委托的全方位的用法。
2026-08-04 11:06:32
372
原创 腾讯 Mars XLog 日志框架的编译和修改
腾讯 Mars XLog 是一个高性能的端上日志打印方案,本文介绍如何修改它的源码并重新编译,以生成最新的 so 库。
2026-07-31 11:36:02
173
原创 Jetpack UI状态模型 ViewModel 的入门和使用
ViewModel 是 Jetpack 中非常重要的一个库,它与 Lifecycle、LiveData 构建了 MAD 的三大基础组件。在 ViewModel 之前,Activity 负责处理所有内容,这使得其变得极为庞大,并且需要负责由于其混乱的生命周期带来的一系列问题。因此,ViewModel 在推出之后就以摧枯拉朽之势席卷了整个 Android 开发界。本文将带你走进 ViewModel,看看它的前世今生,以及使用方法。阅读此文,你必将对 ViewModel 有一个新的认识。
2026-07-28 21:25:36
313
原创 腾讯 XLog 日志框架 Android 端接入
mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件。其中的 XLog 是其中可以独立使用的日志模块,本文将介绍 XLog 的引入和使用,以及注意事项。
2026-07-02 10:51:50
271
原创 从历史的角度看 Android 软件架构
本文回顾了Android开发架构的演进历程,从早期的无架构状态到MVC、MVP、MVVM等架构模式。文章首先描述了2014年移动互联网野蛮生长时期缺乏架构设计导致的技术债务问题,随后通过一个图片加载需求的实现,对比分析了不同架构的特点。
2026-06-28 15:44:17
170
原创 Jetpack 可观察数据容器 LiveData 的高级用法
本文介绍了LiveData的高级用法,包括四部分内容: map()、switchMap()、MediatorLiveData 和 observeForever()
2026-06-10 21:18:53
378
1
原创 Jetpack 可观察数据容器 LiveData 的入门与基础使用
本文介绍了Jetpack中的LiveData组件,它解决了Android开发中数据与UI同步的难题。LiveData是一种具有生命周期感知能力的可观察数据容器,能够自动在UI活跃时更新数据,并在界面销毁时停止分发,避免内存泄漏。文章详细讲解了LiveData的基本用法,包括创建MutableLiveData、添加观察者,以及setValue/postValue的区别。同时解释了LiveData与Lifecycle的关联机制,以及为何建议对外暴露不可变的LiveData类型。
2026-05-31 09:42:36
390
原创 Jetpack 生命周期组件 Lifecycle 的设计思想和使用
本文介绍了Android Jetpack中的Lifecycle组件,通过计时器案例展示了传统生命周期管理方式的弊端。Lifecycle的核心价值在于将生命周期变为可观察状态机,让组件能自主感知和响应状态变化,从而解耦业务逻辑与界面控制器。文章对比了传统实现方式与使用Lifecycle的差异,显示了 Lifecycle 在 Android 开发中的优势。
2026-05-17 14:45:48
565
原创 Android Jetpack 简介:由来和演进
Jetpack的诞生与发展是Google为解决Android开发长期存在的三大问题而推出的系统性方案:Support Library的混乱依赖、缺乏统一架构指导、库间设计不统一。为了解决这些问题,Google 提出了 Jetpack。本文介绍了 Jetpack 的基本情况,特别是其为什么会出现,解决了哪些问题,其历史又是怎样的。并对 Jetpack 对现代 Android 开发的影响做了主观说明。
2026-05-17 11:54:19
500
原创 Android 沉浸式(Edge-to-Edge)的介绍与应用
沉浸式是应用界面开发的不可避免要考虑的内容,在早期的 Android 应用中,屏幕的顶部是状态栏,底部是导航栏,而 APP 内容则被夹在中间,这种「三明治」式的布局结构长期主导 Android 设备的屏幕设计。不过这种"非沉浸式"设计,在 2024 年以后的 Android 生态里,正在逐渐被淘汰。Google 从 Android 15 开始,强制所有 App 启用 Edge-to-Edge(边缘到边缘)。也就是说,你的内容必须延伸到状态栏和导航栏的后面,否则在新系统上会出现诡异的空白或黑边。
2026-05-11 20:01:04
624
原创 工厂设计模式(Factory Pattern):工厂方法与抽象工厂的实例演示
工厂模式(Factory Pattern)是面向对象编程中最经典、也是最常用的创建型设计模式之一。简单来说,工厂模式的核心思想就是:将“创建对象”的过程封装起来。对象的使用方不需要知道对象具体是如何被 new 出来的,只需要告诉“工厂”自己需要什么,工厂就会把做好的对象交给你。
2026-05-09 19:39:57
429
原创 安装 Arch Linux 到 VMware Workstation 的完全指南
本章将会为读者介绍 Arch Linux 操作系统的安装和初步使用。
2026-02-13 15:23:11
1136
原创 使用 UltraISO 和 Ventoy 制作 U 盘启动盘
本文首先介绍一个老牌的 U 盘启动盘制作工具:UltraISO。当了解了这个老牌的制作工具后,就会发现它有一个很大的限制:U 盘中只能写入一个操作系统的镜像文件。为了解决这个问题,我们将继续介绍一个新的制作工具:Ventoy。
2026-01-06 15:18:20
1408
原创 安装 WSL 最好的方式
微软的 WSL 是一种使用 Linux 非常好的方式,如果通过 Microsoft Store 的默认方式安装 WSL 发行版,其 Linux 文件系统会被存放在 C 盘的指定位置,对于 C 盘空间紧张的电脑来说,这种方式并不友好。所以本文给大家介绍一个能够直接将 WSL 安装在其他位置的方式。
2025-12-19 18:51:09
3030
原创 MBR 和 GPT 区别
本文接续 BIOS 与 UEFI 的主题,深入探讨计算机启动机制中的第二关键要素:硬盘分区表格式。文章首先介绍了分区、分区表和文件系统的基本概念,然后重点对比了 MBR 和 GPT 两种分区格式。最后总结了固件和分区的黄金搭配,即 BIOS 搭配 MBR,UEFI 搭配 GPT。
2025-12-18 16:16:46
1444
原创 第2章 安装 Manjaro 操作系统
本文是《轻松学 Linux 从 Manjaro 到 Arch Linux》第2章 安装和使用 Mangaro 操作系统 的笔记
2025-12-17 12:56:03
968
原创 从 BIOS 到 UEFI:PC 固件的演变
在个人计算机的启动流程中,操作系统并不是开机后最先运行的程序。真正最早执行的是主板上的固件,它负责初始化硬件并为操作系统的加载做好准备。传统的固件标准是 BIOS(Basic Input/Output System),而现代 PC 则已经普遍采用了更先进的 UEFI(Unified Extensible Firmware Interface)。本文将系统性解析 BIOS 与 UEFI 的区别、演进原因以及你电脑当前究竟使用哪种模式。
2025-12-12 16:03:07
1256
原创 微内核与宏内核区别
系统是运行计算机的总控制程序,而内核则是操作系统的核心部分。本文章深入探讨了操作系统内核的两种主要类型:宏内核(单内核)和微内核。文章首先阐述了内核的基本职能,随后详细对比了两种设计的结构和优缺点。
2025-12-02 11:18:15
1244
原创 布局性能优化利器:ViewStub 极简指南
ViewStub 是 Android 开发中优化布局性能的高频实用工具,它通过让布局按需加载,来解决一系列问题。本文将全面讲解 ViewStub 在使用中必知必会的那些点,还有注意事项。
2025-11-26 11:27:26
865
原创 从光照到颜色模型:一文读懂 RGB 与 CMYK 的色彩底层逻辑
本文从光这一物理起点出发,解读了显示器使用的 RGB 加法模型,以及打印业遵循的 CMYK 减法模型。最终,理解计算机如何通过 RGB 编码,统一抽象并精准模拟出大自然中数亿种色彩。一篇硬核科普,助你彻底掌握颜色模型的奥秘。
2025-11-20 14:35:56
962
1
原创 BIOS 和 UEFI 区别
BIOS 和 UEFI 是电脑启动时用于初始化硬件并加载操作系统的两种固件,当你需要安装或者重装操作系统、更改硬件配置或进行系统修复时,则需要考虑电脑的启动模式,选择从BIOS启动还是UEFI启动。因此需要理解这两个概念。
2025-10-27 17:20:01
800
原创 循序渐进 Android Binder(二):传递自定义对象和 AIDL 回调
本文在上一篇介绍完 Binder 的基本概念和使用方式后,紧接着讲述了使用 AIDL 传递自定义对象,并且在此基础上通过示例演示了 Binder 两端的双向交互,即服务端回调客户端接口的实现方法。此文言简意赅,通俗易懂,通过此文的学习,大家能够掌握 Binder 更深层次的用法,为后续的 Binder 内容打下坚实基础。
2025-06-08 16:44:36
1373
1
原创 循序渐进 Android Binder(一):IPC 基本概念和 AIDL 跨进程通信的简单实例
在 Android 系统中,Binder 占有举足轻重的地位。本文讲解了与 Binder 相关的 IPC 的基本概念,并使用了一个基于 AIDL 的跨进程通信实例来演示的 Binder 的使用。带领大家逐步进入 Binder 的世界。
2025-06-02 22:41:36
1163
原创 深度解析 Android Matrix 变换(二):组合变换 pre、post
文章介绍了 Android 中 Matrix 的组合变换,重点介绍了 preXXX 和 postXXX 方法的使用及其区别。并说明了变换顺序应为先缩放,再旋转,后平移,以确保效果符合预期。文章通过代码示例和动画展示了如何构建组合变换矩阵。
2025-03-23 16:56:09
1401
mips[64]el-linux-android-4.9.zip
2020-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅