自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Android之路】UI消息循环机制

本文介绍了Android消息循环机制的核心原理与实现。消息循环通过Looper、MessageQueue和Handler三个核心组件协同工作,确保UI操作在主线程安全执行。主线程启动时自动创建Looper开启循环,Handler负责消息投递与处理。文章详细解析了消息循环流程,包括消息入队、轮询分发等关键步骤,并提供了常见使用模式如post、延时执行等示例。同时指出长时间阻塞主线程会导致ANR问题,建议耗时操作放在子线程处理。最后将Handler与其他线程切换方式对比,帮助开发者理解不同场景下的技术选型。

2025-10-01 12:58:27 906 1

原创 【Android之路】安卓资源与编译初步

Android资源管理摘要(147字) Android项目中,assets和res目录分别用于存放不同类型资源:assets存放无需编译的原始文件(如音视频),而res存放需要适配的图片、布局等资源,会被AAPT工具编译成二进制格式。资源适配通过限定符实现,如-hdpi、-zh等后缀,系统运行时自动匹配最合适的资源。开发者可通过R.java生成的ID在代码或XML中访问资源,AAPT在构建时会对资源进行压缩优化并生成索引文件resources.arsc,最终打包到APK中。

2025-10-01 12:36:28 861

原创 【Android之路】 Kotlin 的 data class、enum class、sealed interface

本文介绍了Kotlin中三种关键数据结构(data class/enum class/sealed interface)的特性及适用场景,并展示了如何在Android架构中运用这些特性实现状态驱动UI。文章分为两部分:语言层面详细解析了三种数据结构的区别与优势;架构层面则通过计算器案例,演示了如何将UI与业务逻辑分层,采用ViewModel托管状态、Reducer处理业务规则、Compose实现数据驱动UI的完整方案,体现了"UI是状态的函数"的设计思想。

2025-09-29 13:25:29 736 1

原创 【Android之路】界面和状态交互

Jetpack Compose状态管理解析:以TipTime小费计算器为例 本文通过一个完整的小费计算器应用(TipTime)示例,深入讲解Jetpack Compose中的状态管理机制。文章首先对比了传统XML+View开发模式与Compose声明式UI的差异,指出Compose通过"UI=函数(状态)"的理念实现了自动界面重组,避免了手动更新UI的繁琐操作。核心部分详细解析了remember和mutableStateOf的作用机制,以及如何通过属性代理简化状态访问。示例代码展示了状态

2025-09-27 19:04:08 1276

原创 【Android之路】图片无障碍化、文本易翻译初步和R类

本文介绍了Android应用开发中两个关键内容:无障碍图片注释和资源管理。在无障碍方面,通过Image组件的contentDescription属性为盲人用户提供图片描述支持。资源管理方面,讲解了如何将硬编码文本提取到资源文件中以便于维护和国际化,并详细解释了R类的作用和结构。R类是Android自动生成的资源索引类,包含各种资源类型的静态常量ID,开发者通过它来引用项目中的资源文件。文章还对比了项目R类与系统R类的区别,并说明了R类在Jetpack Compose中的使用方式。这些知识对于开发可访问、可维

2025-09-26 21:50:13 938

原创 【Android之路】.sp和界面层次结构

在 Android / Android Studio 环境下: 是一种字体尺寸单位(scale-independent pixels)为什么用 而不是 :例子(XML):例子(Jetpack Compose):看到的 多半指 字体尺寸单位,比如:如果你是在手机文件系统里看到 文件,那就是 SharedPreferences 保存的文件,一般开发者不用手动修改。界面层次结构基于包含机制,意即一个组件可以包含一个或多个组件,有时会用“父级”和“子级”这两个词来表述。这种说法是指,父界面元素包含子

2025-09-26 19:41:08 411

原创 【Android之路】kotlin和Jatpack compose

Kotlin与Java在Android开发中的关系与应用实践 摘要: 本文从技术底层和开发实践两个维度解析了Kotlin与Java在Android开发中的关系。Kotlin作为JVM语言,与Java共享字节码格式并实现100%互操作,这是两种语言共存的技术基础。Google自2017年起将Kotlin列为官方一级语言,2019年更推行"Kotlin优先"策略。通过对比展示,Kotlin在空安全、数据类、协程等方面具有显著优势,代码量减少50%以上。建议开发者直接学习Kotlin进行现代A

