59
Nokia Internal Use Only

Использование возможностей платформы WIndows Phone

  • Upload
    nokiaru

  • View
    9.619

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 2: Использование возможностей платформы WIndows Phone

Использование возможностей платформы Windows Phone

Стас Павлов Эксперт по технологиям разработки ПО [email protected] @stasus

Page 3: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

платформа Windows Phone 7.5

Page 4: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

модель исполнения

приложений

Page 5: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Жизненный цикл: состояния

Running

Dormant Tumbstoned в памяти;

потоки остановлены,

ресурсы освобождены

выгружено из памяти;

сохранены специальные

словари

FAS (Fast Application Switching)

Page 6: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Жизненный цикл: события и методы

Runnin

g

Lunching Event Application

OnNavigateTo Method Page

OnNavigateFrom Method Page

Closing Event Application

Dormant

Deactivated Event Application

Tumbstoned

Activated Event Application

Page 7: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Восстановление состояния

Dormant

приложение в памяти

потоки остановлены

ресурсы освобождены

Tumbstoned

приложение не в памяти

сохранены специальные словари

PhoneApplicationService.State

PhoneApplicationPage.State

Page 8: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

сохранение и

восстановление

состояния

Page 9: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

многозадачность

Page 10: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Подходы к многозадачности

«Честная» и прожорливая - Работаем, пока можем

- Система сложных правил выгрузки приложений

Desktop, Windows Mobile, Android

Мнимая и экономная - Приложение выгружается при деактивации UI

- Ключевой фактор – сохранение состояния

Ранние iPhone, Windows Phone 7

Page 11: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Подходы к многозадачности

Умная - Похожа на мнимую

- Фоновые агенты

iPhone 4, Windows Phone codename “Mango”

- Возможны уведомления из агентов в приложения

Page 12: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Жизненный цикл: состояния

Running

Dormant Tumbstoned в памяти;

потоки остановлены,

ресурсы освобождены

выгружено из памяти;

сохранены специальные

словари

FAS (Fast Application Switching)

Page 13: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Fast Application Switching

Page 14: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Другие варианты?

Задача Реализация

Переключение задач пользователем Fast App Switching

Уведомления и сигналы Background Notification

Загрузка фалов Background Transfer

Уведомления о событиях Push Notifications

Регулярные действия по расписанию;

toast/tile updates; data pre-caching; etc.

Periodic Background Agent

Проигрывание музыки Background Audio Player

Синхронизация данных Resource-Intensive Agent

GPS-tracking Run under the lock screen

Page 15: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 16: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 17: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

notifications

Page 18: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 19: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 20: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо background file transfer

Page 21: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Background Audio – HTML5

Cloud

Browser www.html5audio.

<audio id="audio_tag" controls="controls" src="http://html5audio.com/Demo1.mp3" onplay="StartPlayback()" onended="NextTrack()" </audio>

Zune Service

function NextTrack() { musicPlayer = document.getElementById("audio_tag"); musicPlayer.src = 'http://html5audio.com/Demo2.mp3'; }

++

Page 22: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

html5 audio

Page 23: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 24: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 25: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо background audio agent

Page 26: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 27: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 28: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 29: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 30: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Агенты: общие правила

Page 31: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Агенты: общие правила

Периодические агенты

Выполнение

Каждые 30 минут

Длительность

15 секунд

Сценарии

Синхронизация данных

Трекинг

местоположения

On Idle агенты

Выполнение

Внешнее питание, Wi-Fi или

USB

Длительность

10 минут

Сценарии

Загрузка данных

Синхронизация больших

объемов

Page 32: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

background agents

Page 33: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

использование

возможностей

платформы

Page 34: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Интеграция

Камера

Захват видео

«Прямой»

доступ к

камере и

вспышке

Networking

Сокеты

HTTP

Сенсоры

GPS

Accelerometer

Compass

Gyro

Motion

Data

SQL CE

Phone Contacts

Phone Calendar

Launchers

& Choosers

Bing Maps

E-mail

Phone Number

Address

Chooser

Page 35: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо возможности

платформы

launchers & choosers

Page 36: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Доступ к пользовательским данным

Chooser Tasks

EmailAddressChooserTask

PhoneNumberChooserTask

AddressChooserTask

Microsoft.Phone.UserData для прямого доступа

Contacts

Appointments

Page 37: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

прямой

доступ к контактам

и встречам

Page 38: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Расширения

Push Notifications

