Android 下的 XML 文件(概念理解、存储位置理解)

一、XML

1、XML 概述
  1. XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言

  2. 类似于 HTML,但旨在传输和存储数据,而不是显示数据,且基本语法都是标签

2、XML 的特点
(1)可扩展性
  • XML 允许开发者定义自己的元素(标签),即想怎么写就怎么写
(2)可约束性(简单了解即可)
  • 开发者也可以使用一些第三方应用程序、框架来约束 XML 元素(标签)的定义,即规定写什么
  1. DTD(Document Type Definition,文档类型定义):使用非 XML 的语法(通常是 SGML 的简化形式)来描述 XML 的结构,DTD 主要定义了元素的名称、元素之间的关系、元素的顺序、元素的属性

  2. XSD(XML Schema Definition,XML 模式定义):使用 XML 的语法来描述 XML 的结构,XSD 可以定义复杂的数据类型、元素的序列、元素的出现次数、属性的默认值等

  • DTD 和 XSD 都是用来约束 XML 的有效手段,但 XSD 相比 DTD 更加强大
3、XML 文件的基本结构
  1. 声明(可选):在文件的开始处,通常包含 XML 的版本和字符编码等信息,例如,<?xml version="1.0" encoding="utf-8"?>

  2. 元素:XML 文档由元素构成,元素通过开始标签和结束标签来定义,元素可以包含文本内容、属性或其他元素

  3. 属性(可选):元素可以包含属性,属性提供元素的额外信息,并且总是位于开始标签中

<?xml version="1.0" encoding="UTF-8"?>  
<dogs>  <dog age="3">  <name>tom</name>  <color>black</color>  </dog>  <dog age="4">  <name>jack</name>  <color>White</color>  </dog>  
</dogs>

二、Android 下的 XML 文件

1、Android 下 XML 文件的使用场景
  1. 布局文件:用于定义应用程序的用户界面布局,通常存储在 res/layout 目录下

  2. 字符串资源文件:用于定义应用程序中使用的字符串资源,通常是存储在 res/values 目录下的 strings.xml

  3. 颜色资源文件:用于定义应用程序中使用的颜色资源,通常是存储在 res/values 目录下的 colors.xml

  4. 尺寸资源文件:用于定义应用程序中使用的尺寸资源,通常是存储在 res/values 目录下的 dimens.xml

  5. AndroidManifest.xml:这是一个特殊的 XML 文件,该文件是 Android 应用程序的入口点,用于声明应用程序的基本属性,例如,组件(活动、服务、广播接收器、内容提供者)、权限、API 级别等

2、res/raw 目录与 assets 目录
  • res/raw 目录与 assets 目录都是适合放置一些项目中所使用的 XML 文件的地方,res/raw 目录与 assets 目录通常都需要手动创建
  1. res/raw 目录应该位于模块的 src/main/res 目录下

  2. assets 目录应该位于模块的 src/main 目录下

(1)res/raw 目录
  1. res/raw 目录用于存放那些不需要系统编译成二进制形式的文件,raw 有原始的意思,

  2. res/raw/ 目录中的文件会被映射到 R.java 文件中,可以直接使用资源 ID 访问,即 R.raw.【文件名】

  3. res/raw/ 目录下如果再创建目录并在其中存放文件,那么这个文件无非被映射到 R.java 文件中

  4. res/raw/ 目录下的资源访问起来相比 assets 目录要更快一些

(2)assets 目录
  1. assets 目录也用于存放那些不需要系统编译成二进制形式的文件,assets 有资产的意思

  2. assets 目录中的文件不会被映射到 R.java 文件中

  3. assets 目录可以创建目录结果

  4. assets 目录下的资源访问起来相比 res/raw/ 目录要慢一些

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/53098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

协程源码剖析(三) 调度器设计实现

