Жевательные конфеты

Андроид 4.3

Android 4.3 на телефоне и планшете

Добро пожаловать в Android 4.3, более приятную версию Jelly Bean!

Android 4.3 включает оптимизацию производительности и новые замечательные функции для пользователей и разработчиков. Этот документ дает представление о том, что нового для разработчиков.

Подробное описание новых API для разработчиков см. в документе API Android 4.3 .

Узнайте больше о новых функциях Jelly Bean для пользователей на сайте www.android.com .

Быстрее, плавнее, более отзывчивый

Android 4.3 основывается на улучшениях производительности, уже включенных в Jelly Bean — синхронизация вертикальной синхронизации , тройная буферизация , уменьшенная задержка касания , увеличение входного сигнала процессора и аппаратное ускорение 2D-рендеринга — и добавляет новые оптимизации, которые делают Android еще быстрее.

Для повышения производительности графики механизм 2D-рендеринга с аппаратным ускорением теперь оптимизирует поток команд рисования , преобразуя его в более эффективный формат графического процессора путем переупорядочивания и объединения операций рисования. Для многопоточной обработки средство рендеринга теперь также может использовать многопоточность между несколькими ядрами ЦП для выполнения определенных задач.

В Android 4.3 также улучшена отрисовка фигур и текста . Такие фигуры, как круги и прямоугольники со скругленными углами, теперь отображаются с более высоким качеством и более эффективно. Оптимизации для текста включают повышение производительности при использовании нескольких шрифтов или сложных наборов глифов (CJK), более высокое качество рендеринга при масштабировании текста и более быстрый рендеринг теней.

Улучшенное распределение буфера окна приводит к более быстрому выделению буфера изображения для ваших приложений, сокращая время, необходимое для начала рендеринга при создании окна.

Для обеспечения высочайшей производительности графики в Android 4.3 реализована поддержка OpenGL ES 3.0 , которая доступна приложениям как через платформу, так и через собственные API. На поддерживаемых устройствах механизм 2D-рендеринга с аппаратным ускорением использует преимущества OpenGL ES 3.0 для оптимизации управления текстурами и повышения точности отрисовки градиентов .

OpenGL ES 3.0 для высокопроизводительной графики

В Android 4.3 представлена ​​поддержка платформы Khronos OpenGL ES 3.0 , предоставляющая играм и другим приложениям высокопроизводительную 2D- и 3D-графику на поддерживаемых устройствах. Вы можете воспользоваться преимуществами OpenGL ES 3.0 и связанных с ним расширений EGL, используя либо API-интерфейсы платформы , либо собственные привязки API через Android Native Development Kit (NDK).

Ключевые новые функции, представленные в OpenGL ES 3.0, включают ускорение расширенных визуальных эффектов, высококачественное сжатие текстур ETC2/EAC в качестве стандартной функции, новую версию языка шейдеров GLSL ES с поддержкой целочисленных и 32-битных чисел с плавающей запятой, расширенный рендеринг текстур, а также стандартизированные размеры текстур и форматы буфера рендеринга.

Вы можете использовать API-интерфейсы OpenGL ES 3.0 для создания очень сложной и высокоэффективной графики, которая работает на различных совместимых устройствах Android, и вы можете поддерживать единый стандартный формат сжатия текстур на этих устройствах.

OpenGL ES 3.0 — это дополнительная функция, которая зависит от базового графического оборудования. Поддержка уже доступна на устройствах Nexus 7 (2013 г.), Nexus 4 и Nexus 10.

Улучшенное соединение Bluetooth

Возможность подключения к устройствам и датчикам Bluetooth Smart

Теперь вы можете проектировать и создавать приложения, которые взаимодействуют с последним поколением небольших маломощных устройств и датчиков, использующих технологию Bluetooth Smart .

Android 4.3 предоставляет вам единый стандартный API для взаимодействия с устройствами Bluetooth Smart.

Android 4.3 представляет встроенную поддержку платформы Bluetooth Smart Ready в центральной роли и предоставляет стандартный набор API-интерфейсов, которые приложения могут использовать для обнаружения близлежащих устройств, запроса служб GATT и характеристик чтения/записи.

Благодаря новым API ваши приложения смогут эффективно сканировать интересующие устройства и сервисы. Для каждого устройства вы можете проверить наличие поддерживаемых сервисов GATT по UUID и управлять соединениями по идентификатору устройства и уровню сигнала. Вы можете подключиться к серверу GATT, размещенному на устройстве, и прочитать или записать характеристики или зарегистрировать прослушиватель для получения уведомлений при каждом изменении этих характеристик.

Вы можете реализовать поддержку любого профиля ГАТТ. При необходимости вы можете читать или записывать стандартные характеристики или добавлять поддержку пользовательских характеристик. Ваше приложение может функционировать как клиент или сервер и может передавать и получать данные в любом режиме. API-интерфейсы являются универсальными, поэтому вы сможете поддерживать взаимодействие с различными устройствами, такими как бесконтактные метки, часы, фитнес-метры, игровые контроллеры, пульты дистанционного управления, устройства для здоровья и многое другое.

Поддержка Bluetooth Smart Ready уже доступна на устройствах Nexus 7 (2013 г.) и Nexus 4, а в ближайшие месяцы ее будет поддерживать все больше Android-совместимых устройств.

Профиль AVRCP 1.3

В Android 4.3 добавлена ​​встроенная поддержка Bluetooth AVRCP 1.3 , поэтому ваши приложения могут поддерживать более широкое взаимодействие с удаленными устройствами потокового мультимедиа. Такие приложения, как медиаплееры, могут использовать преимущества AVRCP 1.3 через клиентские API удаленного управления, представленные в Android 4.0. Помимо предоставления элементов управления воспроизведением на удаленных устройствах, подключенных через Bluetooth, приложения теперь могут передавать метаданные, такие как название трека, композитора и другие типы медиа-метаданных.

Поддержка платформы AVRCP 1.3 основана на стеке Bluedroid Bluetooth, представленном Google и Broadcom в Android 4.2. Поддержка доступна сразу на устройствах Nexus и других Android-совместимых устройствах, поддерживающих A2DP/AVRCP.

Поддержка профилей с ограниченным доступом

Настройка профиля с ограниченным доступом

Владелец планшета может настроить один или несколько профилей с ограниченным доступом в настройках и управлять ими самостоятельно.

Установка ограничений в профиле

Ваше приложение может предлагать ограничения, позволяющие владельцам управлять содержимым вашего приложения, когда оно работает в профиле.

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

Каждый профиль с ограниченным доступом предлагает изолированное и безопасное пространство с собственным локальным хранилищем, домашними экранами, виджетами и настройками. В отличие от пользователей, профили создаются в среде владельца планшета на основе установленных им приложений и системных учетных записей. Владелец контролирует, какие установленные приложения будут включены в новом профиле, а доступ к учетным записям владельца отключен по умолчанию.

Приложения, которым необходим доступ к учетным записям владельца — для входа, настройки или других целей — могут согласиться, объявив атрибут манифеста, а владелец может просматривать эти приложения и управлять ими из параметров конфигурации профиля.

Для разработчиков профили с ограниченным доступом предлагают новый способ повысить ценность и контроль для ваших пользователей. Вы можете реализовать ограничения приложения — элементы управления контентом или возможностями, которые поддерживаются вашим приложением — и рекламировать их владельцам планшетов в настройках конфигурации профиля.

Вы можете добавить ограничения приложений непосредственно в параметры конфигурации профиля, используя предопределенные логические типы, типы выбора и множественного выбора. Если вам нужна большая гибкость, вы даже можете запустить свой собственный пользовательский интерфейс из настроек конфигурации профиля, чтобы предложить любой тип ограничений, который вы хотите.

Когда ваше приложение запускается в профиле, оно может проверять наличие любых ограничений, настроенных владельцем, и применять их соответствующим образом. Например, мультимедийное приложение может предлагать ограничение, позволяющее владельцу устанавливать уровень зрелости для профиля. Во время выполнения приложение может проверять настройку зрелости, а затем управлять содержимым в соответствии с предпочтительным уровнем зрелости.

Если ваше приложение не предназначено для использования в профилях с ограниченным доступом, вы можете вообще отказаться от него, чтобы ваше приложение нельзя было включить ни в одном профиле с ограниченным доступом.

Оптимизированное местоположение и возможности датчиков

Сервисы Google Play предлагают расширенные API-интерфейсы определения местоположения, которые вы можете использовать в своих приложениях. Android 4.3 оптимизирует эти API на поддерживаемых устройствах с помощью новых аппаратных и программных возможностей, которые минимизируют расход заряда батареи.

Аппаратное геозонирование оптимизирует энергопотребление, выполняя вычисление местоположения в аппаратном обеспечении устройства, а не в программном обеспечении. На устройствах, поддерживающих аппаратное геозонирование, API-интерфейсы геозон сервисов Google Play смогут использовать эту оптимизацию для экономии заряда батареи во время движения устройства.

