導航:首頁 > 操作系統 > androidxml命名

androidxml命名

發布時間:2025-01-08 10:10:53

㈠ 如何理解android中的xmlns

首先,我們先來看下到底什麼是xmlns,它是 XML 文檔中的一個概念:英文叫做 XML namespace,中文翻譯為 XML 命名空間。一講到命名空間,我想很多人會聯想到C++中的namespace和Java中的 packagename,而這兩者的作用都是為了解決命名上的沖突(例如類名,介面名等)。類似的,XML namespace也是為了解決 XML 中元素和屬性命名沖突,因為 XML 中的標簽並不是預定義的,這一點與 HTML 是有區別的,HTML 中的標簽是預定義的,所以我們會遇到命名沖突的問題。

XML 命名空間定義語法為xmlns:namespace-prefix="namespaceURI",一共分為三個部分:

xmlns:聲明命名空間的保留字,其實就是XML中元素的一個屬性;

namespace-prefix:命名空間的前綴,這個前綴與某個命名空間相關聯;

namespaceURI:命名空間的唯一標識符,一般就是一個URI引用。

通過上面的內容的講解,我們對命名空間有了一定的了解,下面我們通過一個例子引用來說明一下xmlns屬性是如何解決命名沖突的:

命名沖突
在 XML 中,元素名稱是由開發者定義的,當兩個不同的文檔使用相同的元素名時,就會發生命名沖突。這個 XML 文檔攜帶著某個表格中的信息:

<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

這個 XML 文檔攜帶有關桌子的信息:

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

假如這兩個 XML 文檔被一起使用,由於兩個文檔都包含帶有不同內容和定義的 <table> 元素,就會發生命名沖突。XML 解析器無法確定如何處理這類沖突。

使用命名空間(Namespace)
這個XML文檔攜帶著某個表格中的信息:

<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

此XML文檔攜帶著有關一件傢具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

我們為<table>標簽添加了一個xmlns屬性,並在每個標簽前面都添加了相應的前綴,這個前綴是一個與某個命名空間相關聯的限定名稱,這個前綴就代表後面那個 URI 引用,或者說一個縮寫。

關於xmlns就先簡單講到這里,大家如果要深入了解的話,可以點擊本文中的跳轉鏈接,下一節我們來看下 Android 中的那些xmlns。

Android中的xmlns

在Android中,目前我們碰到的xmlns一共有三種:

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"

android

命名空間android用於 Android 系統定義的一些屬性。

app

命名空間app用於我們應用自定義的一些屬性,這個與 Android 自定義屬性和系統控制項擴展應該有關系,大家可以再繼續研究一下。

tools

根據官方定義,tools命名空間用於在 XML 文檔記錄一些,當應用打包的時候,會把這部分信息給過濾掉,不會增加應用的 size,說直白點,這些屬性是為IDE提供相關信息

㈡ 如何在AndroidStudio中新建xml文件夾

如下圖所示,在res文件夾處右鍵單擊,選擇「new」,再選擇「Androidresource directory 」 :彈出對話框命名即可。

㈢ android中xml中有些控制項的屬性裡面有 "app:.." ,此處的app:是什麼意思和一般的android:有什麼區別

xmlns:Android=」http://schemas.android.com/apk/res/android」

xmlns:app=」http://schemas.android.com/apk/res-auto」

xmlns:cutstom="http://schemas.android.com/apk/res/com.example.customview"

android 和 app 都是xml 裡面的命名空間,android 是系統默認的,app是自定義的,你改成其它名字也可以,常用於自定義控制項的自定義屬性,res-auto會自動查找項目下的自定義屬性,也可以在後面跟上包名

--------------------
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<!--這里的name跟xmlns裡面的app沒關系,只是在自定義view裡面通過這個取自定義屬性-->
<declare-styleablename="CustomText">
<attrname="tsize"format="dimension"/>
<attrname="tcolor"format="color"/>
</declare-styleable>
</resources>
---------------------
xmlns:app=」http://schemas.android.com/apk/res-auto」

<com.example.customview.CustomTextView
app:tsize="5dp"
android:text="123"
>
</com.example.customview.CustomTextView>
閱讀全文

與androidxml命名相關的資料

熱點內容
如何對安卓應用反編譯 瀏覽:410
鯤鵬pc伺服器是什麼 瀏覽:572
一級防震梁箍筋加密 瀏覽:928
linuxxampp64位 瀏覽:728
西安哪個app能買到東西 瀏覽:457
eps命令鍵 瀏覽:37
塑料文件夾的尺寸 瀏覽:210
君威壓縮機電磁閥 瀏覽:945
安卓6手機為什麼不能用app 瀏覽:860
什麼java編譯器支持中文 瀏覽:563
香港伺服器如何做代理 瀏覽:201
pdf寫入 瀏覽:986
高爾夫電台怎麼添加到文件夾 瀏覽:239
四川麻將一般下哪個app 瀏覽:864
反編譯exe腳本 瀏覽:462
源碼文件夾怎麼編譯到固件中 瀏覽:912
ERp列印伺服器錯誤怎麼弄 瀏覽:113
蚌埠u盤加密軟體有哪些 瀏覽:180
前端如何認證伺服器 瀏覽:556
linux切換db2用戶命令 瀏覽:308