Dex2oat что это за процесс cloud-script.ru

Dex2oat что это за процесс

​Будет ли мое Android-приложение работать с ART вместо Dalvik?

ART – это виртуальная машина, работающая по принципу ahead of time («впереди времени»). Это означает, что dex2oat используется единожды в процессе первичной установки приложения. Dalvik работал по принципу just in time («во время»), производя компиляцию уже в момент запуска приложения.

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

Что же меняется для кодинга? Хорошая новость: ART обладает обратной совместимостью и использует формат байт-кода Dex (применяемый в Dalvik). Это означает, что большинство приложений будет работать, и при этом гораздо лучше.

Тем не менее, есть несколько вещей, которые необходимо проверить и, возможно, оптимизировать:

1) Проверьте значение, возвращаемое функцией System.getProperty(«java.vm.version»). ART — «2.0.0» или выше.

2) Если вы используете JNI для запуска кода C/C++, убедитесь в использовании CheckJNI (установите debuggable=»true» в манифесте). См. статью “Debugging Android JNI withCheckJNI” (примечание – эта опция предназначена для отладки во время разработки. Её не следует использовать в релизном варианте кода).

3) Обновите все используемые инструменты до последней версии. ARTосуществляет более жесткую верификацию байт-кода, нежели Dalvik. Код, созданный с помощью инструментов Android, должен работать, однако некоторые пост-процессинговые инструменты могут создавать файлы с ошибками (что приемлемо Dalvik и непригодно для ART).

4) Подумайте, возможно ли отменить некоторые проверки исключений (которые могут больше не понадобиться, поскольку ART анализирует весь код сразу; но при этом не забывайте, что Dalvik еще будет использоваться какое-то время).

5) Удалите большую часть вызовов System.gc(), в особенности те, что используются для минимизации количества вызовов типа GC_FOR_ALLOC или фрагментации.

6) Не сохраняйте ссылки на данные объектов и не запускайте измененные ссылки в Release. ArrayElements(). Программа-сборщик мусора (уже есть в AOSP) может перемещать объекты в памяти, и запуск Get и Release в ArrayElements() может повлечь повреждение информации в памяти. Если вы производите какие-либо изменения в возвращаемых элементах массива, вам необходимо вызвать одну из следующих функций:

  • изменения отсутствуют > используйте режим JNI_ABORT (освободите память, без copyback)
  • произведены изменения, но нет необходимости на них ссылаться > используйте код 0 (обновляет массив элементов и освобождает копию)
  • произведены изменения, и необходимо зафиксировать их > используйте JNI_COMMIT (который обновляет базовый массив объектов и сохраняет копию)

7) Поля Object теперь являются приватными. В процессе итерации классовой иерархии как части фреймворка сериализации, остановитесь, когда Class.getSuperclass()==java.lang.Object.class (не продолжайте, пока возвращаемое значение не будет равно 0)

8) Используйте дополнительную обработку ошибок и протоколирование в ART:

  • Улучшенное перемещение и протоколирование NoSuchMethodError: из GetMethodID(), GetStaticMethodID(), и RegisterNatives call (что вызвано, вероятно, исключением метода инструментом вроде ProGuard)
  • NoSuchFieldError (вместо 0) из GetFieldID() и GetStaticFieldID()
  • Предупреждение, когда субклассы пытаются переопределить package-private методы. Для переопределения метода класса пропишите метод как публичный или защищенный.
  • Прочие проблемы, о которых сигнализирует верификатор ART, включают:
    • А) неверное управление процессом
    • Б) несбалансированный monitоrenter/monitorexit
    • В) список типов параметров с нулевой длиной

9) Обращайте внимание на более строгое применение JNI: методы CallNonvirtual—Method() требуют, чтобы метод декларировал класс, а не субкласс.

10) Следите за размером объединенного стека ART, который должен быть примерно равен двум стекам Dalvik (по умолчанию 32 Кб для стека Java и 1 Мб для нативного стека). Проверку размера стека необходимо осуществлять и в участках, где его размер задаётся явно – включая вызовы ThreadConstructorс увеличением размера стека (при появлении ошибки StackOverflowError).

11) Следите за размером pthread (pthreat_attr_setstack() и pthreat_attr_setstacksize()), поскольку вызовы, включающие AttachCurrentThread(), могут повлечь за собой ошибку.

