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

Post on 19-May-2015

9.622 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Nokia Internal Use Only

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

Стас Павлов Эксперт по технологиям разработки ПО stas.pavlov@microsoft.com @stasus

Nokia Internal Use Only

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

Nokia Internal Use Only

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

приложений

Nokia Internal Use Only

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

Running

Dormant Tumbstoned в памяти;

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

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

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

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

словари

FAS (Fast Application Switching)

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

Nokia Internal Use Only

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

Dormant

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

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

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

Tumbstoned

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

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

PhoneApplicationService.State

PhoneApplicationPage.State

Nokia Internal Use Only

Демо

сохранение и

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

состояния

Nokia Internal Use Only

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

Nokia Internal Use Only

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

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

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

Desktop, Windows Mobile, Android

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

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

Ранние iPhone, Windows Phone 7

Nokia Internal Use Only

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

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

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

iPhone 4, Windows Phone codename “Mango”

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

Nokia Internal Use Only

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

Running

Dormant Tumbstoned в памяти;

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

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

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

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

словари

FAS (Fast Application Switching)

Nokia Internal Use Only

Fast Application Switching

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

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

Демо

notifications

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

Демо background file transfer

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'; }

++

Nokia Internal Use Only

Демо

html5 audio

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

Демо background audio agent

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

Nokia Internal Use Only

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

Nokia Internal Use Only

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

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

Выполнение

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

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

15 секунд

Сценарии

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

Трекинг

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

On Idle агенты

Выполнение

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

USB

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

10 минут

Сценарии

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

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

объемов

Nokia Internal Use Only

Демо

background agents

Nokia Internal Use Only

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

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

платформы

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

Nokia Internal Use Only

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

платформы

launchers & choosers

Nokia Internal Use Only

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

Chooser Tasks

EmailAddressChooserTask

PhoneNumberChooserTask

AddressChooserTask

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

Contacts

Appointments

Nokia Internal Use Only

Демо

прямой

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

и встречам

Nokia Internal Use Only

Расширения

Push Notifications

App Connect

Search

Music

Photos

Тайлы

Nokia Internal Use Only

Демо

возможности

платформы

live tiles

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>

Nokia Internal Use Only

Демо

возможности

платформы

push notification

Nokia Internal Use Only

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

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

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

Настройки

Настройки

App Управление

файлами

Файлы

приложения

App Data Folder

WP7 Isolated

Storage APIs

Nokia Internal Use Only

Демо

возможности

платформы

WebClient &

IsolatedStorage

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”

Nokia Internal Use Only

Демо

возможности

платформы

SQL CE

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));

}

Nokia Internal Use Only

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

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

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

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

Accelerometer myAccel = new Accelerometer();

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

myAccel.Start();

Nokia Internal Use Only

Гироскоп

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

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

Gyroscope myGyro = new Gyroscope();

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

myGyro.Start();

Nokia Internal Use Only

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

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

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

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

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

Compass myCompass = new Compass();

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

myCompass.Start();

Nokia Internal Use Only

Демо

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

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

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

и карты

Nokia Internal Use Only

Motion sensor

Motion

Sensor

Nokia Internal Use Only

Поддержка motion sensor

Nokia Internal Use Only

Camera API

Silverlight 4 WebCam API

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

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

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

PhotoCamera

Фото

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

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

Nokia Internal Use Only

Демо

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

камеры

Nokia Internal Use Only

Nokia Internal Use Only

ресурсы

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 - презентация и примеры

Nokia Internal Use Only

спасибо

© 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.

top related