2025-09-26 18:45:41 915

原创 【Android之路】安卓APP的生命周期与设计方法

Android应用生命周期与分层设计摘要: Android应用生命周期由四大组件(Activity、Service、BroadcastReceiver、ContentProvider)各自的生命周期构成。Activity负责UI交互,Service处理后台任务,BroadcastReceiver响应广播事件,ContentProvider管理数据共享。开发者需根据组件特性管理资源,如在Activity中保存临时状态,避免Service耗时操作阻塞主线程等。 在应用架构设计上,推荐采用分层设计提升可维护性。多

2025-09-26 11:52:16 1018

原创 自学SpringBoot笔记

SpringMVC(Model-View-Controller)是中的一个模块,专门用于构建基于HTTP的Web应用程序,它遵循经典的MVC架构模式。SpringMVC提供了一套灵活、强大的工具,用于开发动态Web应用或RESTfulAPI。通过SpringMVC,开发者可以轻松处理HTTP请求、业务逻辑和视图层的渲染,同时保持应用的模块化和可维护性。POJO是的缩写,意为“普通的旧式Java对象”。它是一个纯粹的Java对象,不依赖于任何特定的框架或库,通常只包含。

2025-01-18 18:43:42 1048

原创 关于IDEA 2024.2.1 Java EE 无框架配置Tomcat环境以及servlet使用教程

这里的IDEA使用的是专业版,大学生认证后即可使用,社区版没有接触过暂不提,如果你是社区版,那么很可惜,本博客并不适用。本博客适用于java web刚入门的朋友学习使用,并不适用于高级部署。注意,这里写的无框架配置指的是不用Maven等框架进行配置。

2024-12-04 23:16:12 2263

原创 知识点2:Spring入门

Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。Spring 由 Rod Johnson 创立,2004 年发布了 Spring 框架的第一版,其目的是用于简化企业级应用程序开发的难度和周期。

2024-09-24 17:24:34 1456 1

原创 UDP的构成及传输层安全

分组可以用来指代任何格式化的数据块;而数据报则通常只用来描述那些通过不可靠的服务传输的分组,既不保证送达,也不发送失败通知。

2024-09-03 20:59:06 909

原创 TCP的构成

本文章来源于动物书《Web性能》一书中第二章——TCP的构成,仅作为本书的相关知识点摘要,不包括TCP的所有内容。因特网有两个核心协议,分别是TCP和IP,其中。

2024-09-02 19:28:22 941 1

原创 基于winfrom通过调用百度AI的人脸识别,实现人脸检测、人脸对比、人脸登录

本项目展示了如何使用百度智能云的人脸识别功能,涉及API Key和Secret Key的获取与调用。项目通过示例代码详细介绍了AccessToken的获取过程,并演示了人脸库的创建与应用。代码实现了摄像头的连接、拍照功能、图片加载等操作,结合百度智能云的API实现了人脸检测、人脸对比和人脸登录等功能。本文提供的代码示例和技术文档链接将有助于读者更好地理解和应用人脸识别技术。具体实现细节和完整代码请参考本文提供的链接。

2024-06-21 13:36:00 1290 2

原创 使用C#做一个音乐播放器

Windows Forms是一种用于创建Windows桌面应用程序的图形用户界面(GUI)框架。它是微软.NET Framework的一部分,用于开发基于Windows操作系统的应用程序。Windows Forms提供了一组可视化和交互式的控件,使开发人员能够轻松地构建功能丰富的Windows应用程序。简单来说,作为C#的初学者,选择这个框架有利于我们进行简单开发。openFileDialog1.Filter = "选择音频|*.mp3;*.wav;*.ogg";//允许打开多个文件我们用户。

2024-05-10 01:23:30 1436 1

原创 C# 中的接口和委托:统一管理某鸭工厂产品生产

本文基于 C# 编程语言,以一个周黑鸭工厂的产品生产管理系统为例,介绍了 C# 中的接口和委托的概念及其在实际应用中的作用。通过定义接口 IProductionFactory 和实现类 WuhanFactory、NanjingFactory、ChangshaFactory,展示了如何使用接口来定义统一的生产方法,并通过委托 ProductionDelegate 实现不同工厂的产品生产调度。这种设计模式使得系统具有更高的灵活性和可扩展性,方便管理和扩展不同工厂的生产能力。

