MS Swit 2012 - Windows 8 Application Lifecycle

38
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ

description

As your customers move your app between the foreground and background, Windows manages your app’s usage of critical system resources. Come learn the fundamentals of Process Lifetime Management and how to structure your app to suspend and resume quickly, save app state properly, and behave consistently. We will also highlight ways to keep your app fresh using push notifications and tile interactivity. Understanding these critical concepts will help you deliver a continuous experience that customers expect.

Transcript of MS Swit 2012 - Windows 8 Application Lifecycle

Page 1: MS Swit 2012 - Windows 8 Application Lifecycle

КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ

Page 2: MS Swit 2012 - Windows 8 Application Lifecycle

ЖИЗНЕННЫЙ ЦИКЛ METRO STYLE ПРИЛОЖЕНИЙ

Денис Резник, Digital Cloud Technologies

Page 3: MS Swit 2012 - Windows 8 Application Lifecycle

О Себе• Руководитель департамента веб-

разработки компании Digital Cloud Technologies

• Тренер Microsoft Innovation Center• Microsoft MVP• Microsoft Certified Trainer• Блог: http://reznik.uneta.com.ua • Твиттер: @DenisReznik• Email: [email protected]

Page 4: MS Swit 2012 - Windows 8 Application Lifecycle

Windows 8

Page 5: MS Swit 2012 - Windows 8 Application Lifecycle
Page 6: MS Swit 2012 - Windows 8 Application Lifecycle

Меняются правила игры

Активно одно приложение

Система управляет жизненным циклом

Активно много

Пользователь управляет жизненным

циклом

Page 7: MS Swit 2012 - Windows 8 Application Lifecycle

Жизненный цикл приложения

App 1 App 2 App 3Running

Suspended

Terminated

… App N

Page 8: MS Swit 2012 - Windows 8 Application Lifecycle
Page 9: MS Swit 2012 - Windows 8 Application Lifecycle

• Процесс не был запущен

• Показывается SplashScreen

Запуск (Launch)

Page 10: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSplash Screen

Page 11: MS Swit 2012 - Windows 8 Application Lifecycle

Splash Screens в процессе активации

• Система предоставляет этот механизм для более цельного процесса перехода к приложению

• Показывается в то время, пока операционка запускает ваше приложение

• Отображается на протяжении процесса активации

• Цвет и картинка указываются в app manifest

• Приложение должно запуститься в течении 15 сек. Иначе оно будет завершено

Page 12: MS Swit 2012 - Windows 8 Application Lifecycle

Расширенный Splash Screens

• Некоторые приложения грузятся дольше

• Создавайте своё первое представление идентичное сплэш скрину

• Splash Screen API может использоваться для рендеринга сплэш скрина вручную

Page 13: MS Swit 2012 - Windows 8 Application Lifecycle

Приложение запущено

Активация запуском через тайл

Пользователь кликает по

тайлу

args.Kind Показывается Splash Screen

activated event

Page 14: MS Swit 2012 - Windows 8 Application Lifecycle

Изменение способа запуска приложения

Запуск с помощью ярлыка

Запуск через тайл, поиск, шару, и т.д.

Page 15: MS Swit 2012 - Windows 8 Application Lifecycle

Контракты

App

AppWindows

Page 16: MS Swit 2012 - Windows 8 Application Lifecycle

Активация через контракты

• Приложение активируется через контракт• Запуск, поиск,

ShareTarget, и т.д..

• Приложение должно инициализировать специфические для контракта действия

• Предоставляется контекст

Running App

launch

shareTarget

activated

запуск

search

Page 17: MS Swit 2012 - Windows 8 Application Lifecycle

• Launch• Search• Share target• Cached file• Camera• Contact picker• Device

Активация (Activation)

Page 18: MS Swit 2012 - Windows 8 Application Lifecycle

• File• File open picker• File save picker• Print task• Protocol

Активация (Activation)

