Опубликован: 12.02.2013 | Доступ: свободный | Студентов: 791 / 47 | Длительность: 17:51:00
Специальности: Программист
Лекция 2:

Общие сведения о платформе Windows Phone 7.5

1.3. Выполнение программ в Windows Phone

Переключение приложений Windows Phone

Экран мобильного устройства недостаточно большой для отображения сразу двух программ, поэтому нет необходимости выполнять одновременно несколько программ. Поэтому вместо одновременной работы нескольких приложений в Windows Phone реализован механизм переключения приложений.

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

Следует учесть, что в любой момент времени программа может прервать свою работу и освободить ресурсы системы для другой программы. Если пользователь снова вызовет остановленное приложение, оно должно продолжить работу с того же самого места.

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

Фоновые задачи

Ограничения использования процессора и срока службы аккумулятора затрудняют выполнение нескольких процессов в телефоне. Windows Phone позволяет приложениям выполнять фоновые задачи.

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

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

Windows Phone и управляемый код

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

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

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

Промежуточный язык Microsoft (MSIL — Microsoft Intermediate Language). В Microsoft .NET эти проблемы решаются введением промежуточного языка для описания действий, которые программа должна выполнить. При компиляции программы на C# компилятор создаёт файл, содержащий инструкции на этом промежуточном языке. При запуске программы эти инструкции снова компилируются — на этот раз в низкоуровневые инструкции, понятные целевому аппаратному обеспечению. Во время процесса компиляции инструкции проверяются на безопасность, и при работе программы их выполнение отслеживается исполняющей средой.

Программы на Microsoft .NET составляются из отдельных компонентов, называемых сборками. Сборка содержит код MSIL вместе с любыми ресурсами, которые использует код, например, изображения, звуки и др. Сборка может быть либо исполняемым файлом, который можно запустить, либо библиотекой, которая предоставляет приложению ресурсы. Windows Phone может работать с исполняемыми файлами и библиотеками на C#, созданными любым .NET-совместимым компилятором. Можно написать часть кода приложения на другом языке, например Visual Basic, C++ или F#. Программные библиотеки, созданные на этих языках, можно использовать в приложениях для телефона.

Идея .NET состоит в том, чтобы предоставить единую основу для выполнения кода, который не зависит от аппаратного обеспечения или языка программирования. Стандарты для .NET определяют формирование типов данных и синтаксис языков C# и Visual Basic.NET.

Компиляция "на лету". Когда нужно запустить программу, требуется как-то преобразовать MSIL-код (который не зависит от компьютерного оборудования) в инструкции машинного кода, которые может выполнить процессор конкретного компьютера. Этот процесс компиляции называют компиляцией "на лету" (JIT — Just-in-time), потому что машинный код для целевого устройства компилируется из инструкций на промежуточном языке непосредственно перед их выполнением. Подход, при котором программа запускается в управляемой среде, называется управляемым кодом. Компиляция происходит непосредственно перед запуском программы: пользователь телефона выбирает программу из стартовой страницы, MSIL-код загружается из хранилища, и затем происходит компиляция.

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

Преимущество заключается в том, что один и тот же промежуточный файл кода может быть загружен и выполнен на любом устройстве, в котором работает система .NET. Можно запустить одну и ту же программу на мобильном устройстве, компьютере под управлением Windows или Xbox 360 — даже при том, что у этих платформ абсолютно разные операционные системы и оборудование.

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

Наконец, использование промежуточного языка означает возможность использования нескольких языков программирования. Хотя основными программными инструментами для Windows Phone являются Visual Studio и C#, можно использовать скомпилированный код, созданный на любом языке программирования, который содержит .NET-компилятор. Если есть готовые программы на C++, или даже на F#, можно использовать библиотеки кода этих программ в приложениях для Windows Phone. Однако, в первую очередь для создания программ используется язык C# и технологии Silverlight или XNA.

Управляемый код. Программы для Windows Phone запускаются в управляемой среде, которая работает в операционной системе. Программам не предоставляется прямой доступ к аппаратным средствам, что не позволяет создавать программы, которые приводят к неправильной работе телефона.

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

Недостаток заключается в том, что всё это происходит за счёт дополнительной работы системы, в которой запускаются приложения. Кроме загрузки программы в память и выполнения её инструкций осуществляется проверка её подлинности и компиляция "на лету" в машинные инструкции. В результате, пользователю придётся при запуске приложения некоторое время ожидать появления первого окна программы. К счастью, мощность Windows Phone снижает эти задержки, но очень большие программы лучше разделить на отдельные части, чтобы они загружались постепенно.

