Архитектура платформы На рисунке 1 изображена архитектура платформы Windows Phone 8. Рассмотри подробнее, что означают компоненты архитектуры.
Рисунок 1, архитектура платформы Windows Phone TaskHost и CoreApplication – две различные модели приложений. TaskHost – модель приложений, реализованных с помощью XAML разметки. Этот подход был основным еще с запуска первой версии платформы Windows Phone 7. CoreApplication представляет новую модель приложений на Windows Phone 8, которая основана на модели приложений для Windows 8. В выпуске для Windows Phone 8 эта модель поддерживает возможности нативных приложений с использованием Direct3D для пользовательского интерфейса.Win32/Com могут быть использованы в управляемых приложениях, а так же если они обернуты в пользовательский компонент Windows Runtime.
Эти две модели приложений базируются на основных сервисах платформы: Package Manager отвечает за установку и удаление приложений, за сохранение всех метаданных приложений на протяжении всего периода жизни приложения. Он не только следит за тем, какие приложения были установлены и аттестованы, но и сохраняет информацию обо всех плитках приложений, которые пользователь закрепил на начальном экране и обо всех местах, где приложение может отображаться. Execution Manager контролирует всю логику, связанную с выполнением приложения на протяжении всего жизненного цикла приложения. Он создает хостинг-процесс для исполнения приложения и вызывает события, связанные со стартом / выключением / деактивацией приложения. Он выполняет аналогичную задачу для фоновых процессов приложения, а так же определяет надлежащий порядок их выполнения. Navigation Server управляет переключением между активными приложениями на телефоне. Когда пользователь нажимает на иконку приложения на стартовом экране, он переходит со стартового экрана к приложению, которое выбрал. Navigation Server отвечает за передачу намерения в Execution Manager, чтобы выбранное приложение могло запуститься. Также, когда пользователь нажимает и удерживает кнопку Назад и выбирает приложение, которое запускал до этого, Navigation Server сообщает в Execution Manager, какое приложение должно быть реактивировано. Resources Manager отвечает за обеспечение быстроты и отзывчивости интерфейса. Он следит за использованием системных ресурсов всеми активными процессами, особенно за использование центрального процессора и памяти, и ограничивает количество этих процессов. Если приложение или фоновый процесс превышает отведенный пул ресурсов, то он завершается.
Все это лежит на вершине объединенного ядра Windows.
Windows Phone 8 поддерживает несколько различных типов приложений, описанных в таблице 1. Таблица 1, типы приложений Windows Phone
Тип приложения
| Описание
| Поддерживаемые языки
| UI Framework
| Поддерживаемые API
| XAML
| Наиболее общий тип приложений для Windows Phone 7.x. Эти приложения написаны только с помощью XAML и управляемого кода.
| C#
Visual Basic
| XAML
| Microsoft .NET
Windows Phone API
Windows Runtime API
| Смешанный тип
| Эти приложения следуют структуре приложений XAML, но позволяют добавлять код на C/C++, обернутый в компонент Windows
| С#
Visual Basic
C/C++
| XAML
Direct3D (via Drawing Surface )
| .NET Windows Phone API
Windows Runtime API
Win32/COM API (в пределах компонент Windows
| Продолжение таблицы 1
|
| Runtime.
Это хорошо подходит для приложений, в которых необходимо использовать существующую библиотеку С/C++.
Это так же полезно в случаях, когда нужно написать большую часть приложения на С/С++ (включая Direct3D), но так же нужен доступ к XAML UI Framework и к особенностям, которые доступны только в XAML приложениях, например возможность создавать живые плитки на начальном экране.
|
|
| Runtime)
| Direct3D
| Подходит для игр.
Чистые нативные
| C/C++
| Direct3D
| Windows Runtime API
| Продолжение таблицы 1
|
| приложения, использующие Direct3D могут извлекать максимальную производительность смартфона. Кроме того, поскольку этот тип приложений основан на модели приложений Windows, он обеспечивает наибольшую степень совместимости кода между Windows и Windows Phone.
|
|
| Win32/COM API
|
|