Flash / AIR. Введение.

AIR. Введение: 

Решил, можно так сказать, расширить свой кругозор и покопаться в Adobe AIR. Собственно, в процессе изучения этой технологии есть желание записывать свои мысли и формировать все это в отдельные статьи. Писать буду как обычно своим языком… у кого вызывает отвращение мой словарный запас и структура моих предложений, можете… идти лесом. Да, возможно, при прочтении некоторых предложений у вас будет возникать дежавю, это нормально, я не буду пытаться брать все из головы, так как, естественно, я сам учусь по какой-то документации.

В первой статье, мне бы хотелось описать что представляет из себя технология AIR и путь ее развития. Поехали.





AIR.Введение.


Adobe AIR – это среда выполнения, которая поддерживает множество платформ. Для создания приложений AIR можно использовать Adobe® Flash® CS3 Professional, Adobe® Flash® CS4 Professional, Adobe® Flash® CS5 Professional, Adobe® Flex™, Adobe® ActionScript® 3.0, HTML, JavaScript® и Ajax. Что же привносит AIR нового в платформу Flash?

AIR предоставляет разработчику больше свободы для работы с операционный системой пользователя. В список фишек входят создание окон приложения, меню, работа с файловой системой, работа с буфером обмена, работа с локальными базами данных и т.д. Но самое хорошее это то, что вам не придется переучиваться. Если вы уже писали web-приложения на языке Actionscript 3.0, то вам будет очень просто изучить AIR. По сути, AIR позволяет использовать все то что вы использовали и до AIR. Я про классы сейчас. AIR докидывает к «базовым» классам собственный набор классов и функций, которые расширяют ваши возможности в написании приложений. Еще один плюс использовать AIR для написания desktop приложений заключается в том, что приложения AIR не зависят от конкретной операционной системы. Это позволяет, написав код один раз, быть уверенным что он будет запущен в любой ОС. Приложение AIR запаковывается в единственный файл с расширением *.air и может быть передан любому пользователю. Для того чтобы его запустить, пользователю собственно следуя инструкциям инсталлятора AIR нужно установить это приложение в какую-то папку, в папке появится некоторое количество файлов, среди которых будет один файл, с расширением *.exe и именем приложения. Кликая на него AIR приложение будет запущено.

Вот такой кратенький обзор AIR. Для получения дополнительной информации обратитесь к официальным источникам.

Развитие AIR.

Версия 1.0

Собственно большая часть того что есть в данный момент в AIR, было представлено в этой версии.

Версия 1.1

Появились следующие новые возможности:
• Установочные и прочие диалоговые окна были переведены на следующие языки.
• Португальский (Бразилия)
• Китайский (традиционный и упрощенный)
• Французский
• Немецкий
• Итальянский
• Японский
• Корейский
• Русский
• Французский
• Испанский
• Поддержка при создании приложений для работы в различных странах, включая ввод с клавиатуры для языков с двухбайтовыми кодировками.
• Поддержка локализации атрибутов name и description в файле дескриптора приложения.
• Поддержка локализации сообщений об ошибках, например SQLError.detailID и SQLError.detailArguments, в базе данных SQLite.
• Добавление свойства Capabilities.languages для получения массива предпочтительных языков интерфейса пользователя в соответствии с установками операционной системы.
• Метки кнопок HTML и меню по умолчанию, например контекстные меню и панель меню Mac, были локализованы для всех поддерживаемых языков.
• Поддержка миграции сертификата из самоподписывающего приложения в приложение с сертификатом, выданным соответствующими органами.
• Поддержка Microsoft Windows XP для карманных ПК и поддержка 64-разрядных версий Windows Vista® Home Premium, Business, Ultimate или Enterprise.
• Добавление прикладного интерфейса программирования File.spaceAvailable для выявления свободного места на диске.
• Добавление свойства NativeWindow.supportsTransparency для определения того, можно ли отображать окно как прозрачное в используемой операционной системе.

Версия 1.5