1.4. Разработка приложений для Windows Phone

Приложения для Windows Phone создаются точно так же, как и приложения для настольных компьютеров под управлением Windows. Для этого используется интегрированная среда разработки (IDE — Integrated Development Environment) Visual Studio. Можно отлаживать запущенную в устройстве Windows Phone программу так же легко, как и программу для компьютера. Также можно создавать решения, которые совместно используют компоненты настольной системы, Windows Phone, и даже платформы Xbox.

Эмулятор Windows Phone

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

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

Эмулятор Windows Phone

Рис. 1.1. Эмулятор Windows Phone

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

Также возможна эмуляция местоположения. Можно выбрать на карте желаемое "местоположение" эмулятора телефона. Также можно ввести пути для перемещения телефона и затем воспроизвести их — так можно создавать поездки для тестирования приложений для определения местоположения.

Программный доступ к средствам Windows Phone

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

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

Приложения телефона могут использовать протокол TCP/IP для подключения к серверам в Интернете. Программы могут использовать веб-сервисы и устанавливать REST-подключения к узлам. В текущей версии операционной системы отсутствует поддержка прямых подключений к другим телефонам с помощью сокетов.

Silverlight и XNA

Приложения для Windows Phone можно создавать на основе технологии Silverlight или XNA. Если вы создаёте приложение, например, текстовый процессор, почтовый клиент или калькулятор, то вы можете использовать Silverlight. Silverlight предоставляет набор средств для создания таких программ. Если вы создаёте игру, то можете использовать XNA. XNA предоставляет средства для создания 2D и 3D игр с высокой производительностью.

Можно и наоборот — создать калькулятор в XNA или простую игру (например, головоломки со словами) в Silverlight. В частности, Silverlight идеально подходит для игр с небольшими требованиями по графике, либо использующих векторную графику, а не растровую, либо скорость которых зависит от реакции пользователя, а не таймера. А XNA бывает сложно использовать в тех задачах, где обычно применяется Silverlight. Реализация окна списка на XNA может быть интересной для некоторых разработчиков, но для многих программистов это довольно сложная задача.

Тип создаваемого приложения выбирается при создании нового проекта в Visual Studio. Приложение может совместно использовать средства Silverlight и XNA. Можно создать программу на Silverlight со страницей, содержащей игру на XNA. Можно создать меню и пользовательский интерфейс для игры в Silverlight, а игровой процесс — в XNA. Также можно добавить элементы Silverlight поверх запущенной игры XNA.

Хранение данных в Windows Phone

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

Изолированное хранилище. Изолированное хранилище называют так, потому что область для хранения данных одного приложения изолирована от остальных приложений. Когда программа установлена в Windows Phone, ей предоставляется доступ к месту хранения, полностью изолированному от других. Такое хранилище позволяет сохранять настройки программы в виде пар ключ—значение. Приложения также могут создавать целые иерархии файлов в пределах своего участка изолированного хранилища.

Программа Isolated Storage Explorer может использоваться для просмотра папок и файлов в изолированном хранилище при разработке приложения, чтобы вы могли удостовериться, что они содержат правильные данные.

Локальная база данных. Базой данных называют коллекцию данных, которыми управляет программа. Базы данных используются для создания программ, которые сохраняют и управляют большими объёмами данных. В Windows Phone есть встроенный сервер базы данных. Он позволяет создавать приложения, которые хранят структурированные данные.

Приложению Windows Phone предоставляется доступ к локальной базе данных SQL, где они могут хранить большое количество структурированных данных. Приложение может создавать запросы, используя библиотеки LINQ (интегрированный язык запросов), чтобы извлечь и изменить данные в базе данных. Фактически файл базы данных находится в изолированном хранилище приложения.

Средства разработки

Необходимые для разработки приложений инструменты являются свободно распространяемыми. Можно загрузить Windows Phone SDK и начать писать приложения для Windows Phone буквально в течение нескольких минут. Те разработчики, которые приобрели Visual Studio 2010, могут использовать все средства для разработки приложений для мобильных устройств, установив дополнительно плагин Windows Phone SDK. Windows Phone SDK доступен на сайте http://create.msdn.com. Для создания интерфейса приложений Silverlight можно использовать бесплатную версию Expression Blend, которая поставляется вместе с Windows Phone SDK.

