Наметился прогресс в деле поддержки ряда языков, русского в том числе. Есть повод для радости, равно как и для продолжения работы в заданном направлении. Нынешнюю виртуальную клавиатуру тоже не назвать венцом творения. При смене языка системы на русский для данного средства ввода он тоже становится основным. Кто-то сочтет подход логичным, кто-то нет. Дело и не в этом, а в том, что нажатия кнопки, переключающей язык ввода, хватает для набора лишь одного символа, после чего клавиатура возвращается к кириллической раскладке. Сложно поверить, что такая чехарда ускользнула от внимания программистов и испытателей, еще тяжелее уяснить, почему никто устранил недочет.
Разработчики программного обеспечения получили в свое распоряжение вместе с новой Visual Studio 2005 дополнительные опции, о паре из которых скажу. Имена им anchoring и docking, то есть что-то вроде якорения (анкеровки) и докинга. Они призваны упростить создание удобного и информативного интерфейса. Недавно, когда у Smartphone и Pocket PC была фиксированная ориентация дисплея, такая проблема не стояла. У пришедшей же WM 2003 SE с ее экранной многоформатностью выявился эстетический и отчасти функциональный недостаток. При повороте изображения или запуске программы на трубке с квадратным экраном на него выводились не все сведения. Для доступа к оставшимся за его рамками и смещения вниз требовалась помощь полосы прокрутки — при условии ее наличия — или джойстика.
И если подобное поведение понятно в стесненных обстоятельствах устройств с дисплеями 240х240 точек, то простая ротация картинки не должна бы приводить к таким последствиям: как-никак ее площадь остается неизменной. За счет применения анкеровки, закрепляющей элементы на определенном расстоянии от границы, и докинга, позволяющего расположить нужные фрагменты интерфейса у края экрана, отдельных осложнений удается избежать. По крайней мере, в этом убеждены специалисты, напутствующие программистов на сайте Microsoft. После со-поставления скриншотов у меня сложилось впечатление, что выгода была извлечена путем перегруппировки деталей интерфейса. Стоит ли сделать вывод, что ранее такое действие было неосуществимо, не знаю; должно быть, это было не так удобно.
Понятия Windows Mobile 5.0 и Persistent Storage неразлучны, словно имена Ромео и Джульетты. Начиная с WM 5.0, энергозависимая память Pocket PC устройств выступает единственно в роли оперативной. Все данные отныне хранятся в ПЗУ и пропадают оттуда только при его физическом повреждении — принцип, перенятый у Smartphone терминалов. Отсутствие питания не представляет угрозы, и это неоспоримое достоинство. Кроме того, в ряде случаев сокращается энергопотребление устройства. В заметке о новом подходе и его преимуществах сообщается[Лично не проверял, но оснований не доверять источнику (Майк Каллигаро — член команды разработчиков Windows Mobile) нет], что для поддержания 64 Мбайт ОЗУ в рабочем состоянии на протяжении трех суток нужна батарея емкостью 250 мАч. Ряд случаев, о которых идет речь, — это конструирование приборов нижнего ценового диапазона — они будут довольствоваться 32 Мбайт ОЗУ — и вероятное ограничение объема энергозависимой памяти 64 Мбайт — вряд ли в ближайшие пару лет коммуникаторы перешагнут этот барьер. По логике вещей, продолжительность службы без пополнения запасов энергии WM 5.0 компьютеров должна возрасти. Надежды обусловлены тем, что раньше устройства ради сбережения информации сворачивали свою деятельность за 72 часа до полного разряда аккумуляторов. Владельцы КПК от HP были вольны сократить интервал до 24 часов, не более того. Выходит, приблизительно четверть запасов мощности элемента питания оставалась нерастраченной. Теперь же сдерживающего фактора как будто нет, однако предупреждения о риске потери данных при разряде батареи по-прежнему возникают. Посему не понятно, соблюдается ли «правило 72 часов» в настоящий момент, или нам от него остались ожившие воспоминания.
Нежелательным и предсказуемым результатом смены типа памяти стало ухудшение быстродействия зависящих от нее процессов. Об этом предупреждали, не уточняя масштабов явления; у нескольких пользователей эффект превзошел ожидания. У одного пять тысяч контактов вместо нескольких минут синхронизировались несколько часов, после чего аппарат стал чрезвычайно заторможенным. После сокращения количества записей до тысячи к нему вернулось былое проворство. У обладателя Dell Axim X51v после загрузки на него сведений из ежедневника за прошедшие два года переключение между заметками о событиях стало отнимать по двадцать секунд. К сожалению, я сам не ставил подобных экспериментов и не могу обогатить материал собственными впечатлениями; будет оказия — непременно займусь. Мне почему-то кажется, что дело не столько в памяти, сколько в издержках, связанных со сменой ее типа, сложностях перехода. Иными словами, об этой печали быстро позабудут, так как дефект будет устранен, коль скоро он вообще не был свойственен только нескольким моделям.
Что бы вы себе ни вообразили, в виду имеется русский вариант акронима API (Application Programming Interface), то есть программный интерфейс приложения. По сравнению с предыдущими версиями WM в 5.0 API были переиначены и обновлены. Они делятся на три группы: новшества, адресованные разработчикам, оперирующим управляемым кодом[Написанные приложения должны соответствовать спецификациям среды разработки (допустим, .NET) и должны быть созданы с ее помощью] (managed code), не применяющим его (native code developers) и обеим этим категориям.
Первые получили доступ к таким приложениям, как «Телефон» — позволяет им, например, инициировать вызов; «Outlook Mobile» — контроль записей в «Контактах», «Календаре» и т. п., создание SMS и электронных писем; «Configuration Manager» — конфигурация прибора с применением XML.
Арсенал вторых пополнится следующими инструментами:
Direct3D Mobile — адаптированный для компактных устройств программный интерфейс Direct3D, эксплуатируемый при создании приложений для настольных систем. Благодаря этому разработчики имеют возможность не изменять своим привычкам, что ускоряет написание ПО.
DirectDraw — произошел от 4-й версии одноименного API для компьютеров. И если Direct3D Mobile обеспечивает аппаратно-программное взаимодействие при реализации трехмерной графики, то DirectDraw выполняет схожую функцию в случае двухмерной.
DirectShow — интерфейс-посредник между камерами мобильных терминалов и приложениями. Через него осуществляются контроль встроенных фоторегистрирующих устройств, запись снимков и видео. Обладает поддержкой некоторого количества форматов файлов, при необходимости их ассортимент поддается расширению.
GPS Intermediate Driver — отвечает за интерференцию GPS-приемника и обращающихся к нему программ. Отметим также, что благодаря данному драйверу одновременно несколько приложений имеют право обмениваться данными с GPS-устройством.
Uniquely Identifying a Device — требуется для привязки конкретной копии программы к идентификационному номеру аппарата и охраны интеллектуальной собственности.
Digital Rights Management API — служит тем же высоким идеалам, даря программистам средство для управления различными DRM-механизмами вне зависимости от их организации.
Общая же для всех программистов выгода состоит в появлении State and Notification Broker, сигнализирующего об изменениях в состоянии системы. Таким образом, деятельность определенного приложения можно приурочить к тому или иному событию. Допустим, зарядилась батарея до определенного уровня — навигационная программа активирует GPS-приемник и приступает к исполнению своих обязанностей. Помимо «брокера», обнаружился продукт под названием Picture Selection Dialog — просмотрщик изображений, могущий найти применение в ряде программ. Также для сторонних приложений открылся путь к контролю процесса съемки интегрированной камерой, что, бесспорно, облегчит труд их авторов.