Режим «только сканирование Wi-Fi» — это новая оптимизация платформы, которая позволяет пользователям включать сканирование Wi-Fi без подключения к сети Wi-Fi, чтобы повысить точность определения местоположения и экономить заряд батареи. Приложения, которые используют Wi-Fi для определения местоположения, теперь могут просить пользователей включить режим только сканирования в расширенных настройках Wi-Fi. Режим «Только сканирование Wi-Fi» не зависит от аппаратного обеспечения устройства и доступен как часть платформы Android 4.3.

Новые типы датчиков позволяют приложениям лучше управлять показаниями датчиков. Вектор вращения игры позволяет разработчикам игр определять вращение устройства, не беспокоясь о магнитных помехах. Некалиброванные датчики гироскопа и некалиброванные магнитометры сообщают приложениям необработанные измерения, а также расчетные отклонения.

Новые аппаратные возможности уже доступны на устройствах Nexus 7 (2013 г.) и Nexus 4, и любой производитель устройств или поставщик чипсета может встроить их в свои устройства.

Новые медиа-возможности

Модульная структура DRM

Чтобы удовлетворить потребности медиа-сервисов следующего поколения, Android 4.3 представляет модульную структуру DRM , которая позволяет разработчикам мультимедийных приложений более легко интегрировать DRM в свои собственные протоколы потоковой передачи, такие как MPEG DASH (динамическая адаптивная потоковая передача через HTTP, ISO/IEC 23009). -1).

Благодаря сочетанию новых API и усовершенствований существующих API платформа DRM мультимедиа предоставляет интегрированный набор сервисов для управления лицензированием и предоставлением, доступа к кодекам низкого уровня и декодирования зашифрованных медиаданных. Новый API MediaExtractor позволяет получать метаданные PSSH для мультимедиа DASH. Приложения, использующие платформу DRM мультимедиа, управляют сетевым взаимодействием с сервером лицензий и обрабатывают потоковую передачу зашифрованных данных из библиотеки контента.

Кодер VP8

В Android 4.3 представлена ​​встроенная поддержка кодировки VP8 , доступная из платформы и собственных API. Для приложений, использующих собственные API, платформа включает заголовки расширений OpenMAX 1.1.2 для поддержки профилей и уровней VP8. Поддержка кодирования VP8 включает настройки целевого битрейта, управления скоростью, частотой кадров, разделения токенов, устойчивости к ошибкам, реконструкции и циклических фильтров. API платформы обеспечивает поддержку кодировщика VP8 в различных форматах, поэтому вы можете использовать лучший формат для своего контента.

Кодирование VP8 доступно в программном обеспечении на всех совместимых устройствах под управлением Android 4.3. Для обеспечения максимальной производительности платформа также поддерживает аппаратное ускорение кодирования VP8 на соответствующих устройствах.

Кодирование видео с поверхности

Начиная с Android 4.3, вы можете использовать поверхность в качестве входных данных для видеокодера. Например, теперь вы можете направить поток с поверхности OpenGL ES на кодер вместо копирования между буферами.

Медиа-мультиплексор

Приложения могут использовать новые API-интерфейсы мультимедиа-мультиплексора для объединения элементарных аудио- и видеопотоков в один выходной файл. В настоящее время приложения могут мультиплексировать один аудиопоток MPEG-4 и один видеопоток MPEG-4 в один выходной файл MPEG-4 . Новые API являются аналогом API-интерфейсов демультимедиа, представленных в Android 4.2.

Ход воспроизведения и очистка в клиентах удаленного управления

Начиная с Android 4.0, медиаплееры и подобные приложения могут предлагать элементы управления воспроизведением с помощью клиентов удаленного управления, такие как экран блокировки устройства, уведомления и удаленные устройства, подключенные через Bluetooth. Начиная с Android 4.3, эти приложения теперь также могут отображать ход и скорость воспроизведения через свои клиенты удаленного управления и получать команды для перехода к определенной позиции воспроизведения .

Новые способы создания красивых приложений

Доступ к уведомлениям

Уведомления уже давно стали популярной функцией Android, поскольку они позволяют пользователям видеть информацию и обновления со всей системы в одном месте. Теперь в Android 4.3 приложения могут наблюдать за потоком уведомлений с разрешения пользователя и отображать уведомления любым удобным для них способом, включая отправку их на ближайшие устройства, подключенные через Bluetooth.

Вы можете получить доступ к уведомлениям через новые API, которые позволяют зарегистрировать службу прослушивания уведомлений и с разрешения пользователя получать уведомления в том виде, в котором они отображаются в строке состояния. Уведомления доставляются вам в полном объеме со всеми подробностями об исходном приложении, времени публикации, виде и стиле контента, а также приоритете. Вы можете оценивать интересующие поля в уведомлениях, обрабатывать или добавлять контекст из своего приложения и направлять их для отображения любым выбранным вами способом.

Новый API предоставляет обратные вызовы при добавлении, обновлении и удалении уведомления (либо потому, что пользователь отклонил его, либо исходное приложение отозвало его). Вы сможете запускать любые намерения, связанные с уведомлением или его действиями, а также удалять их из системы, позволяя вашему приложению предоставлять полный пользовательский интерфейс для уведомлений.

Пользователи сохраняют контроль над тем, какие приложения могут получать уведомления. В любой момент они могут зайти в «Настройки», чтобы узнать, какие приложения имеют доступ к уведомлениям, и при необходимости включить или отключить доступ . Доступ к уведомлениям отключен по умолчанию — приложения могут использовать новое намерение, чтобы перенаправить пользователя непосредственно в настройки, чтобы включить службу прослушивателя после установки.

Просмотр наложений

Теперь вы можете создавать прозрачные наложения поверх представлений и групп представлений для рендеринга временной иерархии представлений или временных эффектов анимации, не нарушая базовую иерархию макета. Наложения особенно полезны, когда вы хотите создавать анимацию, например, перемещать представление за пределы контейнера или перетаскивать элементы на экране, не затрагивая иерархию представлений.

Режим размещения оптических границ

Новый режим макета позволяет управлять расположением представлений внутри групп представлений в соответствии с их оптическими границами , а не границами клипов. Границы клипа представляют собой фактическую внешнюю границу виджета, а новые оптические границы описывают, где находится виджет внутри границ клипа. Вы можете использовать режим макета оптических границ, чтобы правильно выровнять виджеты, использующие внешние визуальные эффекты, такие как тени и свечение.

Пользовательские типы анимации вращения

Приложения теперь могут определять типы анимации выхода и входа, используемые в окне при повороте устройства. Вы можете настроить свойства окна, чтобы включить переход , плавное затухание или стандартное вращение окна. Система использует пользовательские типы анимации, когда окно полноэкранное и не перекрыто другими окнами.

Режимы ориентации экрана

Приложения могут устанавливать новые режимы ориентации для действий, чтобы они отображались в правильной ориентации при переворачивании устройства. Кроме того, приложения могут использовать новый режим для блокировки экрана в его текущей ориентации. Это полезно для приложений, использующих камеру, которые хотят отключить вращение во время съемки видео.

Намерение обработки быстрых ответов

В Android 4.3 представлено новое общедоступное намерение, которое позволяет любому приложению обрабатывать быстрые ответы — текстовые сообщения, отправляемые пользователем в ответ на входящий вызов, без необходимости отвечать на звонок или разблокировать устройство. Ваше приложение может прослушивать намерение и отправлять сообщение вызывающему абоненту через вашу систему обмена сообщениями. Намерение включает в себя получателя (вызывающего абонента), а также само сообщение.

Поддержка международных пользователей

Многие части Android 4.3 оптимизированы для языков с письмом справа налево.

Улучшения справа налево

Android 4.3 включает улучшения производительности RTL и более широкую поддержку RTL во всех виджетах пользовательского интерфейса платформы, включая ProgressBar/Spinner и ExpandableListView. Дополнительная информация об отладке отображается с помощью инструмента uiautomatorviewer . Кроме того, теперь больше компонентов системного пользовательского интерфейса поддерживают RTL, например уведомления, панель навигации и панель действий.

Чтобы обеспечить более эффективное использование сценариев RTL в масштабах всей системы, больше системных приложений по умолчанию теперь поддерживают макеты RTL, включая «Панель запуска», «Быстрые настройки», «Телефон», «Люди», «Мастер настройки», «Часы», «Загрузки» и т. д.

Утилиты для локализации

Псевдолокали упрощают тестирование локализации вашего приложения.

Android 4.3 также включает новые утилиты и API для создания более качественных строк RTL и тестирования локализованных пользовательских интерфейсов. Новый класс BidiFormatter предоставляет простой API для переноса строк Юникода, чтобы данные сценария RTL отображались так, как предполагалось, в сообщениях локали LTR и наоборот. Чтобы вы могли более широко использовать эту утилиту в своих приложениях, API BidiFormatter теперь доступен и для более ранних версий платформы через пакет поддержки в Android SDK.

Чтобы помочь вам управлять форматированием даты в различных языковых стандартах, в Android 4.3 включен новый метод getBestDateTimePattern() , который автоматически генерирует наилучшую возможную локализованную форму даты Unicode UTS для указанного вами языкового стандарта. Это удобный способ обеспечить более локализованный интерфейс для ваших пользователей.

