2458
- 收藏
- 点赞
- 分享
- 举报
解开安卓命名空间xmlns的面纱
朋友们,,,好!:)
今天给大家介绍下安卓里的xmlns这个玩意,这是什么东东呢?
[size=4][color=Red]xmlns,是XML Namespaces的缩写,中文名称是XML(可扩展标记语言)命名空间 。[/color][/size]
首先是命名空间 Namespace这个概念,我们在学习C++和C#的时候,记得都有使用到这个东西,首先命名空间是用来组织和重用代码的编译单元。如同名字一样的意思,NameSpace(名字空间)的出现是因为人类可用的单词数太少,并且不同的人写的程序可能出现变量重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。
在C++代码里我们总会看到这样的一句代码在整个文件的头部位置“using namespace std”,这表示的是该文件使用的是标准C++库中定义的名称为std的命名空间中的标识符;同样在C#中我们会用到using system来引用系统的命名空间,来使用int、bool这些标识符。而在Java里面,我们使用的都是class,而且同一个包名下的class不能重名,那基本上和命名空间的处理相似,但却不是命名空间这个概念,import对应的package来实现对应的class的调用。
这里说的Android命名空间的概念不是基于Java的而是对应xml文件来说的,也就是xmlns这个,我们打开一个Android工程,在其清单文件的开头有这两句代码:
[attach]2797[/attach]
第一行代码:<?xml version="1.0" encoding="utf-8"?> 是xml文件的起始码,指明了版本和字符编码
我们说的是第二行代码:xmlns:android="http://schemas.android.com/apk/res/android"
这一句的含义究竟是什么呢?
上面我们讲到xmlns这个是xml命名空间的意思,那么这句话的意思也就是android这个xml命名空间的资源路径在“http://schemas.android.com/apk/res/android”里面。
那这个路径代表的究竟又是什么意思?其实http://schemas.android.com/apk/res/!这是res资源的标准前缀,后面的这个android是一个包名。也就是我们使用android命名空间的资源定义的路径在android这个包名之下。那后面我们通过android引出的属性,例如一个TextView的text值我们直接就可以通过下面的代码进行设置了:
如android:text="@string/helloworld"
这样访问res下的文件就方便了很多。:lol
ok,that's all!
悦分享,越快乐!:handshake
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2020-11-11 10:09:54
-
2020-04-17 16:24:01
-
12015-08-17 21:09:26
-
2015-08-19 21:45:26
-
42015-10-14 18:49:25
-
32015-08-17 20:38:04
-
2015-08-07 21:22:46
-
2020-07-07 17:58:02
-
2020-12-04 15:25:40
-
2014-09-21 22:33:44
-
2015-12-09 13:18:28
-
2019-12-05 16:21:34
-
2019-01-13 11:15:59
-
2015-08-05 14:51:39
-
2021-01-20 15:50:47
-
2015-08-31 10:02:50
-
2015-08-17 20:11:57
-
2015-08-05 18:29:58
-
2022-05-24 14:26:11
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认