Производительность и энергопотребление мобильных приложений на примере Windows Phone 7
- 7. Архитектура с высоты птичьего полётаCloud Integration ServicesApp ModelUI ModelSoftware ArchitectureHardware Foundation
- 9. Железо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
- 11. Архитектура подсистемы приложений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
- 12. Платформа приложений - FrameworkWindows Phone FrameworksLaunchers & ChoosersWindows Phone ControlsCameraDevice IntegrationMultiTaskingStructured DataPhoneApplicationPagePushNotificationWebBrowserControlSensorsPhoneApplicationFrameSilverlight Presentation and MediaXNA Frameworks for GamesControlsDrawingIsolatedStorageDrawingGamerServicesSilverlight IntegrationSilverlight4.0MediaGraphicsNavigationShapesMarkupAudioMediaContentInputApplication ObjectCommon Base Class LibraryGlobalizationReflectionIOResourcesTextLocationRuntimeDiagnosticsNetSocketsConfigurationCollectionsComponentModelSecurityThreadingServiceModelLinq
- 15. Модель среды исполнения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-моделью и «телефоном»
- 18. Как это работаетapp storageWeb Servicesync agentpower monitorresource managertask schedulerconnection manager
- 22. Mango: запросы к данным телефонаROLINQRWData Sharing Surfaceapp folderphone storageprocess boundary
- 26. Подходы к многозадачности«Честная» и прожорливаяРаботаем, пока можемСистема сложных правил выгрузки приложенийDesktop, Windows Mobile, AndroidМнимая и экономнаяПриложение выгружается при деактивации UIКлючевой фактор – сохранение состоянияРанние iPhone, Windows Phone 7
- 43. Сохраняем UX удобнымПлавность60 кадров в секундуКачественное воспроизведение сложного медиаHardware-акселерацияМинимизация деградации производительности со временемИзоляция и меры по экономии батареиУправление состояниемПамять и процессор
- 44. Важно: система знает, как устроен UIСтраницаВизуальное состояниеДанные страницы и приложения, навигацияСостояние данныхНавигационный стек, данные страницы и приложения сохраняются для быстрого восстановления
- 45. Потоковая модель на десктопахlayoutinputrasterizebindinganimationsOS interopUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
- 46. Текущая потоковая модель Windows Phonecomposite onto back bufferprimitive animationsCompositor ThreadtouchrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
- 47. Windows Phone codename “Mango”touchcomposite onto back bufferprimitive animationsCompositor ThreadrasterizebindingOS interoplayoutUser Interface ThreadparsingnetworkingdispatchdispatchBackground Thread
- 50. Сохраняем UX удобным: память вWP7Навигационный стекФайловый кэшПериодикаПриложенияПамятьРекомендуется 90MBOSforegroundidleМинимум памяти: 256MB
- 51. Сохраняем UX удобным: память вMangoПриложенияНавигационный стекФайловый кэшПериодикаПриложенияПамять90MB минимумOSspareforegroundвыгружаютсяпо запросуМинимум памяти: 256MB
- 54. Достигаем баланса через агентовUI instanceabstract class BackgroundAgent{ virtual void Invoke(uri, parameters) virtual void OnCancel() void NotifyComplete() void Abort()}Затраты10% CPURAM: 5MBПониженное энергопотреблениеЗатраты90% CPURAM: 90MB Энергоемкиagent instanceapp logicapp logicОдна «песочница»Отдельные хост-процессы
- 60. DevCon11– крупнейшая конференция по разработке ПОDevCon11– крупнейшая конференция по разработке ПО, проводимая Microsoft вРоссии. Основные темы конференции DevCon11:Облачные вычисления
- 71. Дмитрий АртёмовТелемост со Скоттом Гатри – Вице-президентом по платформе разработки Microsoft и одним основателей .NET26-27 мая 2011 года, Подмосковье www.msdevcon.ru