Литмир - Электронная Библиотека
Содержание  
A
A

Резюме 

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

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

При работе с XML очень важно учитывать объем обрабатываемых данных и специфику их назначения. В случае небольших ХМL-документов (например, размером 20 Кбайт) часто оказывается удобным подход, основанный на модели XML DOM, в котором предполагается загрузка в память всего XML-дерева. Модель XML DOM обеспечивает произвольный доступ к данным документа и упрощает обратный вывод документа для его записи на накопитель или в поток. Существенным недостатком модели XML DOM является загрузка в память одновременная всех XML-данных, что делает эту модель в высшей степени зависимой от состояния. При работе с крупными документами этот недостаток может иметь критическое значение.

Разумной низкоуровневой альтернативой при работе с крупными XML-документами являются XML-библиотеки функций, предназначенных для однонаправленной обработки данных. В .NET Compact Framework предлагаются классы XMLReader и XMLWRiter, тогда как в других средах выполнения для однонаправленного доступа к XML-данным могут предоставляться средства модели SAX. Указанный подход позволяет добиться максимально возможной производительности, поскольку соответствующие средства зависят от состояния в меньшей степени и поэтому не нуждаются в загрузке в память дерева данных, представляющего документ. В случае сложных документов осложняется и работа с использованием объектов XMLReader; для отслеживания текущей позиции в иерархии документа может оказаться полезным подход, основанный на использовании конечных автоматов. Объекты XMLWriter упрощают вывод XML-данных с целью их записи в файл. При работе с большими объемами XML- данных на мобильных устройствах использование модели однонаправленной обработки данных может оказаться единственно разумным подходом.

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

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

ГЛАВА 11

Производительность графического кода и пользовательского интерфейса

М-р Брэддок: "Скажи-ка мне, ради чего тогда надо было так тяжко трудиться последние четыре года?"

Бенджамин Брэддок: "Ты меня достал…"

"Выпускник" (The Graduate) (1967)

Элен Робинсон: "Я не хочу, чтобы ты брался за что- либо без четко составленного плана".

"Выпускник" (1967)

Введение

Несомненно, "Выпускник" — один из лучших фильмов всех времен и народов, но какое это имеет отношение к разработке пользовательских интерфейсов мобильных приложений?

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

Наиболее бросающимся в глаза аспектом производительности приложения является пользовательский интерфейс. То, насколько быстро приложение реагирует на команды пользователя, и с какой скоростью выполняются задачи, требующие перерисовки экрана, оказывает огромнейшее влияние на пользовательское восприятие приложения. Замедленное выполнение, мерцание пользовательского интерфейса и любые остановки при выполнении тех операций, которые должны были бы осуществляться без какой-либо задержки, формируют у пользователя отрицательное отношение к вашему приложению. Поскольку мобильными устройствами люди часто пользуются, держа их в руках, и поэтому относятся к ним, как к простым механическим инструментам, от них ожидается еще большая способность к отклику, чем от настольных компьютеров; ни с чем похожим на мерцание циферблата наручных часов, периодическое исчезновение из поля зрения карты города или страниц записной книжки в обычных условиях сталкиваться не приходится. Многие разработчики беззаботно погружают приложение в неэффективный интерфейс, в результате чего создается впечатление, что само по себе неплохое приложение работает очень медленно. Добиться удовлетворительной производительности пользовательского интерфейса на мобильных устройствах вполне возможно, но это требует большого внимания к деталям. Что необходимо — так это стратегия, которая могла бы гарантировать, что будут решаться именно те проблемы, от которых зависит быстродействие пользовательского интерфейса и комфортность работы с приложением.

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

101
{"b":"947732","o":1}