Чтобы вам было проще тестировать приложение в других локалях, в Android 4.3 в качестве новой возможности для разработчиков представлены псевдолокали . Псевдолокали имитируют язык, сценарий и характеристики отображения, связанные с языковым стандартом или языковой группой. В настоящее время вы можете протестировать псевдо-локаль для акцентированного английского языка , что позволит вам увидеть, как ваш пользовательский интерфейс работает с диакритическими знаками и символами, используемыми на различных европейских языках.

Доступность и автоматизация пользовательского интерфейса

Начиная с Android 4.3, службы специальных возможностей могут отслеживать и фильтровать ключевые события , например обрабатывать сочетания клавиш или обеспечивать четность навигации с помощью ввода на основе жестов. Служба получает события и может обрабатывать их по мере необходимости, прежде чем они будут переданы в систему или другие установленные приложения.

Службы доступности могут объявлять новые атрибуты возможностей , чтобы описать, что могут делать их службы и какие функции платформы они используют. Например, они могут заявить о возможности фильтровать ключевые события, получать содержимое окон, включать исследование касанием или включать функции веб-доступности. В некоторых случаях службы должны объявить атрибут возможности, прежде чем они смогут получить доступ к соответствующим функциям платформы. Система использует атрибуты возможностей службы для создания диалогового окна согласия для пользователей, чтобы они могли просмотреть возможности и согласиться с ними перед запуском.

Новая платформа автоматизации пользовательского интерфейса , основанная на платформе специальных возможностей Android 4.3, позволяет тестам взаимодействовать с пользовательским интерфейсом устройства, моделируя действия пользователя и анализируя содержимое экрана. С помощью платформы автоматизации пользовательского интерфейса вы можете выполнять основные операции, задавать поворот экрана, генерировать события ввода, делать снимки экрана и многое другое. Это мощный способ автоматизации тестирования в реалистичных пользовательских сценариях, включая действия или последовательности, охватывающие несколько приложений.

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

Конфигурация Wi-Fi для сетей WPA2-Enterprise

Теперь приложения могут настраивать учетные данные Wi-Fi, необходимые для подключения к корпоративным точкам доступа WPA2 . Разработчики могут использовать новые API для настройки учетных данных расширяемого протокола аутентификации (EAP) и инкапсулированного EAP (фаза 2) для методов аутентификации, используемых на предприятии. Приложения с разрешением на доступ и изменение Wi-Fi могут настраивать учетные данные аутентификации для различных методов аутентификации EAP и фазы 2.

Песочница Android, усиленная SELinux

Android теперь использует SELinux , систему обязательного контроля доступа (MAC) в ядре Linux для расширения изолированной программной среды приложений на основе UID. Это защищает операционную систему от потенциальных уязвимостей безопасности.

Улучшения цепочки ключей

API KeyChain теперь предоставляет метод, который позволяет приложениям подтверждать, что общесистемные ключи привязаны к аппаратному корню доверия для устройства. Это обеспечивает место для создания или хранения закрытых ключей, которые невозможно экспортировать с устройства даже в случае компрометации root или ядра.

Поставщик хранилища ключей Android

В Android 4.3 представлен поставщик хранилища ключей и API, которые позволяют приложениям создавать ключи эксклюзивного использования. Используя API, приложения могут создавать или хранить закрытые ключи, которые не могут быть просмотрены или использованы другими приложениями , и могут быть добавлены в хранилище ключей без какого-либо взаимодействия с пользователем.

Поставщик хранилища ключей предоставляет те же преимущества безопасности, что и API KeyChain для общесистемных учетных данных, например привязку учетных данных к устройству. Закрытые ключи в хранилище ключей невозможно экспортировать с устройства.

Ограничить использование Setuid в приложениях Android

Раздел /system теперь монтируется nosuid для процессов, порожденных зиготой, что не позволяет приложениям Android выполнять программы setuid . Это уменьшает поверхность корневой атаки и вероятность потенциальных уязвимостей безопасности.

Новые способы анализа производительности

Systrace использует новый синтаксис команд и позволяет собирать больше типов данных профилирования.

Улучшенное ведение журнала Systrace

Android 4.3 поддерживает расширенную версию инструмента Systrace , которую проще использовать и которая дает вам доступ к большему количеству типов информации для профилирования производительности вашего приложения. Теперь вы можете собирать данные трассировки из аппаратных модулей , функций ядра , виртуальной машины Dalvik , включая сбор мусора, загрузку ресурсов и многое другое.

Android 4.3 также включает новые API-интерфейсы Trace, которые вы можете использовать в своих приложениях для пометки определенных разделов кода для отслеживания с помощью событий начала/конца Systrace. При выполнении отмеченных разделов кода система записывает события начала/конца в журнал трассировки. Влияние на производительность вашего приложения минимально, поэтому сообщаемые данные о времени дают вам точное представление о том, что делает ваше приложение.

Вы можете визуализировать события, специфичные для приложения, на временной шкале в выходном файле Systrace и анализировать события в контексте других данных трассировки ядра и пользовательского пространства. Вместе с существующими тегами Systrace настраиваемые разделы приложений могут дать вам новые способы понять производительность и поведение ваших приложений.

Экранное профилирование графического процессора в Android 4.3.

Профилирование графического процессора на экране

В Android 4.3 добавлены новые возможности для разработчиков, которые помогут вам анализировать производительность вашего приложения и выявлять проблемы с рендерингом на любом устройстве или в эмуляторе.

В опции рендеринга «Профиль графического процессора» теперь вы можете визуализировать эффективную частоту кадров вашего приложения на экране во время работы приложения. Вы можете выбрать отображение данных профилирования в виде полос или линейных графиков на экране, причем цвета обозначают время, потраченное на создание команд рисования (синий), выдачу команд (оранжевый) и ожидание завершения команд (желтый). Система постоянно обновляет экранные графики, отображая график для каждого видимого действия, включая панель навигации и панель уведомлений.

Зеленая линия выделяет пороговое значение 16 мс для операций рендеринга, поэтому вы можете оценить эффективную частоту кадров вашего приложения относительно целевого значения 60 кадров в секунду (поскольку 1/60 секунды примерно равна 16 мс). Если вы видите операции, пересекающие зеленую линию, вы можете проанализировать их дальше с помощью Systrace и других инструментов.

На устройствах под управлением Android 4.2 и выше параметры разработчика по умолчанию скрыты. Вы можете открыть их в любое время, нажав 7 раз «Настройки» > «О телефоне» > «Номер сборки» на любом совместимом устройстве Android.

Предупреждение StrictMode для URI файлов

Последним дополнением к инструменту StrictMode является ограничение политики, которое предупреждает, когда ваше приложение предоставляет URI file:// системе или другому приложению. В некоторых случаях принимающее приложение может не иметь доступа к пути URI file:// , поэтому при совместном использовании файлов между приложениями следует использовать URI content:// (с соответствующим разрешением). Эта новая политика поможет вам выявлять и исправлять такие случаи. Если вы ищете удобный способ хранения файлов и предоставления доступа к ним другим приложениям, попробуйте использовать поставщика контента FileProvider , доступного в библиотеке поддержки .

Андроид 4.2

Android 4.2 на телефоне и планшете

Добро пожаловать в Android 4.2, последнюю версию Jelly Bean!

Android 4.2 имеет оптимизацию производительности, обновленный системный пользовательский интерфейс и отличные новые функции для пользователей и разработчиков. Этот документ дает представление о том, что нового для разработчиков.

Подробное описание новых API для разработчиков см. в документе API Android 4.2 .

Узнайте больше о новых функциях Jelly Bean для пользователей на сайте www.android.com .

Быстрее, плавнее, более отзывчивый

Android 4.2 основывается на улучшениях производительности, уже включенных в Jelly Bean — синхронизация вертикальной синхронизации , тройная буферизация , уменьшенная задержка касания и ускорение ввода процессора — и добавляет новые оптимизации, которые делают Android еще быстрее.

Улучшения в аппаратном ускорении 2D-рендеринга делают обычные анимации, такие как прокрутка и смахивание, более плавными и быстрыми. В частности, рисование оптимизировано для слоев, обрезки и определенных форм (скругленных прямоугольников, кругов и овалов).

Различные оптимизации рендеринга WebView делают прокрутку веб-страниц более плавной и без дрожания и задержек.

Renderscript Compute для Android — это первая вычислительная платформа, портированная для работы непосредственно на графическом процессоре мобильного устройства . Он автоматически использует вычислительные ресурсы графического процессора, когда это возможно, значительно повышая производительность обработки графики и изображений. Любое приложение, использующее Renderscript на поддерживаемом устройстве, может сразу же получить выгоду от этой интеграции с графическим процессором без перекомпиляции .

10-дюймовый планшет под управлением Android 4.2.

Усовершенствованный, обновленный интерфейс