Приложения для компьютеров обычно не ограничиваются производительностью центрального процессора. Мощность процессоров в компьютерах и ноутбуках означает, что довольно неэффективный код все ещё будет пригодным. Однако, для Windows Phone важно, чтобы программы были быстрыми и эффективными, насколько это возможно, и в то же время не сильно разряжали батарею. Windows Phone SDK содержит средства для анализа производительности, которые собирают информацию о том, как программы используют аппаратные ресурсы. Это позволяет определить, какие методы в программе необходимо оптимизировать для повышения их быстродействия.

Windows Phone Marketplace

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

Если вы хотите продать созданное вами приложение, вы должны быть зарегистрированным разработчиком и предоставить свою программу для одобрения. Регистрация разработчика стоит $99, но студенты могут зарегистрироваться бесплатно по программе Dreamspark. Разработчики могут зарегистрировать свои устройства Windows Phone как устройство разработчика. Visual Studio может загружать приложения в устройство разработчика и позволяет отлаживать программы, работающие на физическом устройстве.

Вы можете распространять бесплатные приложения так же, как и платные. Зарегистрированный разработчик может бесплатно разместить в Marketplace до 100 бесплатных приложений. Если вы хотите распространить более 100 бесплатных приложений, вы должны заплатить по $20 за каждое дополнительное бесплатное приложение. Вы можете также создать приложения, у которых есть "демонстрационный" режим, которые могут быть преобразованы в "полную" версию после их покупки. Программа может определить, работает она в полном или демонстрационном режиме.

Когда вы предоставите приложение для продажи в Marketplace, оно пройдет процесс одобрения, чтобы удостовериться, что оно безопасно для использования и работает так, как ожидается. Если процесс одобрений завершится неудачей, то вам выдадут диагностический отчёт. Перед тем как загрузить своё приложение, вы должны прочесть требования для сертификации.

Средство тестирования. Windows Phone SDK содержит средство для тестирования, которое может использоваться для предварительного тестирования приложения перед тем, как оно будет загружено в Marketplace. Это средство автоматически синхронизируется с процессом одобрения Marketplace, и если процесс изменится, то инструмент будет обновлён в соответствии с этими изменениями. Средство тестирования работает автоматически и выполняет такие же тесты, что и команда тестирования. Это увеличивает шансы на то, что поданное приложение будет одобрено с первого раза.

Закрытые бета-версии. Один из способов определить качество приложения или игры состоит в том, чтобы предоставить его группе людей и узнать их мнение. Можно создать специальную версию продукта и предоставить возможность скачать её до 100 пользователям. Тестеры могут использовать программу в течение 90 дней, и за это время предоставить свой отзыв о программе.

Краткие итоги

  1. Windows Phone является мощной вычислительной платформой.
  2. Все устройства Windows Phone соответствуют базовым требованиям спецификации. Требования включают определённый размер экрана, ёмкостный сенсорный ввод, который может отследить, как минимум, четыре касания, поддержку GPS, ускоритель трёхмерной графики, камеру высокого разрешения и достаточный объём памяти для хранения данных и программ.
  3. Устройство Windows Phone подключается к компьютеру через программное обеспечение Zune, которое предоставляет компьютеру систему управления мультимедиа контентом и позволяет синхронизировать его с телефоном.
  4. Система Windows Phone может использовать сетевые службы для получения уведомлений, определения местоположения и выполнения поиска.
  5. При разработке программы для Windows Phone программное обеспечение Zune используется для передачи программ в устройство для проведения тестирования. Программное обеспечение Zune также используется для обновления встроенного программного обеспечения телефона.
  6. Операционная система Windows Phone поддерживает многозадачность, но для повышения производительности активным может быть только одно приложение. Однако, приложения могут создать свои собственные "фоновые агенты", которые могут выполнить определённые задачи, когда приложение не запущено. Windows Phone также поддерживает Быстрое переключение приложений, который позволяет быстро возобновить работу запущенных приложений.
  7. Windows Phone запускает программы, скомпилированные в "промежуточный код" (MSIL). MSIL-код компилируется в телефоне непосредственно перед запуском программы. Сами программы запускаются управляемой среде, которая не позволяет им напрямую использовать оборудование телефона.
  8. Приложения для Windows Phone можно создавать на основе технологий Silverlight и XNA на языке C# в среде Visual Studio 2010. Программисты могут использовать эмулятор Windows Phone, который работает на компьютере под управлением Windows и эмулирует работу среды Windows Phone.
  9. Программы имеют доступ ко всем функциям телефона и могут совершать звонки, отправлять SMS-сообщения и т.д.
  10. Windows Phone SDK может использоваться для создания приложений для Windows Phone и доступен на сайте http://create.msdn.com. Однако, чтобы установить приложения в телефоне, вы должны быть зарегистрированы как разработчик приложений для Windows Phone. Это стоит $99 в год, но для студентов регистрация бесплатна по программе Microsoft Dreamspark. Зарегистрированный разработчик может продавать свои приложения на Windows Phone Marketplace.

