Опубликован: 13.10.2008 | Доступ: свободный | Студентов: 1593 / 172 | Оценка: 4.22 / 3.70 | Длительность: 09:12:00
ISBN: 978-5-9963-0003-7
Лекция 8:

Разработка приложений для мобильных устройств: Smartphones, Pocket PC

< Лекция 7 || Лекция 8 || Лекция 9 >
Аннотация: Особенности мобильных устройств. Наиболее перспективные приложения. Особенности разработки приложений. .NET Compact Framework

История проблемы

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

Особым классом устройств являются мобильные вычислительные устройства, такие как Pocket PC, смартфоны или Tablet PC. Главное их преимущество состоит в возможности носить с собой устройство с немалой вычислительной мощностью. Все больше мобильных устройств оборудуется средствами доступа в Internet. Каждое устройство взаимодействует с Internet специфичным для себя образом. Этим устройствам тоже нужно ПО. Однако мобильность таких устройств требует разработки для них ПО иного типа.

Наладонные ПК (они же Pocket PC в терминологии Microsoft). Большинство компаний - производителей самих устройств и операционных систем для них продвигают эти устройства в качестве универсальных вычислительных устройств, аналогичных ПК. Однако по распространенности наладонным компьютерам пока что еще далеко до обычных ПК или мобильных телефонов. Операционные системы Microsoft установлены примерно на трети этих компьютеров, на остальных работает в основном операционная система Palm OS компании PalmSource, Inc. На сегодняшний день лишь немногие подтвердили собственными вложениями, что мобильность наладонных компьютеров стоит того, чтобы мириться с неудобством ввода текста, крошечным дисплеем и необходимостью носить с собой устройство, примерно в три раза превосходящее по размерам и весу мобильный телефон. (Информация устарела.)

Наиболее перспективные приложения наладонных ПК

Наладонные ПК удобно рассматривать как отдельный класс ПК - не урезанных, а просто мобильных. Медленное распространение наладонных компьютеров обусловлено фундаментальным непониманием их возможностей и преимуществ, а также потребностей реальных пользователей. Менее четверти обладателей ПК тратит время на то, чтобы ввести личный список дел в ПК. Еще меньше переносят этот список на мобильное устройство. Если перестать думать о наладонных ПК и смартфонах как об универсальных устройствах и задаться вопросом "Какие же реальные задачи можно решать с помощью этих устройств?", то минимум две такие задачи станут очевидны.

Первая задача - ввод данных на мобильные устройства. Превосходным примером служит программа, победившая на соревнованиях Imagine Cup 2003, проводимых Microsoft среди студентов. Система позволяла вводить данные на двух языках и была предназначена для официантов ресторана, который принадлежал отцу автора программы. Шеф-повар этого этнического ресторана плохо говорил по-английски, а найти официанта со знанием вьетнамского языка в Охаме (штат Небраска) нелегко. Автор программы Ту Нгуена решил ввести меню в Pocket PC. Официанты записывают пожелания клиента, просто помечая по-английски поля в меню КПК, и отправляют заказ на сервер по беспроводной сети. С помощью таблицы соответствия сервер переводил заказ на вьетнамский язык. Заказы поступали шеф-повару гораздо быстрее, так как официантам не нужно было ходить на кухню или стоять в очереди у одного окошка. Исчезли проблемы с задержками заказов и их неправильным пониманием.

Официанты не используют Word и Excel, не работают со своим расписанием и даже не играют в "Шарики". Но эта небольшая простая система сократила время практически на всех этапах бизнес-процесса. Мобильные устройства отлично подходят для специализированных, а не общих задач.

Вторая задача - создание сервисов на основе системы глобального позиционирования. Речь идет о сервисах, настраивающихся в зависимости от текущего местонахождения мобильного пользователя. Большинство мобильных устройств сейчас поддерживают GPS (Global Positioning System). Кроме того, добавить в Pocket PC поддержку GPS довольно легко.