Android 4.2 совершенствует пользовательский интерфейс Jelly Bean и переносит на все планшеты знакомые шаблоны пользовательского интерфейса Android, такие как строка состояния, системная строка и окно уведомлений.

Экраны всех размеров теперь имеют строку состояния вверху с раскрывающимся доступом к уведомлениям и новым меню быстрых настроек . Внизу появится знакомая системная панель , кнопки которой легко доступны любой рукой. Панель приложений также доступна на экранах всех размеров.

Один планшет, много пользователей

Теперь несколько пользователей могут совместно использовать один планшет Android , при этом каждый пользователь имеет удобный доступ к выделенному пользовательскому пространству . Пользователи могут переключаться в свои пространства одним касанием с экрана блокировки.

На многопользовательском устройстве Android предоставляет каждому пользователю отдельную среду, включая эмулируемое для конкретного пользователя хранилище SD-карт. У пользователей также есть свои собственные домашние экраны, виджеты, учетные записи, настройки, файлы и приложения, и система хранит их отдельно. Все пользователи используют общие системные службы, но система гарантирует, что приложения и данные каждого пользователя остаются изолированными. По сути, у каждого из нескольких пользователей есть собственное устройство Android.

Пользователи могут устанавливать и удалять приложения в любое время в своих средах. Чтобы сэкономить место, Google Play загружает APK только в том случае, если он еще не установлен на устройстве другим пользователем. Если приложение уже установлено, Google Play фиксирует установку нового пользователя обычным способом, но не загружает еще одну копию приложения. Несколько пользователей могут запускать одну и ту же копию APK, поскольку система создает новый экземпляр для каждого пользователя, включая каталог данных для конкретного пользователя.

Для разработчиков многопользовательская поддержка прозрачна — вашим приложениям не нужно делать ничего особенного для нормальной работы в многопользовательской среде, и вам не нужно вносить никаких изменений в существующие или опубликованные APK. Система управляет вашим приложением в каждом пользовательском пространстве так же, как и в однопользовательской среде.

Новые способы привлечения пользователей

Виджет экрана блокировки календаря

Вы можете расширить виджеты приложений для запуска на экране блокировки для мгновенного доступа к вашему контенту.

Виджеты экрана блокировки

В Android 4.2 пользователи могут размещать виджеты приложений прямо на экранах блокировки для мгновенного доступа к любимому содержимому приложений без необходимости разблокировки. Пользователи могут добавить до пяти виджетов экрана блокировки, выбирая из виджетов, предоставляемых установленными приложениями. Экран блокировки отображает каждый виджет на отдельной панели, позволяя пользователям проводить пальцем влево и вправо для просмотра различных панелей и их виджетов.

Как и все виджеты приложений, виджеты экрана блокировки могут отображать любой тип контента и допускают прямое взаимодействие с пользователем. Они могут быть полностью автономными, например, виджет, предлагающий элементы управления для воспроизведения музыки, или позволять пользователям сразу переходить к действию в вашем приложении после разблокировки по мере необходимости.

Виджеты экрана блокировки предлагают разработчикам отличный новый способ привлечения пользователей. Они позволяют размещать ваш контент перед пользователями там, где они будут часто видеть, и дают вам больше возможностей привлечь пользователей непосредственно в ваше приложение.

Вы можете воспользоваться этой новой возможностью, создав новый виджет приложения или расширив существующий виджет главного экрана. Если ваше приложение уже включает виджеты главного экрана, вы можете распространить их на экран блокировки с минимальными изменениями. Чтобы предоставить пользователям оптимальные возможности, вы можете обновить виджет, чтобы он использовал всю область экрана блокировки, когда она доступна, и при необходимости изменял размер на экранах меньшего размера. Вы также можете добавить в свои виджеты функции, которые могут быть особенно полезны и удобны на экране блокировки.

Мечта

Daydream — это интерактивный режим заставки , который запускается, когда устройство пользователя подключено к док-станции или заряжается. В этом режиме система запускает мечту — удаленный контент-сервис, предоставляемый установленным приложением — в качестве заставки устройства. Пользователь может включить Daydream в приложении «Настройки», а затем выбрать мечту для отображения.

Daydreams сочетает в себе лучшие возможности живых обоев и виджетов домашнего экрана, но они более мощные. Они позволяют вам предлагать любой вид контента в совершенно новом контексте, с такими взаимодействиями с пользователем, как пролистывание фотографий, воспроизведение аудио или видео или переход прямо в ваше приложение одним касанием.

Поскольку мечты могут запускаться автоматически, когда устройство заряжается или стыкуется с док-станцией, они также дают вашему приложению отличный способ поддерживать новые типы пользовательского опыта, такие как режим отдыха или демонстрации, демонстрационный режим или режим киоска, а также «режим привлечения» — и все это без необходимости специальное оборудование.

Режим заставки Daydream

Daydream позволяет создавать мощные интерактивные заставки, отображающие любой контент.

Daydreams похожи на Activity и могут делать все, что может делать Activity — от рендеринга иерархии пользовательского интерфейса (без использования RemoteViews) до непосредственного рисования с использованием Canvas, OpenGL, SurfaceTexture и т. д. Они могут воспроизводить видео и аудио и даже принимать прямое взаимодействие с пользователем. Однако мечты не являются действиями, поэтому они не влияют на backstack, не отображаются в списке «Недавние» и не могут быть запущены непосредственно из вашего приложения.

Реализация мечты проста, и вы можете воспользоваться преимуществами компонентов и ресурсов пользовательского интерфейса, которые вы уже создали для других частей вашего приложения. Вы можете реализовать несколько мечтаний в своем приложении и предложить для каждого отдельный контент и настройки отображения.

Поддержка внешнего дисплея

В Android 4.2 реализована поддержка платформ для внешних дисплеев , которая выходит далеко за рамки зеркалирования: приложения теперь могут нацеливать уникальный контент на любой один или несколько дисплеев, подключенных к устройству Android. Приложения могут использовать это, чтобы предоставлять пользователям новые виды взаимодействия и развлечений.

Диспетчер дисплея

Приложения взаимодействуют с дисплеями через новую системную службу диспетчера дисплеев. Ваше приложение может перечислять дисплеи и проверять возможности каждого из них, включая размер, плотность, отображаемое имя, идентификатор, поддержку защищенного видео и многое другое. Ваше приложение также может получать обратные вызовы при добавлении или удалении дисплеев или при изменении их возможностей, чтобы лучше управлять контентом на внешних дисплеях.

Окно презентации

Чтобы упростить отображение контента на внешнем дисплее, платформа предоставляет новый объект пользовательского интерфейса, называемый презентацией — тип диалогового окна, который представляет окно для содержимого вашего приложения на определенном внешнем дисплее. Ваше приложение просто предоставляет дисплей, тему для окна и любой уникальный контент для отображения. Презентация обрабатывает надувание ресурсов и отдает ваш контент в соответствии с характеристиками целевого дисплея.

Вы можете получить полный контроль над двумя или более независимыми дисплеями, используя презентацию .

Презентация дает вашему приложению полный контроль над окном удаленного отображения и его содержимого и позволяет управлять им на основе событий пользователя, таких как нажатия клавиш, жесты, события движения и многое другое. Вы можете использовать все обычные инструменты для создания пользовательского интерфейса и рендеринга в презентации, от создания иерархии произвольного представления до использования Surfaceview или Surfacetexture, чтобы привлечь непосредственно в окно для потокового контента или предварительных просмотров камеры.

Предпочтительный выбор дисплея

Когда доступно несколько внешних дисплеев, вы можете создать столько презентаций, сколько вам нужно, при этом каждый показывает уникальный контент на определенном дисплее. Во многих случаях вы можете захотеть показать свой контент только на одном внешнем дисплее - но всегда на том, что лучше всего подходит для контента презентации. Для этого система может помочь вашему приложению выбрать лучший дисплей для использования.

Чтобы найти лучший дисплей для использования, ваше приложение может запросить диспетчер дисплеев для предпочтительного отображения презентации системы и получить обратные вызовы при изменении этого дисплея. В качестве альтернативы, вы можете использовать сервис медиа -маршрутизатора, продленную в Android 4.2, для получения уведомлений при изменении системного видео маршрута. Ваше приложение может отображать контент по умолчанию в основной деятельности до тех пор, пока не будет подключен предпочтительный дисплей презентации, и в это время оно может автоматически переключаться на содержимое презентации на предпочтительном дисплее. Ваши приложения также могут использовать медиа-маршрутизатор MediarouteactionProvider и Mediaroutebutton, чтобы предложить стандартный пользовательский интерфейс выбора дисплея.

Защищенный контент

Для приложений, которые обрабатывают защищенный или зашифрованный контент, API дисплея теперь сообщает о безопасных видео -возможностях прикрепленных дисплеев. Ваше приложение запрашивает дисплей, чтобы выяснить, предлагает ли оно безопасное видео вывод или предоставляет защищенные графические буферы, а затем выберите соответствующий поток контента или декодирование, чтобы сделать просмотр контента. Для получения дополнительной безопасности на объектах SurfaceView ваше приложение может установить безопасный флаг, чтобы указать, что содержимое никогда не должно отображаться на скриншотах или на выходе небезопасного дисплея, даже при зеркале.