Вопросы

  1. Каковы аппаратные требования к устройствам Windows Phone?
  2. В чём преимущество использования сенсорного экрана емкостного типа по сравнению с резистивным?
  3. Какие устройства Windows Phone позволяют телефону определять своё местоположение?
  4. Какие аппартные кнопки есть у устройств Windows Phone и какие функции они выполняют?
  5. Какие типы сетевых подключений поддерживаются в Windows Phone?
  6. С какими программами и службами может взаимодействовать Windows Phone?
  7. В чём идея "быстрого переключения приложений"?
  8. Каковы отличия фоновых задач от программ?
  9. Как выполняется компиляция и запуск программы в Windows Phone?
  10. Для чего используется эмулятор Windows Phone?
  11. Как приложение может использовать функции телефона?
  12. Для чего используются технологии Silverlight и XNA?
  13. Какие средства для хранения данных есть в Windows Phone?
  14. Какие инструменты можно использовать для создания приложений для Windows Phone?
  15. Для чего нужен Windows Phone Marketplace?

Упражнения

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

  • Система будет использоваться юридическим штатом, чтобы поминутно отслеживать действия сотрудников.
  • Первоочередные задачи системы — предоставление актуальной информации, её надёжное хранение и простота использования.
  • Программа будет подключаться к нашим серверам тайм-менеджмента и загружать расписания работы и информацию о клиентах в телефон в начале каждого дня.
  • В течение рабочего дня пользователи будут вводить информацию о своих действиях, и в конце дня телефон должен загружать эту информацию обратно на сервер.
  • Периодически будут возникать неотложные случаи, которым необходимо уделять внимание, и наша система должна отправлять сообщение сотрудникам о возникновении подобных ситуаций.
  • Иногда персонал будет участвовать во встречах за пределами офиса, и при этом система также должна отслеживать их действия.
  • Ваша компания планирует использовать в телефонах ещё несколько приложений, включая юридический словарь и интерактивную юридическую систему. Новое приложение должно работать одновременно с этими программами.
  • Мы также хотели бы использовать телефонные устройства в качестве диктофона, чтобы делать аудио- и видеозаписи встреч с клиентами с высоким качеством. К записям будут добавляться теги, и они будут загружаться на наши сервера. Записи будут занимать примерно 100 Мб данных за один час.
  • Наше приложение должно работать совместно с другими приложениями в устройстве, которые клиенты могут загрузить.
  • Компания иногда должна отправлять информационное "сообщение дня" с корпоративного веб-сайта. Приложение должно принимать и выводить эти сообщения на экран. В идеале, это должно происходить, даже когда приложение не запущено.
  • В будущем может понадобиться отслеживать местоположение тех сотрудников, которые выезжают за пределы офиса.

Ваш менеджер попросил вас исследовать платформу Windows Phone как потенциальное устройство для выполнения поставленных задач. Вы должны предоставить ответы на следующие вопросы:

  1. Могут ли возникнуть какие-либо проблемы при использовании телефона для решения этих задач?
  2. На основе какой технологии следует создать приложение: Silverlight или XNA?
  3. Какой тип сетевого подключения должен использоваться для распределения расписания и получения отчётов?
  4. Следует ли ограничить владельцев телефонов возможностью запуска только одного нашего приложения?
  5. Достаточно ли в телефоне памяти для хранения данных для обслуживания 10 встреч в день?
  6. Есть ли в Windows Phone какие-либо особенности, которые можно использовать для дальнейшего улучшения приложения?
  7. Есть ли у платформы какие-либо ограничения, которые в будущем могут привести к изменениям технических характеристик устройств?
  8. Какой язык программирования вы предлагаете использовать для разработки приложения? Можно ли использовать некоторые библиотеки для обработки данных, которые некоторое время назад были написаны на Visual Basic .NET?
  9. Есть ли какие-то особые требования для создания и выполнения фоновых задач в телефоне?
  10. Можно ли передать какие-то операции в облачный сервер?

При ответе на каждый вопрос вы должны определить подходящие средства и возможности платформы Windows Phone.