Появились следующие новые возможности:
• Поддержка новых функций проигрывателя Adobe Flash 10.
• Настраиваемые фильтры и эффекты
• Улучшенный прикладной интерфейс программирования для отображения
• Динамическое создание звуков
• Векторный тип данных
• Улучшенные прикладные интерфейсы программирования для загрузки и выгрузки файлов
• Протокол RTMFP
• Трехмерные эффекты
• Расширенная поддержка текста
• Управление цветом
• Текстовый процессор
• Создание динамических потоков
• Аудиокодек Speex
• Дополнительно в программе установки AIR 1.5 и других диалоговых окнах среды выполнения поддерживаются следующие языки: чешский, голландский, шведский, турецкий, польский.
• Шифрование базы данных.
Можно зашифровать файлы базы данных в AIR 1.5. Все содержимое базы данных, включая метаданные, может быть зашифровано таким образом, что данные не смогут быть прочитаны вне приложения AIR, зашифровавшего их. Эта возможность позволит разработчику зашифровывать, расшифровывать и перешифровывать файлы данных.
• Версия пакета WebKit, используемая Adobe AIR, была обновлена и теперь включает поддержку интерпретатора SquirrelFish JavaScript.
• Новый прикладной интерфейс программирования проверки подписи XML, который может использоваться для проверки целостности и идентификации подписчика для данных или информации.

Версия 1.5.1

Появились следующие новые возможности:
• Последняя версия надстройки Flash Player
AIR 1.5.1 содержит обновленную версию надстройки Flash Player (10.0.22), которая используется при просмотре SWF-файлов внутри HTML.
Новые прикладные программные интерфейсы
• InvokeEvent.reason
Это новое свойство события InvokeEvent указывает, сам ли пользователь запустил приложение или оно было автоматически загружено при его входе в систему. Класс InvokeEventReason (в пакете flash.desktop) определяет два возможных строчных значения для свойства InvokeEvent.reason. InvokeEventReason.LOGIN определяет
вариант при входе в систему; InvokeEventReason.STANDARD определяет стандартный случай.
• Capabilities.cpuArchitecture
В этом новом свойстве возвращается информация об архитектуре процессора на компьютере, в виде строки (например, «PowerPC» или «x86»).

Версия 1.5.2

Появились следующие новые возможности:
Новые прикладные программные интерфейсы
• Capabilities.supports32BitProcesses и Capabilities.supports64BitProcesses
Эти свойства указывают, будет ли система поддерживать 64-разрядные или 32-разрядные процессы.
• LocalConnection.isPerUser
Это свойство указывает, будет ли область действия объектов LocalConnection ограничена текущим пользователем (TRUE), или они будут глобально доступны всем пользователям на данном компьютере (FALSE). Это свойство влияет только на содержимое, выполняющееся в Mac OS; другие платформы игнорируют данный параметр. Например, локальные подключения в Windows и Linux всегда выполняются на уровне пользователя. В предыдущих версиях программы все объекты LocalConnection на Mac OS имели глобальную область действия. Из соображений безопасности всегда устанавливайте для этого свойства значение TRUE, за исключением тех случаев, когда необходимо сохранить совместимость с предыдущими версиями. В будущих версиях это свойство скорее всего будет иметь значение по умолчанию TRUE.
• System.disposeXML()
Это статический метод делает объект ActionScript XML мгновенно доступным для сборки мусора. Данный метод удаляет родительские и дочерние связи между всеми узлами для указанного объекта XML. Этот метод использует один параметр: объект XML, который нужно сделать доступным для сбора мусора. Используйте этот метод, чтобы обеспечить эффективность распределения памяти, связанной с объектами XML.

Версия 1.5.3

Adobe AIR 1.5.3 — это обновление среды выполнения Adobe AIR и набора инструментальных средств для разработки (SDK). Это обновление повышает надежность, совместимость и безопасность среды. Это обновление устраняет проблему сбоя приложений AIR при использовании процессоров семейства AMD Phenom.

Версия 2.0