2024-04-08 21:13:45 1172

原创 程序的机器级表示

栈帧(Stack Frame),也称为活动记录(Activation Record)、调用帧(Call Frame)或过程帧(Procedure Frame),是在程序执行过程中用于管理函数调用和返回的一块内存区域。栈帧通常存储以下信息:局部变量(Local Variables):函数内部定义的变量,它们在函数调用期间存在并被使用。函数参数(Function Parameters):函数调用时传递给函数的参数值。返回地址(Return Address):函数执行完毕后需要返回到调用位置的地址。

2024-03-24 14:13:53 1095 1

原创 SQL 查询结果排序+查询多个表

使用case语句,类似于switch-case语句,caseswitchwhencase呈现出这种对应关系。当条件符合的时候,程序执行then之后的语句当条件均不符合的时候,程序执行else之后的语句在条件结束的时候,记得在尾部加上end来注明结束判断。

2024-03-10 14:35:04 1159 1

原创 第一章 计算机系统漫游

在书中(CSAPP),作者以unix中的c语言为例,向我们展示了C语言的源程序是如何一步步被“翻译”成目标程序(可执行程序)。

2024-03-09 20:53:53 960 1

原创 SQL检索记录相关整理

本文章是SQL Cookbook中文版 (莫利纳罗 著) 的读书笔记,本文章将书中提及到的知识用代码整合在一起并进行分析。

2024-03-08 17:23:26 467 1

原创 SQL Server上手——SSMS上路

并不是一个sql语句,而是告诉数据库管理系统(SSMS)将前面sql作为一个批处理执行。也就是分段执行sql语句。表的结构包括四个列:学号、姓名、性别和成绩。每个列都有指定的数据类型和约束条件。表示存储一个带有一位小数的四位数字。check约束限制了该列的值必须大于等于0。的数据库,这里执行后我们可以在左侧的对象资源管理器中看见我们创建的数据库。不难理解,插入一个值,并按照我们之前的结构进行数据插入。约束表示该列是主键,唯一标识每一行数据。在该数据库中创建一个表,名为。

2024-03-08 14:38:38 820 1

原创 DFS算法的相关介绍以及题解

测试

2024-03-07 17:24:35 374 1

原创 (不定时更新)模运算、位运算的相关总结

链接:解决这题的原理和汇编中对数字进行求模运算很像,就是采用递推,将数值x变为以此类推,并将余数存到下一次计算中。

2024-03-07 15:24:26 419 1

原创 使用宝塔进行反向代理

有时候,我们想要部署的项目是需要用docker的形式拉取下来的。我们只能通过端口映射来连接这个网站,这对于我们想要快捷方便的链接网站是一个阻碍。同时,没有任何一个专业的网站会用来作为他的网址,这里我们将介绍使用宝塔进行反向代理,也就是子域名对应到同一ip的不同端口上。

2024-03-06 22:45:27 2782 1

原创 使用宝塔在同一个域名下做子域名网站

本教程是适用范围是类似于我有一个xxx.cn的域名,我想用yun.xxx.cn这个子域名来建一个云盘网站的情况。

2024-03-06 15:09:27 1809 3

原创 python中星号可作为拆解对象

d+’, s.lstrip())是一个正则表达式操作,它从字符串s的左侧去除空格后,匹配以可选的正负号开头,后跟一个或多个数字的部分。re.findall()函数返回一个包含所有匹配项的列表。通过使用解包运算符,可以将该列表中的元素解包为独立的参数,并将它们传递给int()函数进行转换。\d+’, s.lstrip()))的作用是将字符串s中匹配到的数字字符串转换为整数。\d+’, s.lstrip())的作用是将re.findall(‘\d+’, s.lstrip())的结果解包为独立的元素。

2024-02-28 16:09:43 439 1

原创 装饰器与类的只读

装饰器可以类比为C++中的基类。我们在C++中创建其他类的时候,可以用基类作为模板。而python中,我们可以利用函数可以作为对象进行参数传递这一特性来进行装饰器处理。

2024-02-28 14:23:32 386 1

空空如也

空空如也

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

TA关注的人

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