Общие сведения о платформе Windows Phone 7.5
Презентацию к данной лекции Вы можете скачать здесь.
1.1. Платформа Windows Phone
В наше время компьютеры принимают участие практически во всех сферах жизни. Мобильные телефоны не являются исключением. Устройство на платформе Windows Phone можно считать компьютером, который может делать телефонные звонки, а не просто телефоном, который может запускать программы.
Характеристики устройств на платформе Windows Phone сходны с компьютерами: мощный процессор, локальное хранилище данных, высокопроизводительная трёхмерная графика и много оперативной памяти. Управление устройством и запущенными на нём программами осуществляет своя операционная система, которую можно сравнить с операционной системой Windows для настольных компьютеров: она запускается при включении компьютера, и по окончании работы выключает компьютер.
Серия Windows Phone 7 существенно отличается от предыдущих версий устройств под управлением операционной системы Windows Mobile. В Windows Mobile можно было создавать программы и запускать их на более ранних версиях операционной системы, но при этом не использовалась среда Silverlight или XNA. Номер 7 в названии продукта означает 7-ое воплощение платформы операционной системы Windows Mobile. Это не значит, что она основана на операционной системе Windows 7, но программу для Windows Phone можно запустить на компьютере под управлением Windows. Поддержка Silverlight и XNA не разрывает связей с прошлым, а является сбалансированным сочетанием преемственности и нововведений.
Аппаратные требования для устройств на Windows Phone 7 являются довольно серьёзными для мобильных устройств. Все устройства Windows Phone должны соответствовать определённым минимальным требованиям, но производители телефонов могут выпускать устройства с большим объёмом памяти, более быстрым процессором, аппаратной клавиатурой и большим экраном. При этом, в устройстве может не быть аппаратной клавиатуры — у большинства устройств она будет экранной. При создании программ на XNA разработчикам придётся привыкать к подобным изменениям в аппаратной части. Однако, в состав платформы входят несколько устройств, особенно полезных при разработке игр, например, акселерометр и сенсорный экран.
Процессор Windows Phone
Центральный процессор (CPU) компьютера является устройством, который выполняет всю работу. При запуске программы центральный процессор отвечает за выборку данных из памяти, изменение и возврат данных. Самой распространённой характеристикой скорости работы компьютера является тактовая частота процессора. В состав центрального процессора входят часы, которые при работе отсчитывают такты. За один такт центральный процессор может выполнить одну часть низкоуровневой операции: выборка инструкции из памяти, выполнение вычисления и т.д.
Чем выше тактовая частота, тем быстрее работает процессор. Тактовая частота процессоров современных настольных компьютеров находится в пределах 3 ГГц (приблизительно 3 тысячи миллиарда раз в секунду). Это означает, что один такт длится приблизительно одну наносекунду. За это время сигнал может преодолеть расстояние примерно 30 см. Время, за которое сигналы могут пройти через схему, является серьёзным ограничивающим фактором.
Частота процессора в Windows Phone составляет около 1 ГГц. Можно предположить, что скорость Windows Phone примерно равна третьей части скорости компьютера. Но на практике это неверно по нескольким причинам.
Во-первых, тактовая частота не сопоставима между процессорами компьютера и мобильного устройства. Процессор компьютера может за пять тактов сделать то, на что процессору Windows Phone нужно десять тактов. Процессор компьютера может выполнять аппаратно многие операции (например, операции с плавающей точкой), для выполнения которых процессору Windows Phone обычно требуется вызов подпрограммы, что будет выполняться намного медленнее.
Во-вторых, в компьютере может быть несколько процессоров. Это не значит, что компьютер может работать быстрее, но процессоры могут обработать больше данных за одно время. В состав устройств Windows Phone входит только один процессор.
Наконец, в компьютере практически не ограничено электропитание. Центральный процессор компьютера может работать на максимальной скорости столько времени, сколько нужно. При этом, возникает проблема, связанная с тем, что процессор должен всё время охлаждаться. Чем быстрее работает процессор, тем больше энергии он потребляет. Если бы процессор телефона работал бы всё время на максимальной скорости, то срок службы аккумулятора был бы очень коротким. Операционная система телефона ускоряет и замедляет процессор в зависимости от того, какие операции он должен выполнить в данный момент. Хотя в телефоне быстрый процессор, он используется на полную мощность, только когда телефон должен выполнить действия, требующие очень быстрой реакции.
Таким образом, при создании программы для Windows Phone вычислительная мощность процессора не является неограниченным ресурсом. Программисты для Windows Phone должны помнить, что приложения должны быть удобными в использовании и не должны приводить к быстрой разрядке аккумулятора телефона.
Операционная система Windows Phone
Операционная система Windows Phone 7 не основана на операционной системе Windows 7 для настольных компьютеров. Операционная система Windows Phone является развитием системы Windows CE (Compact Edition), которая была специально разработана для работы на портативных компьютерных системах и оптимизирована в части производительности и сохранении срока службы аккумулятора устройства. Однако, программа будет работать в Windows Phone так же, как и на компьютере.
Графический экран
Экран Windows Phone имеет высокое разрешение и содержит большое количество пикселей. Он позволяет использовать графику высокого качества и позволяет выводить на экран большое количество текста. Чем больше пикселей будет на экране, чем выше качество изображения, которое можно вывести на экран. Однако, чем больше пикселей в изображении, тем больше памяти нужно для того чтобы сохранить изображение, и компьютер должен выполнить больше операций для перерисовки изображение на экране. Это особенно важно для мобильного устройства, так как увеличение работы аппаратных средств означает больший расход энергии и сокращает срок службы аккумулятора. Выбор разрешения экрана — это компромисс между сроком службы аккумулятора, стоимостью его изготовления и яркостью экрана (чем меньше пиксели, тем ниже яркость экрана).
В текущей версии Windows Phone разрешение экрана составляет 800*480 пикселей. Его можно использовать в альбомной или книжной ориентации. В телефоне есть акселерометр, который определяет, в каком положении находится телефон. Операционная система Windows Phone может скорректировать изображение в соответствии с ориентацией телефона.
Разработчик может задавать, какую ориентацию экрана поддерживает приложение. По умолчанию приложения Silverlight отображаются в портретном режиме, но можно сделать так, чтобы они самостоятельно приспосабливались к изменениям ориентации экрана. Специально для обнаружения изменения ориентации предусмотрены новые события, а некоторые изменения обрабатываются автоматически. Разработчики игр обычно задают конкретную ориентацию экрана пользователя. Программы на XNA по умолчанию используют альбомный режим, но это свойство легко переопределить.
Разработчики приложений для телефонов часто сталкиваются с проблемой, связанной с большим количеством размеров экрана различных устройств. Обычно программу нужно настраивать под каждый доступный размер экрана. Аппаратные средства Windows Phone могут масштабировать экран приложения под физический размер экрана устройства. Такая возможность может повысить быстродействие в играх и позволяет создавать игры, которые будут выглядеть одинаково на любом устройстве.
Графический процессор Windows Phone
В самых первых компьютерах всю работу выполнял непосредственно центральный процессор. К числу выполняемых задач относится и вывод изображения на экран. Позже всю работу по выводу изображений на экран стало выполнять специализированное устройство для управления экраном — графический процессор (GPU). Усовершенствованные графические процессоры поддерживают трёхмерную графику и могут выполнять операции над числами с плавающей точкой и над матрицами. Они также содержат пиксельные шейдеры, которые могут быть запрограммированы для обработки изображений в каждой точке экрана с высокой скоростью, включая отрисовку, добавление эффектов освещения и размытости и др.
До недавнего времени графические процессоры были только в настольных компьютерах и игровых приставках, но теперь они появились и в мобильных телефонах. Платформа Windows Phone содержит чип для обработки графики, который используется для создания 3D эффектов на экране телефона и также может использоваться в среде проектирования игр XNA для создания быстрых 3D игр.
Сенсорный экран
Старые портативные устройства использовали резистивные сенсорные экраны. Когда пользователь прикасается к резистивному экрану, его пластмассовая поверхность сгибается и воздействует на нижний уровень. Точка касания определяется на основе информации об изменении электрического сопротивления на границе контакта. Резистивные сенсорные экраны дёшевы в изготовлении и хорошо работают со стилусом. Однако такой принцип работы затрудняет обнаружение нескольких одновременных касаний. Также трудно сделать резистивный экран из твёрдого материала, например, стекла, поскольку экран должен согнуться для возникновения контакта, определяющего точку ввода.
Емкостной сенсорный экран работает по-другому. Последовательность проводников под экранной поверхностью фиксирует изменение ёмкости, которое происходит при касании. На основе этой информации аппаратные средства сенсорного экрана решают, в каком месте экрана произошёл сенсорный ввод. Стоимость изготовления емкостных сенсорных экранов выше, чем резистивных, поскольку требуют наличия дополнительных аппаратных средств для обработки входных сигналов, но схемы датчиков можно разместить на обратной стороне стеклянного экрана, чтобы сделать экран более жёстким. Емкостной сенсорный экран не так точен, как резистивный при использовании стилуса, но емкостной экран может обнаружить несколько одновременных касаний экрана.
Во всех устройствах Windows Phone сенсорный экран емкостного типа может отслеживать, как минимум, четыре касания. Переход к мультисенсорному вводу является важным шагом в развитии мобильных устройств. Пользователь может управлять программным обеспечением, используя мультисенсорные жесты. Операционная система Windows Phone имеет средства для распознавания жестов, которые можно использовать в программах.
Камера
Практически во всех мобильных устройствах есть камеры — и Windows Phone не исключение. Телефон снабжён камерой с разрешением от 5 мегапикселей и вспышкой, что сравнимо с разрешением цифрового фотоаппарата. 5-мегапиксельные изображения могут быть напечатаны на фотобумаге в формате 13*18 см в хорошем качестве.
Приложения для Windows Phone могут управлять камерой и использовать её для создания снимков или видеопотоков. Приложения также могут напрямую получить доступ к видеопотоку и добавлять к воспроизведению дополнительные объекты или обнаруживать определённые элементы, такие как штрих-коды или лица на фотографиях. Пользователь может сохранять сделанные снимки в телефоне в качестве мультимедийного контента. Программы могут открывать эти изображения и работать с ними.
Устройства для определения местоположения и перемещения
Устройство Windows Phone может определить своё местоположение. В его состав входит устройство системы глобального позиционирования (GPS), которое получает спутниковые сигналы для определения местоположения телефона. Поскольку GPS хорошо работает только в открытом пространстве, телефоны также используют другие методы определения местоположения (A-GPS): информация о местоположении ближайшей вышки сотовых операторов и/или местоположение используемой точки доступа Wi-Fi-подключения. Методы A-GPS помогают определить местоположение при нахождении в зданиях и закрытых территориях.
Операционная система Windows Phone предоставляет методы, которые программы могут использовать для определения местоположения устройства. Среда разработки содержит эмулятор GPS, для того чтобы можно было проверить, как программы используют информацию о местоположении.
Акселерометр — это аппаратное устройство для измерения ускорения. Акселерометр измеряет ускорение, которое является физической величиной, обозначающей изменение скорости. Также акселерометр реагирует на изменение гравитации. Программы могут получать значение вектора в трёхмерном пространстве, который определяет положение телефона относительно земли. Акселерометр также может обнаруживать резкие перемещения телефона, что можно использовать для управления в играх.
Телефон также содержит электронный компас, с помощью которого программа может определить, в каком направлении указывает телефон. Это может быть полезно для создания приложений "расширенной реальности".
Механический гироскоп — это устройство, которое всегда указывает в определённом направлении. Windows Phone содержит его электронный вариант, который позволяет определить, когда телефон перемещают или поворачивают в разные стороны. Программы могут использовать акселерометр, чтобы определить положение телефона в пространстве, но гироскоп даёт намного более точную информацию и может также предоставить информацию о скорости перемещения или вращения.
Когда программа использует много датчиков, трудно проверить, как программы реагируют на определённую последовательность движений и действий. К счастью, Windows Phone предоставляет единый программный объект, который объединяет информацию с различных датчиков и предоставляет программам возможность определять ориентацию и перемещение телефона. Можно создать собственную последовательность действий, которую можно воспроизвести в эмуляторе Windows Phone при тестировании программы.
Аппаратные кнопки
Все программы Windows Phone используют стандартный пользовательский интерфейс. Дизайн телефона предусматривает несколько аппаратных кнопок, которые должны быть в каждом устройстве и должны выполнять одну и ту же функцию независимо от конструкции и модели телефона.
- Пуск — позволяет начать выполнение нового действия. При нажатии на кнопку Пуск открывается окно со списком программ, в котором можно выбрать и запустить установленную программу. При этом, работающее приложение приостанавливает свою работу. Операционная система Windows Phone "помнит", какое приложение было остановлено, чтобы можно было вернуться к нему позже.
- Назад — позволяет вернуться к предыдущей странице приложения. Она также используется для остановки приложения и возврата к запущенному ранее приложению. Например, можно запустить приложение для отправки электронного письма во время просмотра веб-сайта, и после отправки сообщения нажать кнопку Назад, чтобы вернуться в браузер. В пределах приложения для работы с почтой при нажатии на кнопку Назад происходит переход к её предыдущему экрану. Как только сообщение отправлено, можно нажать кнопку Назад, находясь на главном экране программы электронной почты, чтобы вернуться к экрану со списком программ и запустить другую программу. Кнопка Назад также используется для вызова списка запущенных в телефоне приложений. Если нажать и держать её ("длинное нажатие"), то телефон откроет список всех активных приложений, между которыми можно переключаться.
- Блокировка — позволяет заблокировать телефон и выключить экран для сохранения заряда батареи телефона. Когда пользователь снова нажимает кнопку Блокировка или кнопку Пуск, телефон отобразит экран блокировки. Телефон можно настроить на автоматическую блокировку после нескольких минут бездействия. Приложению может быть разрешено продолжить работу при блокировке устройства. Это полезно в приложениях для навигации, в которых программа должна остаться активной, но оказывает влияние на время работы телефона от аккумулятора.
- Поиск — позволяет начать новый поиск. Действия при нажатии кнопки Поиск зависят от того, что в это время делает пользователь. Если нажать кнопку Поиск во время просмотра веб-страницы, то он откроется меню веб-поиска. Если нажать кнопку Поиск, когда активно приложение Контакты, будет осуществляться поиск контактов.
- Камера — запускает приложение Камера, в котором можно сделать фотоснимок. При этом, запущенная в это время программа останавливается.
То, как используются эти кнопки, имеет значение для программ. Программа должна учитывать, что она в любой момент может быть выгружена из памяти. Например, если пользователь решит сделать фотоснимок, играя в игру, то игра будет приостановлена и может быть удалена из памяти. После того как пользователь сделает снимок, пользователь должен иметь возможность возобновить игру.
Программы, выполнение которых должно быть остановлено, получают предупреждающее сообщение, и операционная система Windows Phone предоставляет несколько способов сохранения информации о состоянии.
Не во всех устройствах Windows Phone есть аппаратная клавиатура для ввода текста, но все устройства могут использовать для этого сенсорный экран.
Память и хранилище
Считается, что чем больше памяти в компьютере, тем он "лучше" работает. Существует две разновидности памяти: оперативная и внутренняя память. Оперативная память (RAM) — это пространство в компьютере, где выполняются программы. Внутренняя память используется для хранения программ и данных в устройстве.
В настольном компьютере память выражается количеством RAM (Random Access Memory — память произвольного доступа) и количеством места на жёстком диске. В современном настольном компьютере, в среднем 2 Гб RAM и 500 Гб места на жёстком диске. Можно считать, что сжатая музыкальная дорожка использует приблизительно 6 Мб, высококачественное изображение — приблизительно 3 Мб, и один час видео хорошего качества займёт около 1 Гб.
Минимальное требование к устройствам Windows Phone — 256 Мб оперативной и 8 Гб внутренней памяти, что соответствует одной восьмой части объёма оперативной памяти и приблизительно одной пятидесятой части памяти для хранения данных по сравнению с настольным компьютером. Операционная система Windows Phone оптимизирована для работы с небольшим объёмом памяти. Однако, при создании программ нужно быть уверенным, что программы не исчерпают доступные ресурсы.
Сетевые подключения
Мобильные телефоны Windows Phone имеют несколько возможностей подключения к сети:
- Wi-Fi — все устройства Windows Phone поддерживают беспроводную сеть. Wi-Fi предоставляет высокоскоростное сетевое подключение, но работает, только если телефон находится близко к точке доступа к сети;
- 3G — мобильные сети третьего поколения, обладают чуть меньшей производительностью по сравнению с Wi-Fi. Скорость в сетях 3G часто изменяется. Доступ 3G также может быть ограничен с точки зрения объёма данных, которые разрешено передавать мобильному устройству;
- GPRS — во многих областях сеть 3G не доступна. В этом случае телефон может использовать мобильную сеть GPRS, скорость которой существенно ниже, чем 3G.
Сетевые подключения работают по протоколу TCP/IP. К сожалению, сетевое покрытие не является повсеместным, и программы в телефоне должны продолжать работу при отсутствии сетевого подключения, а также при изменении скорости подключения.
Windows Phone также предоставляет поддержку сети Bluetooth. Она используется только для подключения внешних устройств, таких как наушники и автомобильные аудиосистемы, существующая версия Windows Phone не позволяет программам получить к ней доступ.
Особенности платформы Windows Phone
Аппаратные средства Windows Phone являются очень мощными для мобильного устройства, но они всё ещё ограничены возможностями мобильного использования и временем работы от батареи. Пользователи, привыкшие работать с высокоскоростными устройствами с богатым графическим пользовательским интерфейсом, ожидают, что их телефон предоставит им такие же возможности.
При создании программ для устройства Windows Phone нужно стремиться к тому, чтобы программы при работе максимально эффективно использовали доступные средства платформы.
Возможности мобильных устройств позволяют создавать по-настоящему новые приложения. Инструменты для создания программ предоставляют большие возможности для создания полезных и удобных в использовании приложений.
1.2. Экосистема Windows Phone
Устройство Windows Phone разрабатывалось не просто как отдельное устройство. Оно является частью экосистемы, которая содержит много других систем программного обеспечения, работающих совместно и предоставляющих пользователям различные возможности.
Программное обеспечение для управления мультимедиа Zune
Устройство Windows Phone можно подключить к компьютеру с помощью программного обеспечения Zune. Оно предоставляет возможность управлять мультимедийным контентом и передавать его из компьютера в телефон и обратно. Программное обеспечение Zune также может обновлять встроенное программное обеспечение Windows Phone до новых версий. Zune также является связующим звеном между средой проектирования Visual Studio и самим телефоном.
Программы могут использовать мультимедийный контент, загружаемый на телефон через программное обеспечение Zune. Программы могут загружать изображения и воспроизводить музыку и видео, сохранённые в телефоне. Также можно создавать программы воспроизведения музыки, которые работают в фоновом режиме наряду с другими запущенными программами.
Сервисы Windows Live и Xbox Live
Владелец Windows Phone может зарегистрировать телефон с помощью учётной записи Windows Live. Если учётная запись Windows Live связана с учётной записью Xbox Live, то игровой профиль импортируется на устройство, и пользователи могут принять участие в мобильных играх, используя тот же самый идентификатор, что и на консоли.
Карты Bing
Телефон содержит аппаратные средства, которые позволяют ему определять своё местоположение. Служба карт Microsoft Bing предоставляет карты, которые покрывают большую часть земли. Программа Windows Phone может использовать сетевое подключение, чтобы связаться со службой карт Bing и загрузить карты и виды с воздуха. С помощью Silverlight можно управлять отображением карт, что позволяет программам использовать отображение местоположения.
Службы уведомлений Windows
Хотя телефон использует различные технологии подключения к сети, бывают случаи, когда телефон не может подключиться к сети. Windows Phone предоставляет службу уведомлений, которая позволяет программам получать уведомления из сети, даже когда программы не активны. Уведомления сохраняются и управляются службой уведомлений, которая их буферизует, если телефон не подключён к сети при поступлении уведомления.
Например, система продаж должна сообщить клиенту, когда зарезервированный товар будет в наличии. Приложение для заказа в телефоне может зарегистрироваться в службе уведомлений, и затем сервер управления складом может использовать сервер уведомлений, чтобы сообщить клиенту о доступности товара. Эту систему также можно использовать в играх, если один игрок хочет отправить приглашение в игру другому игроку.
Windows Phone и Windows Azure
Windows Azure — это набор "облачных" служб, которые предоставляет Microsoft. Вместо того, чтобы использовать свой собственный компьютер для хранения данных и обработки информации о пользователях, можно арендовать пространство и процессоры в облаке. Если ваше сетевое приложение становится очень популярным, то вам не нужно покупать больше компьютеров и подключать их — вместо этого вы только расширяете используемый вами облачный ресурс.
Серверные приложения. Облачные службы также полезны, если нужно выполнить большое количество действий однократно или очень редко. Вместо содержания большого количества компьютеров для выполнения подобной работы можно просто передать эту работу в облако. Можно создать серверное приложение на C# и протестировать его на эмуляторе облака перед его загрузкой для работы в реальное облако. Клиентские приложения могут использовать эти службы с помощью различных сетевых технологий.
Хранилище базы данных. Хотя в устройстве Windows Phone можно создать базу данных, часто полезно использовать удалённую базу данных, подключение к которой может осуществляться через сеть. Это облегчает использование большого количества хранилищ данных, которые можно обновить централизованно. Можно создать базы данных в облаке и использовать их из приложений Windows Phone.
BLOB-хранилище. BLOB обозначает двоичный объект большого размера. BLOB может быть чем угодно: текстом книги, фильмом или сканом отчёта. Windows Azure предоставляет хранилище, в котором приложение может сохранять и получать BLOB-данные.
Службы аутентификации. Всякий раз, когда пользователь хочет получить доступ к ресурсу, возникает необходимость аутентификации. Провайдер ресурса должен убедиться, что пользователь — действительно тот, за кого себя выдаёт. Особенно эта проблема касается портативных устройств, таких как телефоны. Создание инструмента для аутентификации является очень трудоёмкой работой. Windows Azure предоставляет возможность разместить службу аутентификации в облаке.
Использование экосистемы
В наше время телефон является не просто телефоном. Приложения в телефоне могут работать совместно с удалёнными службами, которые доступны через сетевое подключение. Другие компоненты телефона также используют эту возможность. В телефон встроен клиент Facebook, приложение для работы с камерой; из хранилища изображений можно загрузить рисунки в Windows Live SkyDrive или Facebook.
Также можно использовать сетевые подключения телефона для создания клиент—серверных приложений. Для этого нужно создать две программы: одна будет работать в Windows Phone, а другая может быть запущена на любом компьютере, подключённом к Интернету, или даже в "облачной" системе.