12) Удалите любые зависимости на установленных файлах формата .odex в system/framework, /data/dalvik-cache или в оптимизированной output-директории DexClassLoader. В то время как ARTследует таким же правилам наименования и блокировки в ELF, приложения не должны зависеть от формата файла.

13) Используйте последнюю версию Mockito для того, чтобы ProxyInvocationHandler.invoke() возвращал 0 (вместо пустого массива) в случае, если аргументы отсутствуют.

14) Проверяйте все посылаемые вами уведомления. В AndroidL доступна новая цветовая схема.

Свежие записи

Популярное

Отключаем службы Android для сохранения заряда батареи

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

Disclaimer: Все что вы делаете, вы делаете осознанно и на свой страх и риск. Автор не несет ответственности за работоспособность вашего аппарата!

Для выполнения всех действий требуется root

  1. Нам понадобятся:
  2. Аппарат
  3. Программа Disable Service (продвинутые юзеры могут сразу устанавливать My Android Tools. Это более расширенная программа того же автора, но для начинающих в ней много лишнего. Продвинутые и богатые могут поддержать автора, купив Pro версию).
  4. Программа Wakelock Detector
  5. Прямые руки

Делаем бекап, на случай, если что-то пойдет не так, что бы потом не было мучительно больно!
Устанавливаем программу Wakelock Detector, следуем инструкции, смотрим, как резвятся программы и сервисы, не дают спать аппарату и жрут при этом батарею. Наполняемся праведным гневом, устанавливаем Disable Service и приступаем к делу.

В последних обновлениях Google Play, Корпорация Добра (тм) решила, что все пользователи андроида озаботились своим здоровьем, накупили браслетов и занимаются фитнесом в поте лица, меряя калории и пульсы на своих аппаратах.

Так же у всех резко появились наручные дисплеи для показа погоды и СМС. Заботясь об этом, Корпорация Добра (тм) напихала специальных сервисов для связи с этой носимой дребеденью, и повелела каждые 15 минут проверять, нету ли вблизи фитнесового браслета, не начать ли считать калории и пульсы, не показать ли пришедшую СМС’ку.

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

Запускаем Disable Service.

Первую вкладку «Third party» мы пока не трогаем. Белые цифры — количество сервисов. Синие — количество запущенных сервисов, красные — количество деактивированнх сервисов. Сейчас их у нас будет.
Переходим на вкладку «System», находим «Сервисы Google Play» — заходим туда. В левом верхнем углу нажимаем «full/short» — получаем полные названия сервисов и, пользуясь поиском (значек лупы) вводим заветные слова, сначала «fitness», потом «wearable» со всего что содержит эти слова снимаем галочки.

Затем ищем сервисы:

Затем ограничиваем обращение сервисов к поиску местоположения:

Первая часть работы сделана.

Дальнейшие копания в этой части лучше не делать просто так. Можете наоборот увеличить расход батареи из-за введения в цикл сервисов, у которых деактивирована часть, необходимая для корректного завершения их работы. В самом худшем случае — получите бутлуп. Хотя это и не страшно, у нас же есть бекап, правда ведь? Но лучше не доводить до беды и не лезть туда, куда не нужно. Помните! Не всегда название сервиса обозначает то, что вы думаете! Например, сервис GTalkService, к программе GTalk отношения никакого не имеет!

Читать еще:  Net megogo vendor что это за программа?

Теперь переходим на вкладку программ «Third Party»

Здесь — полная свобода действий, но опять же — с умом.

Лично я, прибил у Viber службу InAppBillingService, которому сильно не спалось, т.к. платными звонками в этой программе не пользуюсь.
У программы 360 SmartKey отменил сервисы: CompatService и DownloadingService, они мне не нужны, кнопка работает и без них.

Для программ, которые должны периодически просыпаться (почта, погода, сообщения), лучше ничего не трогать.

Для более осмысленных действий хорошо бы прочитать ветки программ Disable Service и My Android Tools, но это для самых продвинутых юзеров. И так уже пришлось прочитать многабукафф :).

В конце — перезагружаем аппарат и при помощи Wakelock Detector наблюдаем его тихий храп. Если какая-то из программ еще мешает этому процессу — вы знаете что делать.
Так же рекомендую установить программу Greenify, для усмирения особо буйных (типа — Facebook, Facebook Messenger и т.д.).