Появились следующие новые возможности:
• ОС Windows 2000 и компьютеры Mac с процессором PowerPC больше не поддерживаются. Пользователи, работающие в этих операционных системах, смогут по-прежнему устанавливать и выполнять приложения AIR 1.5, но не смогут выполнять установку или обновление до версии AIR 2.
• API-интерфейсы собственных процессов
• Обнаружение запоминающего устройства большой емкости
• Собственные обработчики для открытия документов
• API-интерфейс локального микрофона
• Поддержка программ для чтения с экрана (только в ОС Windows)
• Улучшенная поддержка перетаскивания
• Улучшенные API-интерфейс IME и ввод текста IME
• Новый пакет WebKit с поддержкой возможностей CSS3 и некоторых функций HTML5
• Более быстрый модуль JavaScript
• Сокет-серверы и одноранговая связь
• Сокеты TLS/SSL
• Поддержка сетевого взаимодействия UDP
• Поддержка мультисенсорной технологии и жестов
• Улучшения производительности
• Межплатформенная (Mac/Windows) векторная печать
• Улучшенное взаимодействие с принтером
• Глобальный обработчик ошибок
• Поддержка сети IPv6
• Установщики среды выполнения в виде пакетов .deb и .rpm для Linux
• Улучшения системы безопасности
• Увеличенный максимальный размер окна

Версия 2.0.3

Adobe AIR 2.0.3 — это обновление среды выполнения Adobe AIR. Это обновление повышает производительность, надежность, совместимость и безопасность среды.

Версия 2.5

Появились следующие новые возможности:
• В дополнение к Windows, Mac OS, Linux и iOS, AIR 2.5 теперь поддерживает приложения для Android.
Настольные компьютеры
• StageWebView, имитирующий то, как StageWebView будет выглядеть на мобильном
• Поддержка CSS Shadow, позволяющая создавать теневые эффекты как текстовых, так и HTML-границ
• Поддержка CSS font-face включена для шрифтов OpenType и TrueType
• Аппаратное декодирование видео H.264 для настольных ПК
Мобильные устройства
• Интерфейс неподвижных изображений и видео CameraUI
• Отображение специальных тегов Android из app-xml в Android Manifest
• Поддержка NetworkInfo
• Чтение из программы «Фотопленка»
• Пользовательский URI
• Видеозахват с камеры
• Микрофон
• StageWebView
• Тег Android Permissions в дескрипторе приложения
• cacheAsBitmapMatrix
• Аппаратное ускорение рендеринга
• Изменения в версии приложения
• Отладка приложений AIR на Android
• События клавиатуры для клавиш «Меню», «Назад» и «Поиск»
• Значок размером 36×36
• Срок действия сертификата
• GPS
• Акселерометр
• Multitouch/Жесты
• Затемнение экрана
• Схемы SMS/TEL URI
• Диалоговое окно сертификата SSL
• Виртуальная клавиатура
• Программа «Фотопленка»
• Ориентация экрана

Версия 2.5.1

Выпуск Adobe AIR 2.5.1 является обновлением среды выполнения Adobe AIR. Это обновление предназначено для повышения уровней производительности, надежности, совместимости и безопасности.

Версия 2.6

Среда AIR 2.6 поддерживает приложения для ОС Android, iOS, Windows, Mac OS и Linux.
• Поддержка ОС iOS
• Рендеринг с использованием графического процессора работает на смартфоне iPhone
• Поддержка многозадачности в ОС iOS4
• Поддержка микрофона в ОС iOS
• Чтение данных Camera Roll (Фотопленка) в ОС iOS
• Поддержка CameraUI в ОС iOS
• Поддержка камеры в ОС iOS
• Поддержка экрана Retina в ОС iOS
• Сдвиг и масштабирование при отображении экранной клавиатуры
• Поддержка прокрутки, выделения текста и контекстного меню в ОС Android
• Векторная печать в ОС Linux

Версия 2.7