Беспроводной дисплей

Начиная с Android 4.2, пользователи на поддерживаемых устройствах могут подключаться к внешнему дисплею по сравнению с Wi-Fi, используя дисплей Wi-Fi (решение для однорангового беспроводного дисплея, которое соответствует программе сертификации MIRACAST ™ ). Когда подключен беспроводной дисплей, пользователи могут транслировать любой тип контента на большой экран, включая фотографии, игры, карты и многое другое.

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

Нативная поддержка RTL

RTL Layout Mircoring

Разработчики теперь могут отражать свои макеты для языков RTL.

Android 4.2 вводит полную собственную поддержку макетов RTL (сразу налево), включая зеркалирование макета. С помощью нативной поддержки RTL вы можете доставить один и тот же отличный опыт приложения для всех ваших пользователей, независимо от того, использует ли их язык сценарий, который читает практически налево или считывает слева направо.

Когда пользователь переключает язык системы на сценарий справа налево, система теперь обеспечивает автоматическое зеркальное зеркальное зеркальное зеркальное оборудование макетов приложения и все виджеты View, в дополнение к зеркалированию текстовых элементов как для чтения, так и для ввода символов.

Ваше приложение может воспользоваться преимуществом зеркалирования макета RTL в вашем приложении с минимальными усилиями. Если вы хотите, чтобы приложение было зеркальным, вы просто объявите новый атрибут в своем приложении Manifest и измените все свойства «левый/правый» на новые свойства «стартовой/конец». Затем система обрабатывает зеркалирование и отображение вашего пользовательского интерфейса по мере необходимости.

Для точного контроля над вашим приложением, Android 4.2 включает в себя новые API, которые позволяют управлять направлением макета, направление текста, выравнивание текста, гравитацию и направление локали в виде компонентов. Вы даже можете создать пользовательские версии макета, рисунков и других ресурсов для отображения, когда используется сценарий справа налево.

Чтобы помочь вам отладить и оптимизировать ваши пользовательские макеты правого на ползу, инструмент иерархийвкера теперь позволяет вам увидеть свойства начала/конечного уровня, направление макета, направление текста и выравнивание текста для всех представлений в иерархии.

Улучшения для международных языков

Android 4.2 включает в себя различные оптимизации шрифтов и персонажей для международных пользователей:

  • Для корейских пользователей доступен новый выбор шрифта-Nanum (나눔 글꼴 글꼴) готический шрифт Unicode, разработанный специально для сценария корейского языка.
  • Улучшенная поддержка японского вертикального текста, отображаемого в веб -просмотрах.
  • Улучшенный шрифт и позиционирование для Indic, Thai, арабского и ивритского дефолта.

Клавиатура Android по умолчанию также включает в себя обновленный набор словарей:

  • Улучшенные словаря для французского (с поддержкой Bigram), английский и русский
  • Новые словари для датского, греческого, финского, литовского, латвийского, польского, словенского, сербского, шведского, турецкого

Новые способы создания красивого пользовательского интерфейса

Вложенные фрагменты

Для большего контроля над компонентами пользовательского интерфейса и для того, чтобы сделать их более модульными, Android 4.2 позволяет гнездовать фрагменты внутри фрагментов . Для любого фрагмента новый менеджер фрагментов позволяет вам вставлять другие фрагменты в качестве детских узлов в иерархию представления.

Вы можете использовать вложенные фрагменты различными способами, но они особенно полезны для реализации динамических и многоразовых компонентов пользовательского интерфейса внутри компонента пользовательского интерфейса, который сам по себе является динамическим и повторным использованием. Например, если вы используете ViewPager для создания фрагментов, которые проводят влево и вправо, теперь вы можете вставить фрагменты в каждый фрагмент пейджера.

Чтобы позволить вам более широко воспользоваться вложенными фрагментами в вашем приложении, эта возможность добавляется к последней версии библиотеки поддержки Android .

Доступность

В настоящее время система помогает услугам доступности различать жесты исследования и доступности в режиме соприкосновения. Когда пользователь касается экрана, система уведомляет о службе, что началось общее сенсорное взаимодействие. Затем он отслеживает скорость сенсорного взаимодействия и определяет, является ли это сенсорным исследованием (медленным) или жестом доступности (быстро) и уведомляет услугу. Когда контактное взаимодействие заканчивается, система уведомляет службу.

Система предоставляет новый глобальный параметр доступности, который позволяет службе доступности открывать меню быстрых настроек на основе действия пользователя. Также в Android 4.2 добавлен новый тип обратной связи с доступностью для устройств Braille .

Чтобы дать представление услуг доступности значения представлений для целей доступности, структура предоставляет новые API для ассоциации представления в качестве ярлыка для другого представления. Метка для каждого представления доступна для служб доступности через Accessibilitynodeinfo.

Улучшенная камера с HDR

Android 4.2 представляет новый аппаратный интерфейс камеры и трубопровод для улучшения производительности. На поддерживаемых устройствах приложения могут использовать новый режим сцены камеры HDR для сбора изображения с использованием методов изображения с высоким динамическим диапазоном.

Кроме того, Framework теперь предоставляет API, позволяющий приложениям проверить, можно ли отключить звук затвора камеры. Затем приложения могут позволить пользователю отключить звук или выбрать альтернативный звук вместо стандартного звука затвора, который рекомендуется.

Вычисление рендерскрипта

В Android 4.2, renderscript Compute представляет новые функции сценариев, новые оптимизации и прямую интеграцию графического процессора для наивысшей производительности в вычислительных операциях.

Фильтрскрипт

Filterscript - это подмножество рендеров, которая ориентирована на оптимизированную обработку изображений в широком диапазоне чипсетов устройства . Разработчики могут написать свои операции обработки изображений в FilterScript, используя API Standard Renderscript Stime, но в пределах более строгих ограничений, которые обеспечивают более широкую совместимость и улучшенную оптимизацию между процессорами, графическими процессорами и DSP.

Filterscript идеально подходит для простых операций обработки изображений и вычислений, таких как те, которые могут быть записаны для фрагментных шейдеров. Поскольку он накладывает расслабленный набор ограничений на оборудование, ваши операции оптимизированы и ускоряются на более широких типах чипсетов устройства. Любое приложение таргетирования API Уровень 17 или выше может использовать FilterScript.

Скрипт внутренней

В Android 4.2 renderscript добавляет поддержку для набора внутренней сценарии-предварительно внедренных примитивов фильтрации, которые ускоряются, чтобы уменьшить количество кода, которое вам необходимо писать, и чтобы убедиться, что ваше приложение получило максимальное усиление производительности.

Внутренние доступны для смесей, размытия, цветной матрицы, 3x3 и 5x5, конвервеля, за таблицей поиска и преобразования буфера YUV Android в RGB.

Группы сценариев

Теперь вы можете создавать группы сценариев рендеров и выполнить их все с одним вызовом, как если бы они были частью одного сценария. Это позволяет renderscript оптимизировать выполнение сценариев таким образом, чтобы он не мог сделать, если сценарии выполнялись индивидуально.

Renderscipt оптимизации диаграммы

Проценсы обработки изображений renderscript работают в разных версиях Android платформы (Android 4.0, 4.1 и 4.2) в процессоре только на устройстве Galaxy Nexus.

Процедуры обработки изображений renderscript Сравнение операций, работающих с процессором GPU + с тем, которые работают в процессоре только на одном устройстве Nexus 10.

Если у вас есть направленный ациклический график операций RenderScript для запуска, вы можете использовать класс застройщика для создания группы сценариев, определяющей операции. Во время выполнения, renderscript оптимизирует порядок запуска и соединения между этими операциями для достижения наилучшей производительности.

Постоянные улучшения оптимизации

Когда вы используете renderscript для вычислительных операций, вы приложения получают выгоду от постоянных улучшений производительности и оптимизации в самом двигателе рендеров, без какого -либо влияния на код приложения или каких -либо потребностей в перекомпиляции.

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

Графический процессор вычисляет

Renderscript Compute - это первая вычислительная платформа, портированная непосредственно на графическом процессоре мобильного устройства. Теперь он автоматически использует преимущества вычислительных ресурсов GPU , когда это возможно, чтобы повысить производительность. Благодаря интеграции графического процессора даже самые сложные вычисления для графики или обработки изображений могут выполняться с резко улучшенной производительностью.

Любое приложение, использующее renderscript на поддерживаемом устройстве, может немедленно извлечь выгоду из этой интеграции GPU, не перекомпилируя. Планшет Nexus 10 является первым устройством, поддерживающим эту интеграцию.

Новые встроенные варианты разработчиков

Система Android 4.2 включает в себя множество новых опций разработчика, которые облегчают создание отличных приложений, которые работают хорошо. Новые варианты разоблачают функции для отладки и профилирования вашего приложения с любого устройства или эмулятора.