В результате, получим реально долгоживущий аппарат без особых ограничений. Сколько и как — зависит от установленных у вас программ. У меня выигрыш составил около 30%. Поведение новых программ желательно проверять на первое время при помощи Wakelock Detector и, на основании этих данных, принимать решение о их дальнейшей судьбе.

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

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

Отключить время выполнения ART (vmSafeMode) и dex2oat для Android-платформы, предназначенной для SDK 22+?

0 VicVu [2016-06-02 00:21:00]

Таким образом, чтобы правильно отключить время выполнения ART, вы добавляете android: vmSafeMode = «true» в тег манифеста приложения.

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

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

Я попытался использовать manifestPlaceholders = [vmSafeModeEnabled: «true»] в моем build.gradle, однако это не имеет никакого эффекта.

У кого-нибудь есть идеи?

Не имело никакой разницы в результатах. Я все еще вижу dex2oat, занимая значительное количество времени при каждом запуске приложения.

Конечно, все эти опции отлично работают на приложениях, но вовсе не на разработку библиотеки /SDK.

android gradle art-runtime

3 Решение Budius [2016-06-06 22:19:00]

как я упоминаю в комментарии, я считаю, что вы смешиваете некоторые концепции, поэтому я потрачу время, чтобы объяснить их отдельно.

Instant Run

Это особенность IDE (это Android Studio), и она совместима (в разных количествах) с обращением к устройствам, использующим API 15. Это влияет только на код, используемый во время отладки/разработки приложения.

Он работает, заставляя отладочную версию приложения быть multidex и динамической загрузкой изменения кода через USB из нового файла dex. Окончательный скомпилированный код (независимо от библиотеки или приложения) никогда не изменяется этой функцией.

Instant Run поддерживается только при развертывании варианта сборки отладки, используйте Android Plugin для Gradle версии 2.0.0 или выше и установите minSdkVersion на 15

ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО

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

ART и Dalvik — совместимые исполняемые файлы, работающие с Dex bytecode, поэтому приложения, разработанные для Dalvik, должны работать при работе с ART