App Connect

Search

Music

Photos

Тайлы

Page 39: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

возможности

платформы

live tiles

Page 40: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Push Notifications

Raw

Tile

Toast

Deep Toast

Связь уведомлений и страниц приложения страницами <wp:Notification xmlns:wp="WPNotification">

<wp:Toast>

<wp:Text1>World News Updates</wp:Text1>

<wp:Text2>Egypt braces for march in palace square</wp:Text2>

<wp:Param>/detailsPage.xaml?storyid=186435</wp:Param>

</wp:Toast>

</wp:Notification>

Page 41: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

возможности

платформы

push notification

Page 42: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Локальное хранилище Isolated Storage

Приложения хранят данные в Isolated Storage неструктурированные данные

Обычные файлы и папки

Настройки

Настройки

App Управление

файлами

Файлы

приложения

App Data Folder

WP7 Isolated

Storage APIs

Page 43: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

возможности

платформы

WebClient &

IsolatedStorage

Page 44: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Локальное хранилище База данных

Custom Data

Context

App

Objects

Identity

Management

Change

Tracking

Update

Processing

Object

Materialization

Core ADO.NET (System.Data)

SQLCE ADO.NET Provider (System.Data.SqlServerCe)

SQL CE DB

.Call System.Linq.Queryable.Select( .Call System.Linq.Queryable.Where(

.Constant(Table(Wines)), '(.Lambda #Lambda1)), '(.Lambda #Lambda2))

.Lambda #Lambda1(db.Wines $w) { $w.Country == “USA" } .Lambda

#Lambda2(w.Country $w) { $w.Name }

var query = from w in db.Wines where w.Country == “USA" select w.Name;

select Name

from Wines

where Country = “USA”

Page 45: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

возможности

платформы

SQL CE

Page 46: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Геолокация

Отдаёт географические координаты, высоту, скорость и направление

при инициализации можно указать стандартная или высокая точность

GeoCoordinateWatcher myGeoWatcher = new GeoCoordinateWatcher();

myGeoWatcher.MovementThreshold = 100.0f;

myGeoWatcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(…);

myGeoWatcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(…);

ThreadPool.QueueUserWorkItem(startMyGeoWotcher, myGeoWatcher);

. . . .

static void startMyGeoWotcher(object GeoWatcher)

{

((GeoCoordinateWatcher)GeoWatcher).TryStart(false, TimeSpan.FromSeconds(60));

}

Page 47: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Акселерометр

Отдаёт вектор ускорения устройства в гравитационных единицах

включает гравитацию

сориентирован относительно устройства

Accelerometer myAccel = new Accelerometer();

myAccel.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(…);

myAccel.Start();

Page 48: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Гироскоп

Скорость вращения устройства вокруг каждой из осей

в радианах/сек

Gyroscope myGyro = new Gyroscope();

myGyro.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<GyroscopeReading>>(…);

myGyro.Start();

Page 49: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Компас (магнитометр)

Точность измерения в градусах

Направление на магнитный полюс (в градусах, против часовой стрелки)

Направление на географический полюс (в градусах, против часовой стрелки)

Данные магнитометра в виде вектора в микротеслах

Compass myCompass = new Compass();

myCompass.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<CompassReading>>(…);

myCompass.Start();

Page 50: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

Использование

геолокационных

данных, акселерометра

и карты

Page 51: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Motion sensor

Motion

Sensor

Page 52: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Поддержка motion sensor

Page 53: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Camera API

Silverlight 4 WebCam API

Простая запись видео

Можно использовать существующий код

Запись аудио и видео в файл

PhotoCamera

Фото

Кнопки камеры

Вспышка и фокус

Page 54: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Демо

Использование

камеры

Page 55: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

Page 56: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

ресурсы

Page 57: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

С чего начать

http://create.msdn.com

http://go.microsoft.com/?linkid=9772716

http://msdn.microsoft.com/ru-ru/windowsphone/

http://www.techdays.ru/?Tag=Windows Phone 7

http://windowsteamblog.com/windows_phone/

http://aka.ms/ruwp7dev - презентация и примеры

Page 58: Использование возможностей платформы WIndows Phone

Nokia Internal Use Only

спасибо

Page 59: Использование возможностей платформы WIndows Phone

© 2011 Microsoft Corporation.

All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of

Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to

changing market conditions, it should not be interpreted to be a commitment on the part of

Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the

date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO

THE INFORMATION IN THIS PRESENTATION.