• Установка среды выполнения AIR на карту SD: эта функция позволяет конечным пользователям устанавливать или перемещать среду выполнения AIR на карты SD устройств Android с целью освобождения места для хранения данных на телефоне.
• Улучшенная производительность в ОС iOS: среда выполнения оптимизирована таким образом, чтобы разработчики могли создавать приложения, работающие быстрее в ОС iOS.
• Оценка показателей содержимого мультимедиа: оценка показателей видео стала намного проще. Используя Adobe® SiteCatalyst® вместе с Adobe AIR 2.7 или Flash Player 10.3, разработчики могут создать приложения для анализа видео, состоящие всего из двух строчек кода и работающие как с автономными приложениями, так и с веб-сайтами. Поставщики решений по аналитике могут использовать набор новых открытых интерфейсов API для удобной реализации последовательных аналитических данных о видео независимо от процесса внедрения или протокола доставки. Функция оценки показателей мультимедиа для AIR и Flash Player позволяет компаниям получать сводные отчеты в режиме реального времени, содержащие сведения о том, каким образом распространяются их видеоматериалы, какую аудиторию они охватывают и сколько видеороликов воспроизводится. Функция оценки показателей мультимедиа пока недоступна для упаковщика iOS в этом выпуске.
• Акустическое эхоподавление: в среде выполнения AIR 2.7 разработчики могут создавать приложения с высококачественным аудио для совместной работы в реальном времени через Интернет, например приложения телефонии, голосового чата в играх и групповых конференций, работающие вне браузера в настольных операционных системах. Разработчики могут воспользоваться преимуществами подавления акустического эха и шумов, обнаружения голосовых данных и автоматической компенсации для различных уровней входного сигнала микрофона. Конечные пользователи смогут оценить более высокое качество звука за счет повышения эффективности потока данных при общении без применения гарнитуры. Эта функция доступна только для настольных платформ
• Улучшенный API-интерфейс HTMLLoader: разработчикам AIR 2.7 доступны расширенные возможности управления поведением реагирующих на нажатие ссылок в содержимом HTML в автономном настольном приложении. Эта функция позволяет издателям содержимого реализовать плавную навигацию с помощью веб-ссылок непосредственно в настольных приложениях, например в приложениях для просмотра журналов и чтения электронных книг.

Версия 2.8