Таким образом, есть некоторые отличия в крайних случаях, но если вы проверите эту ссылку (https://developer.android.com/guide/practices/verifying-apps-art.html), вы увидите, что в основном имеют дело с собственным кодом и не будет отличаться только для java-библиотек.

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

vmSafeMode

В отношении ART это отключает компилятор AOT. С точки зрения обычного пользователя, это время во время установки из Play Store, которое показывает «установку». Это тот момент, когда ART делает несколько предварительных обработок в приложении, чтобы быть готовыми к выполнению процессором. Это время также происходит во время отладки USB, но если оно отключено, оно должно выполняться «на лету».

preDexLibraries

Это говорит о том, что система сборки (gradle) предназначена для предварительной обработки библиотек. Это полезно в случаях, когда он собирается построить apk, библиотека уже обработана. Но если вы создаете библиотеку, каждый раз, когда вы меняете свой код, ее все равно придется перерабатывать.

К вашей проблеме

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

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

  • библиотека никогда не компилируется с временем выполнения как зависимость. Это может зависеть от уровня API (какие методы он может назвать) или определенной функции устройства (требуется GPS или ускоритель). Время выполнения (ART и Dalvik) совместимо и будет выполнять тот же код с тем же результатом (более эффективное/быстрое АРТ).
  • также, как объясняется, мгновенный запуск является особенностью Android Studio во время разработки/отладки. После того, как библиотека была упакована в файл aar и другие разработчики, это не имеет значения, если был использован мгновенный запуск или нет.

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

Также я могу видеть, как отсроченная компиляция в ART может изменить время отладки dev-debug, но только для многих.

завершить

Я надеюсь, что все понятно, и решение проблемы:

  • если Instant Run занимает слишком много времени, просто отключите его на AndroidStudio. Это не повлияет на других разработчиков.
  • Я не верю, что это будет иметь большое значение, но если вы настаиваете, вы можете добавить vmSafeMode в свое «образцовое приложение» при разработке библиотеки, и библиотека по-прежнему будет работать с другими приложениями, разработанными другими разработчиками без проблем.
  • Предполагается, что preDexLibraries окажет небольшое влияние при разработке библиотеки
Читать еще:  Asus ap bank что это за программа?

Разница между dexopt и dex2oat?

Google перемещается с Dalvik на ART (время выполнения Android).

Я пытался понять, как он собирается улучшить свои показатели.

Лучшее объяснение, которое я нашел, — это изображение ниже:

Один из основных компонентов, который изменился, — это dexopt на dex2oat .

Поскольку у меня нет большого представления о них, может ли кто-нибудь объяснить разницу и как это улучшит производительность?

dexopt выполняет некоторые оптимизации в файле dex. Он выполняет такие действия, как замена инструкции виртуального вызова оптимизированной версией, включающей индекс vtable вызываемого метода, так что ему не нужно выполнять поиск метода во время выполнения.

Результатом работы dexopt является файл odex (оптимизированный dex). Это очень похоже на исходный файл dex, за исключением того, что он использует некоторые оптимизированные опкоды, такие как оптимизированная виртуальная инструкция invoke.

dex2oat берет файл dex и компилирует его. Результатом является, по существу, файл elf, который затем выполняется изначально. Таким образом, вместо байт-кода, который интерпретируется виртуальной машиной, теперь у нее есть собственный код, который может быть выполнен процессором изначально. Это называется компиляцией AOT (ahead-of-time).

Оба инструмента обычно запускаются во время установки на устройстве .

Еще один фактор, который следует учитывать, — это то, что dalvik использовал компилятор JIT (just-in-time), что означает, что он также мог компилировать байт-код в машинный код. Однако главное отличие состоит в том, что ART компилирует все заранее, тогда как dalvik компилирует только подмножество байт-кода, используя эвристику для обнаружения кода, который выполнялся наиболее часто, и он компилируется во время выполнения.

Android Runtime (ART) — это среда выполнения приложений, используемая мобильной операционной системой Android. ART заменяет Dalvik, который является процессной виртуальной машиной, первоначально используемой Android, и выполняет преобразование байт-кода приложения в собственные инструкции, которые позже выполняются средой выполнения устройства.

В отличие от Dalvik, который начиная с Android 2.2 «Froyo» использует компиляцию just-in-time (JIT) для компиляции байт-кода при каждом запуске приложения, ART вводит использование компиляции ahead-of-time (AOT), выполняя ее при установке приложения. За счет уменьшения общего объема компиляции, который должен быть выполнен в процессе работы приложения, сокращается использование процессора мобильного устройства и улучшается время автономной работы. В то же время, ART приносит улучшения в производительности, сборке мусора, отладке приложений и профилировании.

Для поддержания обратной совместимости ART использует тот же входной байт-код, что и Dalvik, поставляемый через стандартные файлы .dex как часть файлов APK, в то время как файлы .odex заменяются исполняемыми и связываемыми файлами формата (ELF). После того, как приложение компилируется с помощью утилиты ART on-device dex2oat, оно запускается исключительно из скомпилированного исполняемого файла ELF; этот подход устраняет различные накладные расходы, связанные с компиляцией JIT, но требует дополнительного времени для компиляции, когда приложение установлено, и приложения занимают немного больше места для хранения скомпилированного кода.

Похожие вопросы:

Я написал приложение Android, которое отлично работало до сих пор. Затем я добавил функции для Google Cloud Messaging (GCM). Я использовал демо-проект от Google, который, похоже, добавил аналитику и.

Несмотря на то, что есть несколько сообщений об ошибках dexopt, ни один из них не помог. Я вдруг начал получать ошибки dexopt: Failure [INSTALL_FAILED_DEXOPT]. Я попытался удалить приложение с моего.

Что делает команда Android shell dexopt ? Где я могу найти инструкцию ?

Я скачал AOSP, но я не знаю, как скомпилировать программу android shell, например dex2oat, которая может быть запущена в Ubuntu.

Таким образом, чтобы правильно отключить ART runtime, вы добавляете android_vmSafeMode=true в тег манифеста вашего приложения. Проблема, с которой я сталкиваюсь лично, заключается в том, что я.

Возможный Дубликат : C-разница между “char var[]” и “char *var”? Разница между char a[]=“string”; char *p=“string”; может быть, кто-нибудь объяснит, в.

Возможный Дубликат : Oracle <> , != , ^ = операторы в sql, в чем разница между <> и != , мы можем использовать оба варианта для NOt Equal to . есть ли между ними какая-то разница? экс.

Возможный Дубликат : Есть ли разница между “foo — это None” и “foo == None”? Довольно простой вопрос на самом деле. В чем разница между ними: if a.b is ‘something’: и if a.b.

Возможные Дубликаты : Разница между использованием двойной кавычки и кавычек в python Одинарные кавычки и двойные кавычки в Python Поэтому я сейчас изучаю python и создавал функцию. В чем разница.

Возможный Дубликат : Разница между ViewData и TempData? В чем принципиальная разница между TempData и ViewData?

17.10.2014 Анонсирован Android 5.0 «Lollipop», выпущен SDK и предварительные сборки

Компания Google анонсировала мобильную платформу Android 5.0 «Lollipop» и представила серию новых устройств Nexus на её основе. Сообщается, что Android 5.0 является одним из самых существенных выпусков за всю историю развития платформы и включает более 5000 новых компонентов API для разработчиков. Устройства Nexus получили обновления в ноябре. Примерно в это же время состоится публикация кода Android 5.0 в публичном репозитории AOSP. С сегодняшнего дня доступны для загрузки Android 5.0 SDK для разработки приложений, образы для запуска в эмуляторе (в том числе образ Android TV) и предварительные сборки прошивок с Android 5.0.

Новый выпуск примечателен реализацией ряда существенных нововведений, среди которых новый подход к организации пользовательского интерфейса (весьма спорный и на первый взгляд хуже чем Android 4.4), задействование среды выполнения ART вместо виртуальной машины Dalvik, переработанная система уведомлений, включение наработок по увеличению энергоэффективности, поддержка OpenGL ES 3.1, возможность использования на 64-разрядных процессорах, применение end2end-шифрования хранимых в облачных сервисах пользовательских данных, обновляемый WebView на основе Chromium, адаптация для использования на умных телевизорах и носимых устройствах.

К сожалению загрузка Nexus 7 теперь длится дольше чем когда-либо, пожалуй даже дольше чем была загрузка Windows ХР десять лет назад на десктопах. В целом новая ОС стала тормозной и не отзывчивой, реакция на прикосновения к экрану порой тянется несколько секунд. Изображение зависает и дергается. Некоторые проги перестали работать, например скайп (надеюсь обновится). В целом интерфейс стал более запутанным, на мой взгляд. Похоже Lollipop попал на рынок либо совершенно сырым, либо вообще в качестве анти-androida, с целью сокращения доли рынка!? А зачем в нижней части экрана поменяли привычные и понятные значки на треугольничек, кружочек и квадратик? Намек на то, что пользователи дебилы? Или в Гугле просто путают простое с примитивным? Ладно, это эмоции первой недели, возможно все будет исправлено, когда-нибудь 🙂

Однако продолжим, одновременно с новым выпуском платформы анонсировано несколько новых устройств, которые изначально будут поставляться на её основе. Самым интересным является телеприставка Nexus Player, которая может использоваться как игровая консоль и медиацентр. Кроме традиционного пульта дистанционного управления и игрового манипулятора для управления реализована система голосовых команд. Nexus Player укомплектован 4-ядерным процессором Intel Atom (1.8GHz) с графическим движком PowerVR Series 6, поддерживает Wi-Fi 802.11ac 2×2 (MIMO), Bluetooth 4.1 и снабжён портами HDMI (1920×1080@60Hz) и Micro-USB 2.0.

Читать еще:  Csrss exe процесс исполнения клиент сервер

Другими аппаратными новинками являются планшет Nexus 9 и смартфон Nexus 6. Nexus 6 оснащён 5.96-дюймвым экраном (2560×1440 QHD AMOLED), 4-ядерным CPU Krait 450 CPU 2.7GHz (Qualcomm Snapdragon 805 SOC), GPU Adreno 420, 802.11ac 2×2 (MIMO), Bluetooth 4.1, NFC, 32GB/64GB Flash, 13- и 2-мегапиксельными камерами, Micro USB 2.0, Nano SIM, аккумулятором 3220mAh. Вес устройства 184 гр. Планшет Nexus 9 поставляется с 8.9-дюймовым экраном (2048×1536, IPS LCD), 64-разрядным процессором NVIDIA Tegra K1 Dual Denver (2.3GHz), 192-ядерным GPU Kepler, 2ГБ ОЗУ, 16GB/32GB Flash, 802.11ac 2×2 (MIMO), Bluetooth 4.1, NFC, LTE/HSPA/GSM, 8- и 1.6-мегапиксельными камерами, аккумулятором 6700mAh.

Устройства Nexus 9 и Nexus Player доступны для предзаказа начиная с сегодняшнего дня, Nexus 6 можно будет заказать немного позднее. Начало поставки устройтв потребителям запланировано на начало ноября. В течение нескольких недель также ожидается распространение обновления прошивки с Android 5.0 для ранее выпускаемых моделей Nexus 4, 5, 7 и 10.

Переход на новую среду выполнения ART, которая заменит собой runtime виртуальной машины Dalvik. ART позволяет в момент установки скомпилировать приложение в машинный код и в дальнейшем выполнять программу в нативном виде, без задействования виртуальной машины. Применение упреждающей AOT-компиляции (Ahead-of-time) вместо JIT-компиляции по мере выполнения кода позволяет заметно повысить производительность программ. Для компиляции в поставку включена утилита dex2oat, формирующая исполняемые файлы на основе файлов в формате DEX (Dalvik Executable Format).

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

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

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

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

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

Интеграция наработок проекта Volta, в рамках которого подготовлен набор инструментов и API, позволяющих повысить эффективность потребления энергии во время работы приложений. При помощи утилиты Battery Historian можно наглядно контролировать наступления событий, влияющих на энергопотребелние, и детально отслеживать как работа приложения сказывается на расходе энергии. API для управления планировщиком задач даёт возможность определить при каких условиях могут выполняться фоновые задачи и запускаться другие действия, например, когда устройство находится в режиме ожидания или подключено к внешнему источнику энергии;

Поддержка работы Android-устройств в режиме BLE (Bluetooth Low Energy), используя который приложения могут сообщать о своём присутствии близлежащим устройствам. Например, можно создать приложение, превращающее устройство в шагомер и передающее данные другим BLE-устройствам;

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

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

Новый компонент для отображения web-страниц WebView, основанный на кодовой базе браузера Chromium M37 с полноценной поддержкой WebRTC, WebAudio и WebGL. Для оперативного устранения уязвимостей и ошибок WebView будет обновляться через Google Play, что позволит решить проблемы с накоплением уязвимостей в браузере в случае нежелания производителей выпускать обновления прошивок.

Новый API для работы с камерой, предоставляющий дополнительные возможности по созданию снимков и их обработки. Например, на поддерживающих такую возможность устройствах можно организовать захват несжатых изображений в формате YUV в полном разрешении с частотой 30 кадров в секунду. API также предоставляет доступ к внутренним (raw) параметрам сенсоров и позволяет на уровне отдельных кадров управлять такими характеристиками, как время экспозиции, чувствительность ISO и выдержка. Обеспечена поддержка кодека H.265 (HEVC);

Новые возможности для разработчиков игр: Возможность использования OpenGL ES 3.1 с поддержкой вычислительных шейдеров, мультисэмпловых текстур, текстур-масок (stencil) и ARB_texture_gather, что позволяет применять ранее недоступные на мобильных устройствах графические эффекты. Новый набор дополнений Android Extension Pack (AEP) к OpenGL ES, позволяющих обеспечить в Android уровень графики близкий к настольным системам. Игры могут использовать такие возможности, как тесселяция, геометрические шейдеры и ASTC-сжатие текстур. Поддержка AEP будет обеспечена для GPU NVIDIA, ARM, Qualcomm и Imagination Technologies;

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

Серия расширенных SDK:

Android Wear SDK — комплект для разработчиков приложений для носимых устройств, таких как умные часы. Предоставляет средства для обмена и репликации данных между карманными и носимыми устройствами, применения системы управления голосом, синхронизации уведомлений;

Android TV SDK — средства для разработки приложений для Android TV, позволяющем обеспечить вывод на большой экран телевизора и использовать пульт дистанционного управления, предоставляющий инструменты по работе с каталогами контента;

Android Auto SDK — набор для разработчиков приложений для автомобильных информационно-развлекательных систем;

Ссылка на основную публикацию
Adblock
detector