Page 19: MS Swit 2012 - Windows 8 Application Lifecycle

Активация приложенияasync protected override void OnLaunched(LaunchActivatedEventArgs args){ switch (args.Kind) { case ActivationKind.Launch: break; case ActivationKind.Search: break; case ActivationKind.ShareTarget: break; }}

Page 20: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSearch

Page 21: MS Swit 2012 - Windows 8 Application Lifecycle

• Переключение пользователем

• Низкий заряд батареи

Остановка (Suspend)

Page 22: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend – взгляд изнутри

• Suspended приложения не обслуживаются ядром системы

• Никакого потребления ресурсов CPU, Disk или Network

• Все потоки приостанавливаются

Page 23: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend – взгляд изнутри

• Приложение остаётся в памяти• Система проверяет что

приложение не находится в критической секции, что может привести к возникновению взаимоблокировок

• Приложение немедленно возобновляет свою работу, когда пользователь активирует его

Page 24: MS Swit 2012 - Windows 8 Application Lifecycle

• Сессионные данные• Настройки пользователя• И т.д.

Данные приложения (Application Data)

Page 25: MS Swit 2012 - Windows 8 Application Lifecycle

• Локальное хранилище• Settings• Files

• Удалённое хранилище (roaming)

• Временное хранилище

Хранение данных приложения

Page 26: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSuspend

Page 27: MS Swit 2012 - Windows 8 Application Lifecycle

• Переключение пользователем

• Батарея заряжается

Восстановление (Resume )

Page 28: MS Swit 2012 - Windows 8 Application Lifecycle

• Alt + F4

Завершение (Close)

Page 29: MS Swit 2012 - Windows 8 Application Lifecycle

• Процесс завершается

• Нет никаких уведомлений об этом событии

Завершение (Terminate)

Page 30: MS Swit 2012 - Windows 8 Application Lifecycle

Когда возникает аварийное завершение?

• Системе нужно больше памяти• Пользователь переключает аккаунты• Завершение работы системы• Ошибка приложения

Page 31: MS Swit 2012 - Windows 8 Application Lifecycle

Сценарий

Best Practices работы с состоянием

Что делать…

Инкрементальное сохранение данных пользователяСохранить где юзер находился (например открытая страница)Восстановить сессию юзера так, как будто он не покидал приложенияНичего не делать

Работа с приложением Suspending

Activated

Resuming

Page 32: MS Swit 2012 - Windows 8 Application Lifecycle

Работа приложения

Running

App

SuspendedApp

suspending Terminated

App

Low Memory

Code gets to runNo code

runs App not running

resuming

Есть 5 сек. на обработку

Приложение не

уведомляется перед

terminate

Приложение уведомляется

о resume

Запуск приложения

Splash screen

Page 33: MS Swit 2012 - Windows 8 Application Lifecycle

Summary• Новая философия Windows базируется на

том как и когда приложения должно работать

• ОС управляет жизненным циклом приложения

• Активация приложения происходит посредством контрактов

• Сохраняйте ваше приложение живым:– Сохраняйте и восстанавливайте состояние– Используйте живые тайлы

Page 34: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend best practices

• Сохраняйте состояние быстро – у вас есть всего 5 сек.

• Рассматривайте вариант завершения приложения – сохраняйте сессионные данные пользователя

• Не держите общие системные ресурсы (файлы, диски, сеть, и т.д.)

• Сохраняйте данные приложения инкрементально, до остановки

Page 35: MS Swit 2012 - Windows 8 Application Lifecycle

Activation best practices

• Активируйте приложение быстро!• Инициализируйте приложение• Отложите выполнение задач

настолько, насколько это возможно• Знайте, где пользователь находился• Показывайте расширенный splash

screen, если вам нужно более 15 сек. для активации

Page 37: MS Swit 2012 - Windows 8 Application Lifecycle

СПАСИБО!

Page 38: MS Swit 2012 - Windows 8 Application Lifecycle

КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