2012-06-28 5 views
5

Мы создаем много файлов XML для одного приложения в разработке приложений для Android; конечно, это главная тема андроида. Для каждого экрана приложения мы создаем XML с некоторыми макетами (статическая реализация). При выполнении каждый раз, когда XML-файл будет прочитан, чтобы получить все ресурсы, которые он хочет отобразить на экране, который мы разработали.Почему мы используем xml?

Та же конструкция может быть достигнута путем добавления нескольких строк в самом Java-коде (динамическая реализация). Например, мы можем расширить ListActivity вместо создания файла XML, например. Тогда зачем идти на XML, так как приложение должно читать файл из памяти телефона, что может привести к медленному доступу и замедлить работу приложения?

Таким образом, динамическая реализация всегда лучше, чем статическая.

Пожалуйста, исправьте меня, если я ошибаюсь.

+1

Я не мог найти для этого источник, но я думал, что XML-файлы ресурсов анализируются при компиляции в оптимизированную структуру данных (что-то вроде AST), которая может быть быстро загружена и интерпретирована системой. Я не думаю, что загрузка этих предварительно обработанных XML-файлов - большая часть накладных расходов. Вы сравнивали время между onCreate() и onGlobalLayout()? Другими вещами обычно являются проблемы с производительностью. Как HTTP-запросы, слишком сложные (вложенные) макеты, а не повторное использование объектов, которые можно было повторно использовать и т. Д. – tiguchi

+0

@NobuGames: Вы правы - файлы макета XML предварительно обрабатываются во время сборки. Я никогда не видел медленного представления пользовательского интерфейса, и если OP видит отставание, то, как вы полагаете, это может быть связано с чем-то еще в коде, который замедляет основной поток вниз. – Squonk

+0

Итак, android: text = "@ string/mytext" и textview.setText ("Hello"); не имеет большого значения в производительности, правильно. Обратите внимание, что XML (main.xml) снова читает другой XML-файл (string.xml). – Aswin

ответ

1

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

0

Да, если отображаемый контент является динамическим, лучшим вариантом является Java-код.

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

Другим преимуществом XML является то, что он отделяет представление от логики. Прочтите это link для получения дополнительной информации.

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

0

От Android разработчика Документация:

http://developer.android.com/guide/topics/ui/declaring-layout.html

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

Существуют плюсы и минусы в обоих методах (XML и программирование во время выполнения). Это зависит от того, чего вы хотите достичь. Например, если вы хотите различать макет презентации в зависимости от размера экрана, плотности экрана, языка, ecc .. XML-путь - лучшее решение.

5

Это помогает организовать и визуализировать макеты очень красиво. Он обеспечивает основу для gui, которая позволяет нескольким устройствам поддерживаться гораздо меньше кода.

0

Использование XML также очень помогает в том, что вы можете точно видеть, что делает каждый макет, или, по крайней мере, то, что означает его содержание. Если ваш XML - это просто пустой LinearLayout, и все добавляется программно, когда вы смотрите на этот XML-файл, вы не поймете, что его использовали и нужно искать код, который его использует.

0

Вот что я получаю, чтобы прочитать о XML

Android оптимизирована для мобильных устройств с ограниченным объемом памяти и мощности, так что вы можете обнаружить, что странно, что он использует XML так pervasively.

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

Смежные вопросы