На устройствах под управлением Android 4.2 параметры разработчика по умолчанию скрыты, помогая создать лучший опыт для пользователей. Вы можете раскрыть параметры разработчика в любое время, нажав 7 раз по настройкам > о телефоне > Номер сборки на любом совместимом устройстве Android.

Новые варианты разработчика дают вам больше способов профилирования и отладки на устройстве.

Новые варианты разработчика в Android 4.2 включают:

  • Возьмите отчет об ошибке - сразу же снимает снимок экрана и сбрасывает информацию о состоянии устройства в локальное хранилище файлов, а затем прикрепляет их к новому исходящему сообщению электронной почты.
  • Отчеты об ошибках MENU Power - добавляет новую опцию в меню Power Device и быстрые настройки для получения отчета об ошибке (см. Выше).
  • Проверьте приложения через USB - позволяет отключить проверки приложений для приложений по борьбе с USB, а также проверять приложения из других источников, таких как браузер. Это может ускорить процесс разработки, сохраняя функцию безопасности включена.
  • Покажите обновления оборудования слоев - мигает аппаратные слои зеленых при обновлении.
  • Показать GPU Overdrod - выделяет области перегрузки графических процессоров.
  • Force 4x MSAA - включает 4X MSAA в приложениях Open GL ES 2.0.
  • Моделируйте вторичные дисплеи -создает одно или несколько небезопасных оверлейных окон на текущем экране для использования в качестве моделируемого удаленного дисплея. Вы можете управлять размером и плотностью смоделированного дисплея.
  • Включите следы OpenGL - позволяет отслеживать выполнение OpenGL, используя LogCat, Systrace или CallStack на Glgeterror.

Новые платформенные технологии

Android 4.2 включает в себя множество новых и улучшенных платформных технологий для поддержки инновационных коммуникационных CASES для широкого спектра аппаратных устройств. В большинстве случаев новые технологии и усовершенствования новой платформы напрямую не влияют на ваши приложения, поэтому вы можете извлечь выгоду из них без каких -либо изменений.

Улучшения безопасности

Каждый релиз Android включает в себя десятки улучшений безопасности для защиты пользователей. Вот некоторые из улучшений в Android 4.2:

  • Проверка приложений - пользователи могут выбрать включение «проверки приложений» и иметь приложения, экранируемые с помощью проверки приложения, перед установкой. Проверка приложения может предупредить пользователя, если они попытаются установить приложение, которое может быть вредным; если приложение особенно плохое,, если приложение особенно плохое,, он может блокировать установку.
  • Больше контроля над SMS Premium - Android предоставит уведомление, если приложение попытается отправить SMS в короткий код, который использует услуги премиум -класса, которые могут вызвать дополнительные сборы. Пользователь может выбрать, разрешить ли приложение отправлять сообщение или заблокировать его.
  • Всегда VPN -VPN можно настроить, чтобы приложения не имели доступа к сети до тех пор, пока не будет установлено соединение VPN. Это предотвращает отправку данных в других сетях.
  • Закрепление сертификата - реализация Libcore SSL теперь поддерживает закрепление сертификата. Закрепленные домены получат сбой проверки сертификата, если сертификат не направляется к набору ожидаемых сертификатов. Это защищает от возможного компромисса властей сертификата.
  • Улучшенное отображение разрешений на Android - разрешения были организованы в группы, которые легче понять пользователям. Во время просмотра разрешений пользователь может нажать на разрешение, чтобы увидеть более подробную информацию о разрешении.
  • Утверждение InstallD - Daemon InstallD не работает как пользователь Root, уменьшая потенциальную поверхность атаки для эскалации привилегий корней.
  • Скрипт сценария init - Сценарии init теперь применяют семантику O_NOFOLLE, чтобы предотвратить атаки, связанные с символиной.
  • Fortify_source - Android теперь реализует fortify_source. Это используется системными библиотеками и приложениями для предотвращения повреждения памяти.
  • Конфигурация по умолчанию ContentProvider - приложения, которые целевой API Уровень 17 будет иметь «экспорт» по умолчанию для каждого ContentProvider, уменьшая поверхность атаки по умолчанию для приложений.
  • Криптография - изменила реализации по умолчанию Securerandom и Cipher.RSA для использования OpenSSL. Добавлена ​​поддержка SSLSocket для TLSV1.1 и TLSV1.2 с использованием OpenSSL 1.0.1
  • Исправления безопасности - модернизированные библиотеки с открытым исходным кодом с исправлениями безопасности включают Webkit, Libpng, OpenSSL и LibxML. Android 4.2 также включает в себя исправления для уязвимостей, специфичных для Android. Информация об этих уязвимостях была предоставлена ​​для открытия членов альянса, и исправления, доступные в проекте Android с открытым исходным кодом. Чтобы улучшить безопасность, некоторые устройства с более ранними версиями Android могут также включать эти исправления.

Новый стек Bluetooth

Android 4.2 представляет новый стек Bluetooth, оптимизированный для использования с устройствами Android. Новый стек Bluetooth, разработанный в сотрудничестве между Google и Broadcom, заменяет стек на основе Bluez и обеспечивает улучшенную совместимость и надежность.

Аудио с низкой задержкой

Android 4.2 улучшает поддержку воспроизведения аудио с низкой задержкой, начиная с улучшений, сделанных в выпуске Android 4.1 для задержки аудио, используя API Opensl ES, Soundpool и Tone Generator. Эти улучшения зависят от аппаратной поддержки-устройства, которые предлагают эти функции аудио с низкой задержкой, могут рекламировать их поддержку приложениям через постоянную аппаратную функцию. Новые API Audiomanager предоставляются, чтобы запросить нативную скорость дискретизации звука и размер буфера для использования на устройствах, которые утверждают эту функцию.

Новый аппаратный интерфейс камеры

Android 4.2 представляет новую реализацию стека камер. Подсистема камеры включает в себя реализации для компонентов в трубопроводе камеры, таких как захват режима взрыва с помощью управления обработкой.

Новый аппаратный интерфейс NFC и интерфейс контроллера

Android 4.2 вводит поддержку контроллеров на основе стандарта NCI из NFC-Forum. NCI предоставляет стандартный протокол связи между контроллером NFC (NFCC) и хостом устройства, а новый стек NFC, разработанный в сотрудничестве между Google и Broadcom, поддерживает его.

Оптимизация времени выполнения Далвика

Среда выполнения Dalvik включает в себя улучшения производительности и безопасности в более широком диапазоне архитектур:

  • x86 JIT поддержка от Intel и MIPS JIT поддержка от MIPS
  • Оптимизированные параметры сбора мусора для устройств с> 512 МБ
  • Реализации по умолчанию Securerandom и Cipher.RSA теперь используют OpenSSL
  • Поддержка SSLSocket для TLSV1.1 и TLSV1.2 через OpenSSL 1.0.1
  • Новая внутренняя поддержка методов строгих матов ABS, MIN, MAX и SQRT
  • Bouncycycastle обновлен до 1,47
  • Zlib обновлен до 1,27
  • Dlmalloc обновлен до 2.8.6

Андроид 4.1

Добро пожаловать в Android 4.1, первая версия Jelly Bean!

Android 4.1 - самая быстрая и самая плавная версия Android. Мы сделали улучшения по всей платформе и добавили отличные новые функции для пользователей и разработчиков. Этот документ дает представление о том, что нового для разработчиков.

См. Документ APIS APIS Android 4.1 для подробного взгляда на новые API разработчика.

Узнайте больше о функциях Jelly Bean для пользователей по адресу www.android.com .

Быстрее, гладнее, более отзывчиво

Android 4.1 оптимизирован для обеспечения лучшей производительности Android и самой низкой задержки прикосновения в легком интуитивном пользовательском интерфейсе.

Чтобы обеспечить постоянную частоту кадров, Android 4.1 расширяет время VSYNC на все рисунки и анимацию, выполняемые Android Framework. Все работает в блокировке против 16 -миллиметрового сердцебиения VSYNC - рендеринг приложения, соприкосновения, состав экрана и отображение обновления - так что рамки не выходят вперед или позади.

Android 4.1 также добавляет тройную буферизацию в графическом трубопроводе, для более последовательного рендеринга, что заставляет все чувствовать себя более гладким, от прокрутки до подкидки и анимации.

Android 4.1 уменьшает задержку прикосновения не только за счет синхронизации прикосновения к времени VSYNC, но и, фактически предвидя , где ваш палец будет во время обновления экрана. Это приводит к более реактивному и равномерному сенсорному отклику. Кроме того, после периодов неактивности Android применяет входной импульс процессора на следующем сенсорном событии, чтобы убедиться, что задержки нет.

Инструмент может помочь вам получить лучшую производительность из ваших приложений. Android 4.1 предназначен для работы с новым инструментом под названием Systrace , который собирает данные непосредственно из ядра Linux для создания общей картины системных действий. Данные представлены как группа графиков временных рядов с вертикально укладываемыми, чтобы помочь изолировать прерывания рендеринга и другие проблемы. Инструмент теперь доступен в Android SDK (инструменты R20 или выше)

Улучшенная доступность

