970 likes | 1.19k Views
Технический обзор возможностей платформы Windows Phone. Стас Павлов s tas.pavlov@microsoft.com @ stasus. платформа. Железо. Емкостной дисплей 4 или более точек контакта. 800 . Сенсоры A-GPS, Accelerometer, Compass, Light, Proximity, Gyro. Камера 5 мегапикселей или более.
E N D
Технический обзор возможностей платформы Windows Phone Стас Павлов stas.pavlov@microsoft.com @stasus
Железо Емкостной дисплей 4 или более точек контакта 800 Сенсоры A-GPS, Accelerometer, Compass, Light, Proximity, Gyro Камера 5 мегапикселей или более Мультимедиа возможности Минимальная спецификация, акселерация кодеков Память 256MB RAM или более, 8GB Flash или более GPU Акселерация инструкций DirectX 9 CPU Qualcomm MSM7x30, MSM8x55 800Mhz или более Аппаратные кнопки | Назад, Старт, Поиск 480
API Ваше приложение Приложения Frameworks Silverlight XNA HTML/JavaScript CLR (.NET CF) App Model UI Model Cloud Integration Xbox LIVE Bing Location Push notifications Windows Live ID App management Licensing Chamber isolation Software updates Shell frame Session manager Direct3D Compositor Kernel Hardware BSP Security Networking Storage A-GPS Accelerometer Light CompassProximity Media Wi-Fi Radio GraphicsGyro Hardware
Сервисы Tools Runtime Phone Emulator Sensors Media Data Location Samples Documentation Phone Xbox LIVE Notifications Guides Community .NET Framework managed code sandbox Packaging and Verification Tools Device Cloud Publishing Services Platform Services Notifications App Deployment Registration Marketplace Validation MO and CC Billing Location Identity Feeds Certification Business Intelligence Social Maps Publishing Update Management
Windows Phone SDK: Visual Studio 2010 Express Edition Expression Blend 4 for Windows Phone Windows Phone Extensions for XNA Game Studio 4.0 Windows Phone Developer Registration Tool Application Deployment Tool Windows Phone Emulator Performance and Memory Profiler Marketplace Test Kit Инструменты http://create.msdn.com
Платформа – 2 типа приложений Современные приложения, управляемые событ-ми. Быстрое создание богатых графических приложений HTML/Javascript Устоявшаяся, надёжная, популярная технология Высокопроизводительная игровая платформа Быстрое создание многоэкранных 2D и 3D игр Богатая content pipeline Устоявшаяся технология для Xbox, Windows, и Zune/WP7 Приложения (и игры) Игры(и приложения)
Что такое Silverlight в Windows Phone XAML .NET CF C#, VB.NET, F#
XAML • Наглядный язык разметки • Поддержка включений файлов • Полная интеграция в Visual Studio и Expression Blend • Code Behind • Data Binding • Sample Data • Storyboards • Transform
Декомпозиция экрана System Tray Direct3D Surface AppPage Notification Volume SIP Incoming Call App Bar
Frame Контейнер верхнего уровня PhoneApplicationFrame class Page Управляет содержимым экрана Потомок PhoneApplicationPage class Кнопка «Назад» Навигация
Можно ограничивать Можно обрабатывать В большинстве случаев достаточно автоматической обработки Ориентация SupportedOrientations="Portrait" SupportedOrientations="PortraitOrLandscape" 21
Input Scope <TextBoxInputScope="Number"...
Панель приложения • до 4х иконок • 48х48, ч/б и без круга • остальные пункты в дополнительном меню • помните о текущем контексте приложения
Мощная математическая библиотека Content Pipeline Работа с 2D графикой Полноценная 3D графика (DirectX 9) Поддержка шейдеров (встроенные) Работа совместно с Silverlight Что может XNA?
Производительность Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Разработаны с требованием производителности Опробованный успех на игровых сценариях В будущее WP7 – с управляемым кодом! Нет лишней сборки мусора • 4+ года профилирования и оптимизации • Эффективная работа на WP7 • Оптимизированные мат.библиотеки • API с переходом на нативный код
XNA Framework Игры Ваш код Ваш контент Компоненты Starter Kits Extended Framework Application Model Content Pipeline Core Framework Graphics Audio Input Math Storage Networking Networking Gamer Services Gamer Services* Платформа .NET CF DirectX
Использует .NET Framework как основу Игры пишутся наC# Generics LINQ И т.д. Игры запускаются как управляемый код Безопасное исполнение кода Управление памятью Поддержка Windows, Xbox,Windows Phone 7 XNA для разработчика
3D • Полноценная поддержка 3D на уровне платформы • Аппаратное ускорение для всего, что нужно и можно ускорять аппаратно 29
Игровой цикл «Все игры делают это» Типичный игровой цикл Инициализация Обработка событий Загрузка ресурсов • Загрузка контента • Обновление состояния сцены • Отрисовка сцены Вычисление сцены Управление ресурсами – критично на мобильной платформе даже для небольших приложений Определение хода игры Освобождение ресурсов Обратная связь 30
Игровой цикл «Все игры делают это» Игровой цикл XNA Framework Initialize() Update() LoadContent() • Load content when they start • Update the game world • Draw the game world XNA: 30 кадров в секунду на Windows Phone Draw() UnloadContent() 31
Игровой цикл Пример Game Loop • protectedoverridevoid Update(GameTimegameTime) • { • // Allows the game to exit • if (GamePad.GetState(PlayerIndex.One).Buttons.Back == • ButtonState.Pressed) • this.Exit(); • // TODO: Add your update logic here • base.Update(gameTime); • } • protectedoverridevoid Draw(GameTimegameTime) • { • GraphicsDevice.Clear(Color.CornflowerBlue); • // TODO: Add your drawing code here • base.Draw(gameTime); • }
Content Pipeline • Унифицированная платформа для хранения, обработки и извлечения игровых ресурсов • Набор “importers” для стандартных типов ресурсов • Разработчики могут создавать свои importers • Ресурсы хранятся в специальном репозитории
Content Pipeline Importers
5 эффектов BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect
Интеграция XNA и Silverlight • «Обычная» страница • SharedGraphicsDeviceManager • UIRenderElement
WebBrowser Control – наше все <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid x:Name="ContentPanel"> <phone:WebBrowserIsScriptEnabled="True"IsGeolocationEnabled="True"/> </Grid> </Grid>
Загрузить HTML Вызвать «хост» Выполнить скрипт на странице 3 базовые возможности
Navigate / NavigateString window.external.Notify WebBrowser.InvokeScript 3 базовые возможности
Фреймворки PhoneGap http://phonegap.com
PhoneGap Plugins
Фреймворки http://jquerymobile.com/
jQuery • Знакомый • Развивающийся • Настраиваемый
jQuery Mobile + PhoneGap • Работает • Есть проблемы с совместимостью разных версий http://wiki.phonegap.com/w/page/36868306/UI%20Development%20using%20jQueryMobile
IE9 Cascading Style Sheets (CSS3) Media & Graphics 2D Transforms Colors Module HTML5 Canvas HTML5 Video Background/Borders Namespaces SVG Fonts Module Values & Units HTML5 Audio Media Queries Selectors Additional Standards & Web Applications Support DOM Core Level 2/.3 Geolocation Semantic Elements Traversal & Range ECMAScript 5 XML Parse/Serial DOM Events Level 2/3 Selector APIs Level 2 DataURIs L2 HTML & Style ICC Color Profiles CSSOM View
Жизненный цикл: состояния FAS (Fast Application Switching) выгружено из памяти; сохранены специальныесловари в памяти; потоки остановлены,ресурсы освобождены
Жизненный цикл: события и методы Lunching Event Application Closing Event Application Running OnNavigateFrom Method Page OnNavigateTo Method Page Deactivated Event Application Activated Event Application Tumbstoned Dormant