SlideShare a Scribd company logo
Производительность и энергопотребление мобильных приложенийВладимир КолесниковMicrosoft@vladkol,  vladkol@microsoft.com
Производительность и энергопотреблениеОбщая архитектура системы
Потоковая модель
Многозадачность
Состояние
ПотребителиАрхитектура
Архитектура с высоты птичьего полётаCloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
Cloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
ЖелезоCapacitive touch4 or more contact points800 SensorsA-GPS, Accelerometer, Compass, Light, Proximity, GyroCamera5 mega pixels or moreMultimediaCommon detailed specs, Codec  accelerationMemory256MB RAM or more, 8GB Flash or moreGPUDirectX 9 accelerationCPUQualcomm  MSM7x30, MSM8x55  800Mhz or higherHardware buttons | Back, Start, Search480
Cloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
Архитектура подсистемы приложенийApplicationsYour App UI and logicFrameworksHTML5/JavaScriptSilverlight and XNAUser dataStructured dataCLRApp ModelUI ModelCloud IntegrationApp managementLicensingChamber isolationSoftware updatesData sharingShell frame Session managerDirect3DCompositorXbox LIVEBingLocationPush notificationsWindows Live IDKernelHardware BSPSecurityNetworkingStorageA-GPS	Accelerometer	Gyro         Compass	   Light	   ProximityMedia	Wi-Fi		Radio	Graphics Hardware Foundation
Платформа приложений - FrameworkWindows Phone FrameworksLaunchers & ChoosersWindows Phone ControlsCameraDevice IntegrationMultiTaskingStructured DataPhoneApplicationPagePushNotificationWebBrowserControlSensorsPhoneApplicationFrameSilverlight Presentation and MediaXNA Frameworks for GamesControlsDrawingIsolatedStorageDrawingGamerServicesSilverlight IntegrationSilverlight4.0MediaGraphicsNavigationShapesMarkupAudioMediaContentInputApplication ObjectCommon Base Class LibraryGlobalizationReflectionIOResourcesTextLocationRuntimeDiagnosticsNetSocketsConfigurationCollectionsComponentModelSecurityThreadingServiceModelLinq
Cloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
Как это работает
Модель среды исполненияApp DomainXNA Game ObjectSilverlight Application ObjectAGENTFrameworksSilverlightXNAHTML5/JavaScriptХост-процесс для приложенийCLRApp Model HostApp ModelUI ModelCloud Integration«Песочница» для каждого приложенияA-GPS   Accelerometer   Gyro           Compass     Light         ProximityMedia   Wi-Fi	  Radio          GraphicsXbox LIVEBingLocationPush notificationsWindows Live IDApp managementLicensingChamber isolationSoftware updatesShell frame Session managerDirect3DCompositorКаждое приложение работает в изолированной средеKernelHardware BSPSecurityNetworkingStorageВесь код – managed, что позволяет легко верифицировать – первый заслон для аттакHardware FoundationFramework отвечает за взаимодействияс app-моделью, UI-моделью и «телефоном»
Metro и контентно-ориентированная модель
Контентно-ориентированная модель: проблемыYour Web ServiceCustom Web ServiceExisting Web ServicesLocation ServiceMicrosoft Servicesphone storagehardwareNotification Service
Как это работаетapp storageWeb Servicesync agentpower monitorresource managertask schedulerconnection manager
Структурированное хранилище (БД) и ввод/выводapp folderhardware
Структурированное хранилище в MangoWeb Serviceapp agentROLINQRWapp folderhardware
Приложения и изоляция данных телефона
Mango: запросы к данным телефонаROLINQRWData Sharing Surfaceapp folderphone storageprocess boundary
User Experience и многозадачность
Perceptionis realityPhoto by andrewarchy
Что такое мультизадачностьКрасивый UIИспользуйте телефон по максимумуНе заставляйте меня ждать-+
Подходы к многозадачности«Честная» и прожорливаяРаботаем, пока можемСистема сложных правил выгрузки приложенийDesktop, Windows Mobile, AndroidМнимая и экономнаяПриложение выгружается при деактивации UIКлючевой фактор – сохранение состоянияРанние iPhone, Windows Phone 7
Подходы к многозадачностиУмнаяПохожа на мнимуюФоновые агентыiPhone 4, Windows Phone codename “Mango”Возможны уведомления из агентов в приложения
Мультизадачность в Windows PhoneМультизадачностьБыстрое переключениеБыстрое восстановление
Загружено иливосстановленоПриложение в памяти, ресурсы «отключены», потоки приостановленыTombstonedАвтоматическое сохранение состоянияЖизненный цикл
Мультизадачность: варианты
Что могут Background AgentsНельзяМожноTiles
Toast
Местоположение
Сеть
Файлы
БД
Аудио (через спец. агентов)
…
Показывать UI
XNA
Микрофон и камера
СенсорыCloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
Сохраняем UX удобнымПлавность60 кадров в секундуКачественное воспроизведение сложного медиаHardware-акселерацияМинимизация деградации производительности со временемИзоляция и меры по экономии батареиУправление состояниемПамять и процессор
Важно: система знает, как устроен UIСтраницаВизуальное состояниеДанные страницы и приложения, навигацияСостояние данныхНавигационный стек, данные страницы и приложения сохраняются для быстрого восстановления
Потоковая модель на десктопахlayoutinputrasterizebindinganimationsOS interopUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
Текущая потоковая модель Windows Phonecomposite onto back bufferprimitive animationsCompositor ThreadtouchrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
Windows Phone codename “Mango”touchcomposite onto back bufferprimitive animationsCompositor ThreadrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread

More Related Content

Производительность и энергопотребление мобильных приложений на примере Windows Phone 7