Такие сервисы могут заниматься планированием маршрутов ("Где я и как мне попасть отсюда домой?"), поиском необходимых предприятий из сферы услуг ("Где найти ближайшую дежурную аптеку?"). Именно здесь и оказываются полезными смартфоны. Сотовый телефон сейчас есть практически у каждого взрослого и подростка в развитых странах, а также практически у каждого обеспеченного человека - в развивающихся. Не нужно пытаться убедить этих людей приобрести и носить с собой новый прибор. Они уже носят телефоны, так как считают, что базовые услуги сотовой связи полезны сами по себе. Если написать для мобильного телефона приложение-хит, они могут купить именно этот телефон, а не телефон конкурирующей компании.

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

У всех компактных устройств довольно скудные ресурсы по сравнению с современными ПК. Так как чаще всего мобильное устройство обслуживает всего одного пользователя, масштабируемость не важна. Кроме того, в отличие от ПК, на мобильном устройстве обычно единовременно может выполняться только одно приложение. Мобильные устройства имеют фиксированное небольшое разрешение экрана. Например, 240х320 или 640х480 у Pocket PC, а у смартфона бывает еще меньше - 176х180. Тактовые частоты компактных устройств также невелики - около 500 МГц в современных моделях. Средства программирования должны генерировать эффективный код для работы на устройствах с ограниченными ресурсами.

Microsoft .NET Compact Framework

Microsoft довольно давно стремится на рынок компактных устройств. В области ОС у Microsoft есть два основных продукта: Windows XP Embedded и Windows CE. Довольно долгое время разработка для Wndows CE велась с помощью eMbedded Visual C++ и eMbedded Visual Basic. Чтобы упростить разработку, была создана .NET Compact Framework. Эта инфраструктура предоставляет возможности .NET (независимость от выбора языка программирования, сбор мусора, компиляцию по требованию и т. д.) для разработки приложений для компактных устройств.

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

В целях повышения производительности .NET Compact Framework постоянно совершенствуется. Оптимизируются старые классы, добавляются новые. По сути, .NET Compact Framework является сокращенной версией .NET Framework. Какая же часть инфраструктуры поддерживается? Сухие цифры выглядят примерно так:

Классы Методы
Полная .NET Framework 18 700 80 000
Compact .NET Framework 4 700 13 000

На рисунке дано наглядное представление, какие классы присутствуют, а какие были удалены. Основная идея - оставить классы, полезные для небольших, не требующих ресурсов клиентских приложений. Удалены все классы, применяемые на серверной стороне (System.Web.UI). Продвинутые возможности System.Drawing.Imaging тоже не нужны на дисплеях компактных устройств. Удалены многие средства программирования самого нижнего уровня (например, Remoting). InteropServices поддерживает только p/Invoke для прямого обращения к неуправляемым API, но не к COM. Почти весь Reflection остался. Оставшиеся классы максимально урезаны. Например, сборщик мусора для экономии памяти не поддерживает поколения объектов. System.GC.Collect не умеет собирать объекты заданного поколения. У некоторых методов нет перегруженных версий.

Общая структура .NET Compact Framework

Рис. 8.1. Общая структура .NET Compact Framework

В справочной системе есть фильтр, отображающий только классы Compact Framework. Кроме того, во всех описаниях классов MSDN члены классов, доступные в Compact Framework, особо помечены. Проекты .NET Compact Framework в Visual Studio выглядят почти как обычные проекты. Для отладки приложения в Visual Studio есть программные эмуляторы Pocket PC и смартфона. Разумеется, они работают примерно в 4-6 раз медленнее настоящих устройств. Visual Studio может генерировать cab-файл для установки приложения на Pocket PC.

Итоги

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

< Лекция 7 || Лекция 8 || Лекция 9 >
Вячеслав Кузнецов
Вячеслав Кузнецов

Здравствуйте.

Как оплатить курс?