• Графическая визуализация, ускоренный Stage 3D (настольная система проигрывателя и AIR + AIR for TV) . Stage 3D — это новая архитектура аппаратно-ускоренной визуализации графики, предоставляющая набор API-интерфейсов низкого уровня, обеспечивающих расширенные возможности 2D- и 3D-визуализации на экранах и устройствах (настольные системы, мобильные устройства и ТВ-устройства). С использованием Stage 3D разработчики приложений и архитектур могут получать доступ к высокопроизводительному аппаратному ускорению графического процессора, позволяющему создавать новые классы для многофункционального интерактивного взаимодействия. Примечание. Поддержка архитектуры Stage 3D для мобильных версий Flash Player и AIR будет добавлена в будущем выпуске.
• Улучшенные возможности защиты содержимого Flash Access. Новые функции защиты содержимого Flash Access включают поддержку чередования ключей, создание цепочек лицензий V3, поддержку домена и улучшенные возможности защиты вывода и фильтрации устройств.
• Защищенная динамическая потоковая передача по протоколу HTTP (HDS). Защищенная динамическая потоковая передача по протоколу HTTP (HDS) обеспечивает защиту при передаче видео между экранами и исключает сложность, связанную с развертыванием сервера лицензий.
• Метод NetStream.dispose(). Похож на метод NetStream.close(), но также очищает последний кадр, удержанный классом NetStream для отображения в объекте Video. Используйте этот метод вместо метода NetStream.close(), если планируется дальнейшее использование класса NetStream для других потоков. Он запускает сбор мусора видеокадра и связанных объектов декомпрессора. После использования этого метода объект видео будет показывать пустой кадр.
• Программное кодирование H.264/AVC для камер (настольные системы). Можно выполнять потоковую передачу высококачественного видео с камеры компьютера с более высокой эффективностью сжатия и поддержкой отраслевого стандарта. Благодаря этому обеспечивается иммерсивное взаимодействие, например через видеочат или видеоконференцию и прямую трансляцию видео.
• Поддержка JPEG-XR. Flash Player и AIR теперь включают поддержку передового стандарта сжатия изображений JPEG-XR (международный стандарт ISO/IEC 29199-2). Стандарт JPEG-XR, характеризующийся более низкой вычислительной сложностью, обеспечивает более эффективное сжатие, чем формат JPEG, поддержку сжатия данных как с потерями, так и без потерь и добавление поддержки прозрачности альфа-канала.
• Улучшенная поддержка растровых изображений с высоким разрешением. Максимальное разрешение объектов BitmapData больше не ограничено 16 мегапикселями (16 777 215 пикселей), а максимальная ширина или высота — 8 191 пикселем, благодаря чему можно разрабатывать приложения, в которых используются очень большие растровые изображения.
• Поддержка высокоэффективного сжатия SWF. Разработчики теперь могут использовать сжатие LZMA для своих SWF-файлов. Сжатие LZMA позволяет уменьшить размер SWF-файла на 40 %, обеспечивая более разнообразные возможности взаимодействия с пользователем с уменьшением времени загрузки и более эффективным использованием полосы пропускания.
• Сжатие аудио G.711 для телефонии. Предусмотрена поддержка функциональной совместимости с устаревшими телефонными аппаратами с помощью Flash Media Gateway (FMG) и других клиентов сторонних разработчиков (через открытый протокол RTMP) без необходимости транскодирования.
• Встроенная поддержка JSON (JavaScript Object Notation). Позволяет разработчикам ActionScript использовать встроенные высокопроизводительные возможности анализа и создания данных в формате JSON.
• Рекомендации по сбору мусора. Обеспечивают более оптимальное и оперативное взаимодействие с пользователями благодаря тому, что разработчики могут предоставлять советы по оптимизации расписания сбора мусора.
• Кубические кривые Безье. С помощью API-интерфейса рисования cubicCurveTo разработчики могут просто создавать сложные кривые Безье без использования специального кода ActionScript.
• Безопасный генератор случайных чисел. Разработчики теперь могут использовать криптографически защищенную генерацию случайных чисел для построения более безопасных алгоритмов и протоколов.
• События передачи данных через сокет. Повышают эффективность управления передачей данных с использованием класса Socket за счет предоставления нового свойства для определения количества байт, оставшихся в буфере записи, и нового события передачи данных на уровень сети. И помощью этих новых API-интерфейсов разработчики могут создавать такие приложения, как утилиты передачи файлов, отслеживающие ход передачи данных через сокет и предоставляющие ответ о передаче.
• DisplayObjectContainer.removeChildren и MovieClip.isPlaying. DisplayObjectContainer теперь реализует API-интерфейс removeChildren, позволяющий разработчикам быстро удалять все дочерние элементы контейнера в одном вызове API-интерфейса. Новое свойство MovieClip.isPlaying возвращает текущее состояние воспроизведения MovieClip.
• Sound.loadCompressedDataFromByteArray и Sound.loadPCMFromByteArray — разработчикам предоставлена возможность внедрять сжатые или несжатые звуковые данные PCM в объект Sound для воспроизведения звуков.
• Собственные расширения. С помощью библиотек собственных расширений разработчики могут создавать и использовать собственные библиотеки, которые можно вызвать с использованием ActionScript. Эти библиотеки позволяют разработчикам ActionScript использовать ту же самую платформу и те же самые встроенные возможности и API-интерфейсы устройств для собственных приложений с простой интеграцией в приложения AIR. Кроме того, собственные расширения можно использовать для критического для производительности кода или переноса существующих собственных библиотек, таких как декодировщики изображений, для использования в приложении AIR.
• Поддержка защиты содержимого Flash Access для AIR Mobile. Поддержка защиты содержимого Flash Access теперь доступна на мобильных устройствах, включая смартфоны и планшетные компьютеры на платформе Android. Кроме того, защита содержимого теперь поддерживается на планшетных устройствах на платформе BlackBerry® Tablet OS. Примечание. В данный момент Flash Access for iOS не поддерживается. Помимо этого, Flash Access для Flash Player Android в настоящее время не поддерживается.
• Зашифрованное локальное хранилище для мобильных устройств — предоставляется поддержка зашифрованного локального хранилища на мобильных устройствах. Безопасность данных приложений на устройстве пользователя может быть увеличена для обеспечения хранения паролей, сертификатов и данных аудита.
• Собственная поддержка среды выполнения. Эта популярная функция AIR for iOS теперь доступна в среде AIR для настольных систем, AIR for Android и AIR for TV. Она позволяет упростить процесс установки приложений и снизить затраты на тестирование и сертификацию за счет добавления среды выполнения AIR в пакет с приложением на устройствах Windows, Mac, Android и ТВ-устройствах.
• Аппаратное ускорение видео рабочей области (мобильная среда AIR). Используйте аппаратное ускорение всего канала видео для обеспечения эффективных лучших в своем классе возможностей воспроизведения видео в формате высокой четкости (HD). Снизьте загрузку процессора и оптимизируйте воспроизведение видео, уменьшите использование памяти и повысьте точность на мобильных устройствах (поддерживается в ОС Android 3.1, BlackBerry Tablet OS и iOS) и ТВ-устройствах.
• Поддержка воспроизведения в формате H.264/AAC (AIR for iOS). Можно воспроизводить видео в форматах H.264 и AAC в ОС iOS, когда включено аппаратное ускорение видео в рабочей области. Для использования этой функции доставка видео должна быть организована с использованием прогрессивной загрузки или через протокол HLS. Протокол RTMP не поддерживается из-за ограничений платформы.
• Поддержка фронтальной камеры (AIR for Android). Поддержка фронтальной камеры, доступная в среде AIR for iOS и BlackBerry Tablet OS, теперь также доступна на устройствах Android. Теперь с помощью фронтальной камеры можно организовать сеанс связи пользователей в режиме многофункциональной конференции или чата на смартфонах и планшетных компьютерах.
• Поддержка воспроизведения аудио в фоновом режиме (AIR for iOS). Разработчики теперь могут программировать многозадачные приложения iOS, поддерживающие воспроизведение аудио в фоновом режиме, например музыкальные приложения или надежные приложения голосовой конференции с поддержкой многозадачности.
• Управление динамиками для мобильных устройств (AIR for iOS и AIR for Android). Разработчики могут выбрать вывод звука через динамик телефона или внешний динамик.
• Глубина цвета: 16 бит и 32 бита. Предоставляет разработчикам параметр дескриптора приложения, с помощью которого можно управлять глубиной цвета графики на платформе Android (16 бит или 32 бита) в режиме renderMode=cpu/auto. В AIR 2.7 и более старых пространствах имен по умолчанию используется цвет глубиной 16 бит, в то время как в AIR 3.0 и более новых пространствах имен по умолчанию используется цвет глубиной 32 бита.
• API-интерфейс игрового контроллера (AIR for TV). Позволяет разработчикам создавать приложения для ТВ-устройств, которые могут устанавливать связь с подключенным игровым устройством ввода, таким как джойстик или управляющая палочка. Примечание. Эта возможность пока отсутствует в среде AIR для настольных систем и мобильных устройств.

Версия 3.1

Этот выпуск не включает новых функций, но содержит улучшения и исправления ошибок, связанные с безопасностью, стабильностью, производительностью и совместимостью устройств.
• Поддержка iOS 5 для AIR.

Версия 3.2

Скоро должна выйти версия AIR 3.2 в которой будет Mouse Lock, многопоточное декодирование видео, поддержка Stage3D на мобильниках и т.д.
ЗЫ: Описание версий AIR было взято с официального сайта Adobe.