Новые API для служб доступности позволяют вам обрабатывать жесты и управлять фокусом доступности, когда пользователь проходит через элементы на экране и кнопки навигации, используя жесты доступности, аксессуары и другие вводы. Система Talkback и исследование переоборудованы для использования фокуса доступности для облегчения использования и предоставления полного набора API для разработчиков.

Службы доступности могут связать свои собственные уроки с настройками доступности, чтобы помочь пользователям настроить и использовать свои услуги.

Приложения, которые используют стандартные компоненты представления, автоматически наследуют новые функции доступности, без каких -либо изменений в коде. Приложения, которые используют пользовательские представления, могут использовать новые API -интерфейсы узлов доступности, чтобы указать части представления, которые представляют интерес для служб доступности.

Поддержка международных пользователей

Двунаправленный текст и другие языковые поддержки

Android 4.1 помогает вам охватить больше пользователей благодаря поддержке двунаправленного текста в элементах TextView и EditText. Приложения могут отображать текст или обрабатывать текст в сценариях с правой или правой или справа. Приложения могут использовать новые арабские и еврейские локалы и связанные шрифты.

Другие виды новой языковой поддержки включают:

  • Дополнительные языки индийского значения: каннада, телугу и малаялам
  • Новые символы эмодзи из Unicode версии 6.0
  • Лучшая поддержка Glyph для японских пользователей (отменяет японские версии глифов, когда язык системы установлен на японский)
  • Арабские глифы оптимизированы для веб -просмотров в дополнение к арабским глифам для TextViews
  • Поддержка вертикального текста в веб -просмотрах, включая Ruby Text и дополнительные вертикальные текстовые глифы
  • Синтетический жирный жирный цвет теперь доступен для всех шрифтов, у которых нет выделенных жирных глифов

Пользовательский устаревший Keymaps

Платформа теперь поддерживает постоянные пользовательские карты клавиатуры , например, для дополнительных международных клавиатур и специальных типов макетов. По умолчанию Android 4.1 включает в себя 27 международных Keymaps для клавиатур, включая DVORAK. Когда пользователи подключают клавиатуру, они могут перейти к приложению «Настройки» и выбрать один или несколько Keymaps, которые они хотят использовать для этой клавиатуры. При печати пользователи могут переключаться между Keymaps, используя ярлык (CTRL-пространство).

Вы можете создать приложение для публикации дополнительных Keymaps в систему. APK будет включать в себя ресурсы макета клавиатуры, основанные на стандартном формате Android Keymap. Приложение может предложить пользователю дополнительные макеты клавиатуры, объявив подходящий приемник для Action_query_keyboard_layouts в своем манифесте.

Новые способы создания красивого пользовательского интерфейса

Разработчики могут создавать пользовательские стили уведомлений, подобные тем, которые показаны в примерах выше, чтобы отображать богатый контент и действия.

Расширяемые уведомления

Уведомления уже давно были уникальной и популярной функцией на Android. Разработчики могут использовать их для размещения важной или временной информации перед пользователями в панели уведомлений, вне обычного пользовательского интерфейса приложения.

Android 4.1 приносит большое обновление в рамках Android уведомлений. Приложения теперь могут отображать более крупные, более богатые уведомления для пользователей, которые могут быть расширены и рухнуты с помощью щепотки или промахивания. Уведомления поддерживают новые типы контента , включая фотографии, имеют настраиваемый приоритет и могут даже включать несколько действий.

Благодаря улучшенному строителю уведомлений приложения могут создавать уведомления, которые используют большую площадь, высоту до 256 DP. Доступны три шаблонных стиля :

  • BigTextStyle - уведомление, которое включает в себя многослойный объект TextView.
  • Biginboxstyle - уведомление, которое показывает любой вид списка, такого как сообщения, заголовки и так далее.
  • BigPicturestyle - уведомление, которое демонстрирует визуальный контент, такой как растровый карту.

В дополнение к шаблонным стилям вы можете создать свои собственные стили уведомлений, используя любой удаленный вид .

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

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

Виджеты приложений могут автоматически изменять размер в соответствии с домашним экраном и загружать различный контент по мере изменения их размеров.

Изменяемые размеры виджетов приложений

Android 4.1 представляет улучшенные виджеты приложений, которые могут автоматически изменять размер , в зависимости от того, где пользователь бросает их на главном экране, размер, на который пользователь их расширяет, и количество места, доступного на главном экране. Новые API -интерфейсы виджетов приложения позволяют использовать это, чтобы оптимизировать контент виджетов вашего приложения как размер виджетов.

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

Вы также можете предоставить отдельные ландшафтные и портретные макеты для ваших виджетов, которые система раздувается в зависимости от того, когда изменяется ориентация экрана.

Теперь виджеты приложений могут отображаться в сторонних запусках и других приложениях хоста с помощью нового намерения привязки (appwidgetmanager.action_appwidget_bind).

Упрощенная навигация на задачу

Android 4.1 позволяет вам легко управлять навигацией «UP», которая доступна пользователям из ваших приложений, и помогает обеспечить постоянный опыт для пользователей.

Вы можете определить предполагаемую навигацию для отдельных компонентов активности вашего пользовательского интерфейса, добавив новый атрибут XML в манифестный файл приложения. Во время выполнения, по мере начала деятельности, система извлекает дерево навигации UP из манифестного файла и автоматически создает навигацию по достоинству в панели действий. Разработчикам, которые объявляют навигацию в манифесте, больше не нужно управлять навигацией путем обратного вызора во время выполнения, хотя они также могут сделать это, если это необходимо.

Также доступен новый класс TaskStackBuilder , который позволяет быстро собрать синтетический стек задач, чтобы начать немедленно или использовать, когда деятельность запускается из пассивного. Создание синтетического стека задач особенно полезно, когда пользователи запускают деятельность из удаленных представлений, например, из виджетов и уведомлений на главном экране, потому что он позволяет разработчику предоставлять управляемый, последовательный опыт на навигации на заднем плане.

Легкая анимация для запуска активности

Вы можете использовать новый Helper Class, ActivityOptions , для создания и управления анимацией, отображаемой при запуске вашей деятельности. Через Helper Class вы можете указать пользовательские анимационные ресурсы, которые будут использоваться при запуске деятельности, или запросить новые анимации Zoom, которые начинаются с любого прямоугольника, который вы указываете на экране, и это при желании включает в себя растровое карту миниатюры.

Переходы на освещение и полноэкранные режимы

Новая система пользовательского интерфейса в поле зрения позволит вам чисто переходить от обычного пользовательского интерфейса (с панелью действий, навигационной панели и системной панели), на «режим освещения» (с панелью состояния и панелью с скрытыми и навигационными панелями) или или или навигационной панели) или или «Режим полноэкранного режима» (с панелью состояния, панелью действий и навигационной панелью все скрыты).

Новые типы отдаленных видов

Разработчики теперь могут использовать виды Gridlayout и ViewStub в виджетах и ​​уведомлениях домашнего экрана. Gridlayout позволяет структурировать содержание ваших отдаленных взглядов и управлять выравниванием мнений с более мелкой иерархией пользовательского интерфейса. ViewStub-это невидимый, нулевой вид, который можно использовать для лениво надувного ресурсов макета во время выполнения.

Просмотр живых обоев

Android 4.1 облегчает пользователям и устанавливать живые обои из приложений, которые их включают. Если ваше приложение включает в себя живые обои, теперь вы можете запустить деятельность (action_change_live_wallpaper), которое показывает пользователю предварительный просмотр живых обоев из вашего собственного приложения. Из предварительного просмотра пользователи могут напрямую загружать живые обои.

Контактные фотографии с более высоким разрешением

С Android 4.1 вы можете хранить контактные фотографии , которые составляют 720 x 720 , что делает контакты еще более богатыми и личными. Приложения могут хранить и получать контактные фотографии в этом размере или использовать любой другой необходимый размер. Максимальный размер фотографии, поддерживаемый на определенных устройствах, может варьироваться, поэтому приложения должны запросить встроенного поставщика контактов во время выполнения, чтобы получить максимальный размер для текущего устройства.

Новые типы ввода и возможности

Узнайте о добавлении и удалении устройств

Приложения могут зарегистрироваться, чтобы быть уведомленными, когда какие -либо новые входные устройства прикреплены, USB, Bluetooth или любым другим типом подключения. Они могут использовать эту информацию для изменения состояния или возможностей по мере необходимости. Например, игра может получить уведомление о том, что прикреплена новая клавиатура или джойстик, что указывает на наличие нового игрока.

Запрос возможностей входных устройств

Android 4.1 включает API, которые позволяют приложениям и играм в полной мере пользуются всеми подключенными и доступными устройствами ввода.

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

Управление вибратором на входных устройствах

Среди других возможностей приложения теперь могут использовать любую службу вибратора , связанную с прикрепленным устройством ввода, например, для контроллеров Rumble Pak .

Анимация и графика

VSYNC для приложений