先来看协程调度器的结构体中处理调度的部分 typedef struct _nty_schedule {...nty_coroutine_queue ready; // 就绪队列 &#xff08;优先级最高&#xff09;nty_coroutine_queue defer; // &#xff08;暂时没用到&#xff09;nty_coroutine_link busy; // 忙碌链表&#xf…

【数据结构与算法 | 搜索二叉树篇 力扣篇】力扣530, 501

1. 力扣530&#xff1a;二叉搜索树的最小绝对差 1.1 题目&#xff1a; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,…

C# 调用百度API批量识别发票,并存到EXCEL

C# 调用百度API批量识别发票&#xff0c;并存到EXCEL ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f406f2185184456daa9ba7829c26138d.png#pic_center)using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Thr…

BUUCTF—[BJDCTF2020]The mystery of ip

题解 打开环境点击上面的flag可以看到这个IP页面。 抓个包看看有啥东西无&#xff0c;可以看到在返回包有IP。 看到IP就想到X-Forwarded-For这个玩意&#xff0c;我们用X-Forwarded-For随便添加个IP看看。可以看到返回的IP内容变成了123。 X-Forwarded-For:123 推测它会输出我…

Java项目怎么从零部署到Linux服务器上?

目录 一.Java环境&#xff08;JDK&#xff09;安装 二.数据库&#xff08;MySQL&#xff09;安装 三.部署上线 ▐ 部署Jar包 ▐ 运行程序 ▐ 开放端口 一个Java项目首先需要一个支持它编译的Java环境&#xff0c;因此首先要保证服务器上安装的有相应的JDK 一.Java环境&a…

JWT与shiro结合实现认证

随着微服务架构的普及和前后端分离的趋势&#xff0c;越来越多的项目开始采用无状态的认证机制&#xff0c;其中JSON Web Token&#xff08;JWT&#xff09;成为了一种流行的选择。与此同时&#xff0c;Apache Shiro作为一个强大且易于使用的Java安全框架&#xff0c;仍然被广泛…

Windows电脑获取目录及子目录结构及包含文件名的命令

在Windows 11中&#xff0c;你可以使用多种方式来获取当前目录及其子目录的结构&#xff0c;包括文件名。最直接且广泛使用的方法是使用命令行工具&#xff0c;如cmd&#xff08;命令提示符&#xff09;或PowerShell。下面是两种不同方式来实现这一需求的示例。 使用cmd&#…

负载均衡 Ribbon 与 Fegin 远程调用原理

文章目录 一、什么是负载均衡二、Ribbon 负载均衡2.1 Ribbon 使用2.2 Ribbon 实现原理 (★)2.3 Ribbon 负载均衡算法 三、Feign 远程调用3.1 Feign 简述3.2 Feign 的集成3.3 Feign 实现原理 (★) 一、什么是负载均衡 《服务治理&#xff1a;Nacos 注册中心》 末尾提到了负载均…

Vue2和Vue3项目创建的区别和 element ui 和element plus的导入方式

文章目录 创建项目Vue2Vue3 Vue2项目机构Vue 2 Element UI VUE3项目结构Vue 3 Element Plus 创建项目 Vue2 Vue CLI 3 及之前版本&#xff1a; 使用 vue-cli 创建项目&#xff1a; npm install -g vue/cli vue create my-project-vue2 cd my-project-vue2Vue3 Vue CLI 4…

第二十篇——行军篇:别指望外援,好好培养亲兵

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 微观层面&#xff0c;从驯服的视角&#xff0c;我们可以洞察到人性中非常…

一篇文章深入了解Oracle常用命令

1. 数据库 1.1. 数据库启动 & 关闭 –启动数据库 SQL> startup nomount; SQL> alter database mount; SQL> alter database open;–关闭数据库 SQL> shutdown immediate&#xff1b;1.2. 连接数据库 –登录普通用户 SQL>sqlplus 用户名/密码实例名–…

2024.9.4

继续该题&#xff0c;除了实在改不来的&#xff0c;基本快改完了 #2316. 飓风&#xff08;hurricane&#xff09; #1575. 【EOJ Long Round】本质不同GCD 被hack了重新写一下&#xff0c;乱搞复杂度大了点 #2303. 最小子列&#xff08;subseq&#xff09; 先从没有限制考虑起&a…

leveldb源码剖析(二)——LSM Tree

LSM Tree LSM Tree&#xff1a;Log-Structured Merge Tree&#xff0c;日志结构合并树。是一种频繁写性能很高的数据结构。 LSM Tree将写入操作与合并操作分离&#xff0c;数据首先写入磁盘中的日志文件&#xff08;WAL&#xff09;&#xff0c;随后写入内存缓存&#xff0c;…

UDP英译汉网络词典

这里我们用UDP实现一个简单的英译汉小词典。我们还是仿照前一篇的UDP编程&#xff0c;将各自的组件封装起来&#xff0c;实现高内聚低耦合。 一. 字典翻译功能实现 首先我们将我们的字典知识库放在txt文本中。 apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 ha…

云计算之ECS

目录 一、ECS云服务器 1.1 ECS的构成 1.2 ECS的实例规格 1.3 镜像 1.4 磁盘 1.5 安全组 1.6 网络 1.7 产品结构 二、块存储介绍 2.1 快存储定义 2.2 块存储性能指标 2.3 快存储常用操作-云盘扩容 2.4 块存储常见问题 三、快照介绍 3.1 快照定义 3.2 快照常见问题…

flume 使用 exec 采集容器日志,转储磁盘

flume 使用 exec 采集容器日志&#xff0c;转储磁盘 在该场景下&#xff0c;docker 服务为superset&#xff0c;flume 的sources 选择 exec &#xff0c; sinks选择 file roll 。 任务配置 具体配置文件如下&#xff1a; #simple.conf: A single-node Flume configuration#…

随笔(1)将 CSV 文件导入 MySQL 时出现中文乱码问题解决方案

将 CSV 文件导入 MySQL 时出现中文乱码问题解决方案 一、检查 CSV 文件编码 确认 CSV 文件的编码格式。常见的编码有 UTF-8、GBK 等。你可以使用文本编辑器&#xff08;如 Notepad&#xff09;打开 CSV 文件&#xff0c;查看其编码格式。如果编码格式不是 UTF-8&#xff0c;可…

GPT-4o mini轻量级大模型颠覆AI的未来

GPT-4o mini发布&#xff0c;轻量级大模型如何颠覆AI的未来&#xff1f; 引言 随着人工智能技术的飞速发展&#xff0c;大型AI模型的发布已成常态。然而&#xff0c;庞大的计算资源和存储空间限制了它们在广泛场景中的应用。为满足市场需求&#xff0c;轻量级大模型应运而生&a…

TOMATO靶机漏洞复现

步骤一&#xff0c;我们来到tomato页面 什么也弄不了只有一番茄图片 弱口令不行&#xff0c;xxs也不行&#xff0c;xxe还是不行 我们来使用kali来操作... 步骤二&#xff0c;使用dirb再扫一下, dirb http://172.16.1.133 1.发现这个文件可以访问.我们来访问一下 /antibot_i…

【课程学习】信号检测与估计

文章目录 3.7-CRB延展到向量的形式3.8-参数变换形式的CRB CRB for transformation, pp45-463.9-高斯分布 CRLB for the General Gaussian Case3.7-CRB延展到向量的形式 0904 向量和变换形式的CRLB形式 估计参数真实值 θ \theta θ,估计值 θ ^ \hat \theta θ^ 与信号与系统…