Почему XML используется для создания макетов пользовательского интерфейса в Android?

17

Я хотел бы знать, почему мы используем XML для создания макетов пользовательского интерфейса в Android . Я знаю, что он отделяет логику buisness от дизайна, но каково значение XML, кроме этого?

Также я хотел бы знать значение значения autogenerated R.java . Все, что я знаю, что он создается в соответствии с изменениями в ресурсах и помогает нам получить доступ к виджетам и ресурсам через их идентификаторы.

Было бы здорово, если бы кто-то мог дать четкое представление об этих двух аспектах.

    
задан rogerstone 13.04.2011 в 08:52
источник
  • @Abdullah: Цитата от Hello Android от Ed Brunette: Android оптимизирован для мобильных устройств с ограниченной памятью и мощностью, поэтому вам может показаться странным, что он использует XML так широко. В конце концов, XML - это подробный, удобочитаемый для человека формат, не известный своей краткостью или эффективностью, верно? Несмотря на то, что вы видите XML при написании своей программы, подключаемый модуль Eclipse вызывает компилятор ресурсов Android aapt для предварительной обработки XML в сжатый двоичный формат. Именно этот формат, а не оригинальный текст XML, хранится на устройстве. –  rogerstone 13.04.2011 в 09:28
  • Правильно, но имейте в виду, что любой формат мог использоваться в качестве исходного формата до его компиляции. Причина, по которой был выбран XML, объясняется главным образом его знакомством и количеством инструментов IDE, которые его поддерживают. Разработчики могли бы выбрать JSON, например, и все еще скомпилировали это в двоичный файл. –  Abdullah Jibaly 13.04.2011 в 17:35

5 ответов

24

В отличие от того, что все говорили о том, что xml является простым и эффективным. Вот что я прочитал из Hello Android от Ed Brunnette, который имел смысл.

Android оптимизирован для мобильных устройств с ограниченной памятью и мощностью, поэтому вам может показаться странным, что он широко использует XML. В конце концов, XML - это подробный, удобочитаемый для человека формат, не известный своей краткостью или эффективностью, верно?

Несмотря на то, что вы видите XML при написании своей программы, подключаемый модуль Eclipse вызывает компилятор ресурсов Android aapt для предварительной обработки XML в сжатый двоичный формат. ** Этот формат, а не оригинальный текст XML, является сохраненных на устройстве.

Это был тот ответ, который я искал. (извините, если мой вопрос означал иначе).

Причина, по которой был выбран XML, объясняется главным образом его знакомством и количеством инструментов IDE, которые его поддерживают. Разработчики могли выбрать JSON, например, и все еще скомпилировали это для двоичного файла. Автогенерированный файл R.java является помощником для IDE, так что вы можете получить преимущество автозаполнения, когда хотите получить доступ к ресурсу.

    
ответ дан rogerstone 17.04.2011 в 11:04
источник
  • хороший ответ, спасибо за объяснение, вы также можете опубликовать ссылку, откуда вы ее прочитали? –  AnkitSablok 19.12.2015 в 03:40
12

XML легко анализировать и манипулировать программно, это в основном древовидная структура, и большинство инструментов создания пользовательского интерфейса уже используют его. Это действительно не имеет ничего общего с развязкой бизнес-логики, потому что вы также можете определить Java-код на Android, используя шаблон Model-View-Controller.

Автогенерированный файл R.java является помощником для IDE, так что вы можете получить преимущество автозаполнения, когда хотите получить доступ к ресурсу. Это также мешает вам делать глупые ошибки, поскольку компилятор будет жаловаться, если вы попытаетесь получить доступ к ресурсу, который вы не определили. Если вы использовали простой файл свойств, вы не знали бы до тех пор, пока не будет запущен «ключ», который вы используете.

    
ответ дан Abdullah Jibaly 13.04.2011 в 09:00
источник
  • @ Vladmir, @ IanNorton, @ sub: Я обновил новый аспект, который я нашел в этом в комментариях. Пожалуйста, проверьте это и дайте мне знать ваши взгляды –  rogerstone 13.04.2011 в 09:36
3

Как и для Silverlight с xml, ответ простой xml дает возможность интеграции и масштабируемости. R.java - для индексации, когда организованные вещи никогда не плохи. Извините мой английский

    
ответ дан PedroAGSantos 13.04.2011 в 08:58
источник
1

Одна из возможных причин заключается в том, что вам не нужно иметь какую-либо рабочую java, чтобы видеть визуальный макет интерфейса, над которым вы работаете. Элемент / страница xml ui - это, по сути, документ, который вы можете анализировать и отображать. Если это был исходный файл, вам придется либо тщательно разобрать его, либо скомпилировать и запустить (все из которых более сложны, чем разбор xml)

    
ответ дан IanNorton 13.04.2011 в 08:59
источник
1

Xml как сам хорошо читается как человеком, так и машиной. Кроме того, он масштабируется и прост в разработке. Кроме того, вы уже упоминали о развязке.

Что касается R.java - это просто способ доступа к виджетам. Решение довольно хорошо, поскольку вместо использования строки вместо использования строки используется меньше, а в то же время предоставляет читаемые имена для простоты разработки.

    
ответ дан Vladimir Ivanov 13.04.2011 в 09:01
источник