2011-04-13 76 views
17

我想知道爲什麼我們使用XML來創建Android中的用戶界面佈局。我知道它將商業邏輯從設計中解耦出來,但除此之外,XML的重要性如何?爲什麼XML用於在Android中創建UI佈局?

另外我想知道自動生成R.java文件這個意義。我只知道它是根據資源的變化而生成的,它可以幫助我們通過他們的ID訪問小部件和資源。

如果有人能夠對這兩方面給出一個清晰的概念,那將是很棒的。

+1

@Abdullah:引自你好的Android由Ed褐發: Android是具有有限內存 和馬力的移動設備進行了優化,所以你可能會覺得奇怪,它使用XML這樣 普遍地。畢竟,XML是一種冗長的,人類可讀的格式,因其簡潔或效率而不爲人知,對吧? 儘管在編寫程序時您會看到XML,但Eclipse 插件會調用Android資源編譯器aapt,以將XML預處理爲壓縮二進制格式。這是存儲在設備上的格式,而不是原始的XML文本。 – rogerstone 2011-04-13 07:28:09

+3

這是正確的,但請記住,任何格式在編譯之前都可以用作源格式。選擇XML的原因主要是因爲它的熟悉程度以及原生支持它的IDE工具的數量。例如,開發者可以選擇JSON並將其編譯爲二進制文件。 – 2011-04-13 15:35:24

回答

24

不同於大家對xml簡單而高效的說法。下面是我從Ed Brunnette的Hello Android中讀到的有意義的東西。

Android針對內存和馬力有限的移動設備進行了優化,因此您可能會發現它非常普遍地使用XML,這讓人覺得很奇怪。畢竟,XML是一種冗長的,人類可讀的格式,因其簡潔或效率而不爲人知,對嗎?

雖然在編寫程序時看到XML,但Eclipse插件調用Android資源編譯器aapt,將XML預處理爲壓縮的二進制格式。**正是這種格式,而不是原始的XML文本,存儲在設備上。

這是我尋找的那種答案(抱歉,如果我的問題不是這樣)。

選擇XML的原因主要是因爲它的熟悉程度以及原生支持它的IDE工具的數量。例如,開發者可以選擇JSON,並將其編譯爲二進制文件。自動生成的R.java文件是IDE的助手,因此您可以在想要訪問資源時獲得自動完成的好處。

+0

很好的答案,謝謝你解釋它,你也可以張貼鏈接從你讀的地方看? – AnkitSablok 2015-12-19 02:40:44

3

相同爲什麼silverlight與xml答案很簡單xml通過集成和可伸縮性給予力量。 R.java是用於索引的,組織的東西永遠不會壞。 對不起我的英語

1

一個可能的原因是,你不需要有任何工作的Java下面,以便能夠看到你正在工作的界面的可視化佈局。 xml ui元素/頁面本質上是一個您可以解析和顯示的文檔。如果這是一個源文件,你必須仔細解析它或者編譯並運行它(所有這些都比解析xml更復雜)

12

XML很容易解析和操作,它基本上是一個樹形結構,大多數UI創建工具已經在使用它。這與解耦業務邏輯無關,因爲您可以使用Model-View-Controller模式在Android中定義Java代碼。

自動生成的R.java文件是IDE的助手,因此您可以在要訪問資源時獲得自動完成的好處。它也阻止你犯愚蠢的錯誤,因爲如果你嘗試訪問你沒有定義的資源,編譯器會發出抱怨。如果您正在使用一個簡單的屬性文件,則直到運行時纔會知道您使用的「密鑰」丟失。

+0

@ Vladmir,@ IanNorton,@ sub:我已經更新了一個新的方面,我在評論中發現了這個。請檢查一下,讓我知道您的意見 – rogerstone 2011-04-13 07:36:41

1

Xml本身很容易被人類和機器讀取。此外,它的可擴展性和開發簡單。另外,你已經提到了解耦。

至於R.java - 它只是訪問小部件的方式。該解決方案非常好,因爲它使用ints而不是string來使用更少的內存,同時爲簡化開發提供了可讀的名稱。