Upload
nokiaru
View
9.619
Download
1
Tags:
Embed Size (px)
Citation preview
Nokia Internal Use Only
Использование возможностей платформы Windows Phone
Стас Павлов Эксперт по технологиям разработки ПО [email protected] @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
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.