Расширение VSYNC на Android Framework приводит к более последовательной частоте кадров и плавного, устойчивого пользовательского интерфейса. Таким образом, приложения также выигрывают, Android 4.1 расширяет время VSYNC на все рисунки и анимации, инициированные приложениями. Это позволяет им оптимизировать операции в потоке пользовательского интерфейса и обеспечивает стабильную временную базу для синхронизации.

Приложения могут бесплатно воспользоваться временем VSYNC через фреймворк Android. Структура анимации теперь использует время VSYNC для автоматической обработки синхронизации между аниматорами.

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

Новые анимационные действия и типы переходов

Структура анимации теперь позволяет определить начальные и конечные действия при запуске анимации ViewPropertyAnimator, чтобы помочь синхронизировать их с другими анимациями или действиями в приложении. Действие может запустить любой запускаемый объект. Например, запустить может указать еще одну анимацию, чтобы начать, когда предыдущая заканчивается.

Теперь вы также можете указать, что ViewPropertyAnimator использует слой в течение его анимации. Раньше это была наилучшая практика, чтобы оживить сложные взгляды, настраивая слой перед запуском анимации, а затем обработал событие OnanimationEnd () для удаления слоя, когда анимация заканчивается. Теперь метод WithLayer () на ViewPropertyAnimator упрощает этот процесс одним вызовом метода.

Новый тип перехода в LayoutTransition позволяет вам автоматизировать анимации в ответ на все изменения макета в группе просмотра.

Новые типы подключения

Android-луч

Android Beam-это популярная технология на основе NFC, которая позволяет пользователям мгновенно делиться, просто прикасаясь к двум телефонам с поддержкой NFC вместе.

В Android 4.1 Android Beam облегчает обмен изображениями, видео или другими полезными нагрузками , используя Bluetooth для передачи данных . Когда пользователь запускает передачу, Android Beam передает от NFC в Bluetooth, что облегчает управление передачей файла с одного устройства на другое.

Wi-Fi Network Service Discovery

Android 4.1 вводит поддержку для обнаружения услуг на основе многоадресной рассылки DNS , которое позволяет приложениям найти и подключаться к услугам, предлагаемым устройствами, работающими в сетях Wi-Fi, включая мобильные устройства, принтеры, камеры, медиаплееры и другие. Developers can take advantage of Wi-Fi network service discovery to build cross-platform or multiplayer games and application experiences.

Using the service discovery API, apps can create and register any kind of service, for any other NSD-enabled device to discover. The service is advertised by multicast across the network using a human-readable string identifier, which lets user more easily identify the type of service.

Consumer devices can use the API to scan and discover services available from devices connected to the local Wi-Fi network. After discovery, apps can use the API to resolve the service to an IP address and port through which it can establish a socket connection.

You can take advantage of this API to build new features into your apps. For example, you could let users connect to a webcam, a printer, or an app on another mobile device that supports Wi-Fi peer-to-peer connections.

Обнаружение P2P-сервиса Wi-Fi

Ice Cream Sandwich introduced support for Wi-Fi Peer-to-Peer (P2P), a technology that lets apps discover and pair directly , over a high-bandwidth peer-to-peer connection (in compliance with the Wi-Fi Alliance's Wi-Fi Direct™ certification program). Wi-Fi P2P is an ideal way to share media, photos, files and other types of data and sessions, even where there is no cell network or Wi-Fi available.

Android 4.1 takes Wi-Fi P2P further, adding API support for pre-associated service discovery . Pre-associated service discovery lets your apps get more useful information from nearby devices about the services they support, before they attempt to connect. Apps can initiate discovery for a specific service and filter the list of discovered devices to those that actually support the target service or application.

For example, this means that your app could discover only devices that are “printers” or that have a specific game available, instead of discovering all nearby Wi-Fi P2P devices. On the other hand, your app can advertise the service it provides to other devices, which can discover it and then negotiate a connection. This greatly simplifies discovery and pairing for users and lets apps take advantage of Wi-Fi P2P more effectively.

With Wi-Fi P2P service discovery, you can create apps and multiplayer games that can share photos, videos, gameplay, scores, or almost anything else — all without requiring any Internet or mobile network. Your users can connect using only a direct p2p connection, which avoids using mobile bandwidth.

Network Bandwidth Management

Android 4.1 helps apps manage data usage appropriately when the device is connected to a metered network , including tethering to a mobile hotspot. Apps can query whether the current network is metered before beginning a large download that might otherwise be relatively expensive to the user. Through the API, you can now get a clear picture of which networks are sensitive to data usage and manage your network activity accordingly.

New Media Capabilities

Media codec access

Android 4.1 provides low-level access to platform hardware and software codecs. Apps can query the system to discover what low-level media codecs are available on the device and then and use them in the ways they need. For example, you can now create multiple instances of a media codec, queue input buffers, and receive output buffers in return. In addition, the media codec framework supports protected content. Apps can query for an available codec that is able to play protected content with a DRM solution available on the device.

USB Audio

USB audio output support allows hardware vendors to build hardware such as audio docks that interface with Android devices. This functionality is also exposed with the Android Open Accessory Development Kit (ADK) to give all developers the chance to create their own hardware.

Audio record triggering

Android now lets you trigger audio recording based on the completion of an audio playback track. This is useful for situations such as playing back a tone to cue your users to begin speaking to record their voices. This feature helps you sync up recording so you don't record audio that is currently being played back and prevents recordings from beginning too late.

Multichannel audio

Android 4.1 supports multichannel audio on devices that have hardware multichannel audio out through the HDMI port . Multichannel audio lets you deliver rich media experiences to users for applications such as games, music apps, and video players. For devices that do not have the supported hardware, Android automatically downmixes the audio to the number of channels that are supported by the device (usually stereo).

Android 4.1 also adds built-in support for encoding/decoding AAC 5.1 audio.

Audio preprocessing

Developers can apply preprocessing effects to audio being recorded, such as to apply noise suppression for improving speech recording quality, echo cancellation for acoustic echo, and auto gain control for audio with inconsistent volume levels. Apps that require high quality and clean audio recording will benefit from these preprocessors.

Audio chaining

MediaPlayer supports chaining audio streams together to play audio files without pauses. This is useful for apps that require seamless transitions between audio files such as music players to play albums with continuous tracks or games.

Media Router

The new APIs MediaRouter, MediaRouteActionProvider, and MediaRouteButton provide standard mechanisms and UI for choosing where to play media . Support is built-in for wired headsets and a2dp bluetooth headsets and speakers, and you can add your own routing options within your own app.

Вычисление рендерскрипта

Android 4.1 extends Renderscript computation to give you more flexibility. You can now sample textures in your Renderscript compute scripts, and new pragmas are available to define the floating point precision required by your scripts. This lets you enable NEON instructions such as fast vector math operations on the CPU path, that wouldn't otherwise be possible with the full IEEE 754-2008 standard.

You can now debug your Renderscript compute scripts on x86-based emulator and hardware devices . You can also define multiple root-style kernels in a single Renderscript source file.

Android Browser and WebView

In Android 4.1, the Android Browser and WebViews include these enhancements:

  • Better HTML5 video user experience, including touch-to-play/pause and smooth transition from inline to full screen mode.
  • Improved rendering speed and reduced memory usage for better scrolling and zooming performance.
  • Improved HTML5/CSS3/Canvas animation performance.
  • Improved text input.
  • Updated JavaScript Engine (V8) for better JavaScript performance.
  • Support for the updated HTML5 Media Capture specification (the "capture" attribute on input type=file elements).

Google APIs and services

To extend the capabilities of Android even further, several new services for Android are available.

Google Cloud Messaging for Android

Google Cloud Messaging (GCM) is a service that lets developers send short message data to their users on Android devices, without needing a proprietary sync solution.

GCM handles all the details of queuing messages and delivering them efficiently to the targeted Android devices. It supports message multicasting and can reach up to 1000 connected devices simultaneously with a single request. It also supports message payloads , which means that in addition to sending tickle messages to an app on the device, developers can send up to 4K of data.

Google Cloud Messaging is completely free for all developers and sign-up is easy. See the Google Cloud Messaging page for registration, downloads, and documentation.

App Encryption

Starting with Android 4.1, Google Play will help protect application assets by encrypting all paid apps with a device-specific key before they are delivered and stored on a device.

Smart App Updates

Smart app updates is a new feature of Google Play that introduces a better way of delivering app updates to devices. When developers publish an update, Google Play now delivers only the bits that have changed to devices, rather than the entire APK. This makes the updates much lighter-weight in most cases, so they are faster to download, save the device's battery, and conserve bandwidth usage on users' mobile data plan. On average, a smart app update is about 1/3 the size of a full APK update.

Сервисы Google Play

Google Play services helps developers to integrate Google services , such as authentication, into their apps delivered through Google Play.

Google Play services is automatically provisioned to end user devices by Google Play, so all you need is a thin client library in your apps.

Because your app only contains the small client library, you can take advantage of these services without a big increase in download size and storage footprint. Also, Google Play will deliver regular updates to the services, without developers needing to publish app updates to take advantage of them.

For more information about the APIs included in Google Play Services, see the Google Play services developer page.