Android Material3 资源管理全解析:Color,String,Style,Dimen,Array
Android 资源管理全解析:Color、String、Style、Dimen、Array1. 资源(Resource)概述在 Android 开发中,资源文件(res/values 目录)用于存储 颜色、文本、样式、尺寸、数组 等 非代码 内容,便于: 统一管理 UI 风格,增强可维护性 支持 多语言(国际化) 适配 不同屏幕密度、尺寸、模式(夜间模式等) 提高应用的 复用性和灵活性 2. 颜色资源(Color)2.1 定义颜色(colors.xml)颜色资源用于 定义 UI 组件的颜色,可存储在 res/values/colors.xml: 123456789101112131415<?xml version="1.0" encoding="utf-8"?><resources> <!-- 基础颜色 --> <color name="black">#000000</color> <color...
Vector Asset的使用示例
Android 使用 Vector Asset 的技术解析在 Android 开发中,图形资源一直是用户体验的重要组成部分。传统上,开发者常常依赖位图(Bitmap)资源,但随着多种屏幕分辨率的设备不断涌现,位图资源在扩展性和存储效率上逐渐暴露出不足。为了解决这一问题,Google 引入了 Vector Asset(矢量资源),它能够以较小的体积提供高质量且可伸缩的图形表现。本文将详细介绍 Android 中 Vector Asset 的使用方法、优势、注意事项以及最佳实践。 1. 什么是 Vector Asset?Vector Asset 是基于 XML 定义的矢量图形资源,不同于位图资源,它通过数学公式来描述图形的轮廓和颜色,从而实现无限放大而不会失真。主要优点包括: 无失真缩放: 无论在何种分辨率下,矢量图形都能保持清晰的显示效果。 文件体积小: 相对于同等质量的位图资源,矢量图通常占用更少的存储空间。 灵活的颜色和尺寸调整: 可在运行时动态修改颜色和大小,适应不同的主题和布局需求。 2. Android Studio 中导入 Vector...
Kotlin的协程
Kotlin 协程技术文档 简介Kotlin 协程是 Kotlin 官方提供的一种用于简化异步编程和并发任务处理的工具。它能够让你用同步的写法实现异步代码,大大简化了回调地狱(callback hell)问题,提高了代码的可读性和维护性。协程在 Android 开发、服务器开发等场景中都有广泛应用。 协程基本概念什么是协程协程是一种轻量级的线程,能够在单个线程内并发执行多个任务。它基于挂起(suspending)和恢复(resuming)机制,在任务遇到耗时操作(如 IO、网络请求)时挂起执行,不阻塞线程,待条件满足后恢复执行。 协程与线程的对比 轻量性:协程比线程更加轻量,一个应用可以同时启动成千上万个协程,而线程数量通常受限于系统资源。 调度模型:协程由调度器(Dispatchers)管理,可以在多个线程间灵活调度,而线程调度依赖于操作系统。 切换成本:协程的上下文切换成本远低于线程切换,性能开销较小。 编程模型:协程可以用顺序化的代码编写异步逻辑,避免回调嵌套,使代码更直观。 协程构建块CoroutineScope 定义:CoroutineScope...
解析JSON格式数据示例
书上P444讲的更好 1. 概述JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 Web API 交互。Kotlin 提供了多种解析 JSON 数据的方法,其中 org.json.JSONObject 和 Gson 是常见的选择。 2. 适用场景 解析网络请求返回的 JSON 数据 存储和读取本地 JSON 配置文件 序列化/反序列化 Kotlin 数据类 3. JSON 示例假设有如下 JSON 数据 sample.json: 1234567891011121314{ "apps": [ { "id": 1, "name": "MyApp", "version": "1.0.0" }, { "id": 2, "name":...
SAX解析XML数据用法示例
使用 SAX 解析 XML 数据 1. 概述SAX(Simple API for XML)是一种基于事件驱动的 XML 解析方式,适用于处理大规模 XML 文档。SAX 解析器不会将整个 XML 加载到内存中,而是逐行解析,因此在 性能和内存占用方面优于 DOM 解析。 2. 适用场景 处理大 XML 文件(如 RSS 订阅、日志文件) 流式解析(节省内存) 只需读取数据(无需修改 XML 结构) 3. XML 示例假设有如下 XML 数据 sample.xml: 1234567891011<?xml version="1.0" encoding="UTF-8"?><apps> <app id="1"> <name>MyApp</name> <version>1.0.0</version> </app> <app id="2"> ...
使用XmlPullParser解析XML格式数据的用法示例
使用 XmlPullParser 解析 XML 格式数据(Kotlin 版) 书上P438讲的很好,看书我觉得更好 1. 概述XmlPullParser 是 Android 官方提供的轻量级 XML 解析器,适用于资源受限的移动设备。它基于流式解析,不会将整个 XML 加载到内存中,因此适用于大数据量的 XML 解析。 额外知识—选择合适的解析方式: 方式 适用场景 优点 缺点 SAX 大型 XML,逐行解析 低内存占用 编码复杂 DOM 小型 XML,需要修改 易用 内存占用大 XmlPullParser 轻量 XML 解析 性能高 手写解析代码 Simple XML 复杂 XML,映射对象 代码清晰 依赖第三方库 如果你处理的是 Android 端 XML 解析,建议优先使用 XmlPullParser,如果 XML 结构复杂且需要映射对象,可以考虑 Simple XML。 2. 使用步骤2.1 添加依赖XmlPullParser 是 Android 自带的 API,因此无需额外添加依赖。 2.2 XML 示例数据假设我们有一个 XML 文件...
OkHttp的用法示例
OkHttp 是一个高效、灵活的 HTTP 客户端库,在 Android 开发中非常常用。下面介绍如何在 Android 中使用 OkHttp,并附上常见的 GET 和 POST 请求示例。 1. 添加 OkHttp 依赖如果你还没有添加 OkHttp,需要在 build.gradle.kts 添加依赖: 123dependencies { implementation("com.squareup.okhttp3:okhttp:4.12.0") // 最新版} 如果你用的是 build.gradle(Groovy 语法): 123dependencies { implementation 'com.squareup.okhttp3:okhttp:4.12.0'} 2. 基本的 GET 请求(同步)123456789101112131415161718192021import okhttp3.OkHttpClientimport okhttp3.Requestimport...
HttpURLConnection的用法示例
HttpURLConnection 是 Android 进行网络请求的一个轻量级 HTTP 客户端,适用于简单的 GET 和 POST 请求。以下是 HttpURLConnection 的基本使用方法。 使用步骤 创建 URL 对象 打开连接并配置请求 发送请求 读取响应 关闭连接 示例代码1. GET 请求123456789101112131415161718192021222324252627import java.net.HttpURLConnectionimport java.net.URLfun sendGetRequest(urlString: String): String? { var connection: HttpURLConnection? = null try { val url = URL(urlString) connection = url.openConnection() as HttpURLConnection connection.requestMethod =...
Service用法示例
ServiceService 是什么Service 是 Android 中实现程序后台运行的解决方案,它非常适合执行那些不需要和用户交互而 且还要求长期运行的任务。Service 的运行不依赖于任何用户界面,即使程序被切换到后台,或 者用户打开了另外一个应用程序,Service 仍然能够保持正常运行。 不过需要注意的是,Service 并不是运行在一个独立的进程当中的,而是依赖于创建 Service 时 所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的 Service 也会停止运行。 另外,也不要被 Service 的后台概念所迷惑,实际上 Service 并不会自动开启线程,所有的代码都是默认运行在主线程当中的。也就是说,我们需要在 Service 的内部手动创建子线程,并在这里执行具体的任务,否则就有可能出现主线程被阻塞的情况。 Android 多线程编程当我们需要执行一些耗时操作,比如发 起一条网络请求时,考虑到网速等其他原因,服务器未必能够立刻响应我们的请求,如果不将...
WorkManager用法示例
WorkManager 是什么?WorkManager 是 Android 用来执行后台任务的工具,适用于: 执行一次的任务(比如:上传日志、备份数据)。 定期执行的任务(比如:每 15 分钟同步数据)。 即使应用关闭、设备重启后也能执行的任务。 1. 引入 WorkManager先在 build.gradle.kts(模块级)中添加依赖: 123dependencies { implementation("androidx.work:work-runtime-ktx:2.9.0") // WorkManager 最新版} 然后 同步 Gradle(点击“Sync Now”)。 2. 创建 WorkerWorker 是 WorkManager 执行任务的地方。我们需要创建一个类,继承 Worker 或 CoroutineWorker(推荐)。 简单任务示例新建一个 MyWorker.kt: 12345678910111213import android.content.Contextimport...