<приложение>

синтаксис:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:enableOnBackInvokedCallback=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
содержится в:
<manifest>
может содержать:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
описание:

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

Многие из этих атрибутов, такие как icon , label , permission , process , taskAffinity и allowTaskReparenting , устанавливают значения по умолчанию для соответствующих атрибутов элементов компонента. Другие, такие как debuggable , enabled , description и allowClearUserData , устанавливают значения для приложения в целом и не переопределяются компонентами.

атрибуты
android:allowTaskReparenting
Могут ли действия, определяемые приложением, перемещаться из задачи, которая их запустила, в задачу, к которой они имеют сродство, когда эта задача в следующий раз будет выведена на передний план. Значение "true" означает, что они могут перемещаться, и "false" означает, что они должны оставаться с задачей, с которой они начали. Значение по умолчанию - "false" .

Элемент <activity> имеет собственный атрибут allowTaskReparenting , который может переопределять установленное здесь значение.

android:allowBackup

Разрешить ли приложению участвовать в инфраструктуре резервного копирования и восстановления. Если этот атрибут установлен в "false" , резервное копирование или восстановление приложения никогда не выполняется, даже при полном резервном копировании системы, которое в противном случае заставляет все данные приложения сохраняться с помощью adb . Значение этого атрибута по умолчанию - "true" .

Примечание: Для приложений, ориентированных на Android 12 (уровень API 31) или выше, это поведение отличается. На устройствах некоторых производителей устройств вы не можете отключить миграцию файлов вашего приложения с устройства на устройство.

Однако вы можете отключить облачное резервное копирование и восстановление файлов вашего приложения, установив для этого атрибута значение "false" , даже если ваше приложение предназначено для Android 12 (API уровня 31) или выше.

Дополнительную информацию см. в разделе «Резервное копирование и восстановление» на странице, где описаны изменения в поведении приложений, ориентированных на Android 12 (уровень API 31) или выше.

android:allowClearUserData

Разрешить ли приложению сбрасывать пользовательские данные. Эти данные включают флаги, например, видел ли пользователь вводные подсказки, а также настраиваемые пользователем параметры и предпочтения. Значение этого атрибута по умолчанию — "true" .

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

Более подробную информацию см. в разделе Обзор резервного копирования данных .

android:allowNativeHeapPointerTagging

Включает ли приложение функцию тегирования указателя кучи. Значение этого атрибута по умолчанию — "true" .

Примечание: Отключение этой функции не решает основную проблему работоспособности кода. Будущие аппаратные устройства могут не поддерживать этот тег манифеста.

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

android:appCategory

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

Должно быть одно из следующих постоянных значений.

Ценить Описание
accessibility Приложения, которые в первую очередь являются приложениями специальных возможностей, например, программы чтения с экрана.
audio Приложения, которые в основном работают с аудио или музыкой, например музыкальные проигрыватели.
game Приложения, которые в первую очередь являются играми.
image Приложения, которые в основном работают с изображениями или фотографиями, например приложения камеры или галереи.
maps Приложения, которые в первую очередь являются картографическими приложениями, например, навигационные приложения.
news Приложения, которые в первую очередь являются новостными, например, газеты, журналы или спортивные приложения.
productivity Приложения, которые в первую очередь являются приложениями для повышения производительности, такие как облачное хранилище или приложения для рабочего места.
social Приложения, которые в первую очередь являются социальными приложениями, например, приложения для обмена сообщениями, общения, электронной почты или социальных сетей.
video Приложения, которые в основном работают с видео или фильмами, например приложения для потокового видео.

android:backupAgent
Имя класса, реализующего агент резервного копирования приложения, подкласс BackupAgent . Значение атрибута — это полное имя класса, например "com.example.project.MyBackupAgent" . Однако, в качестве сокращения, если первым символом имени является точка, например, ".MyBackupAgent" , оно добавляется к имени пакета, указанному в элементе <manifest> .

Нет значения по умолчанию. Имя должно быть конкретным.

android:backupInForeground
Указывает, что операции Auto Backup могут выполняться в этом приложении, даже если приложение находится в состоянии, эквивалентном переднему плану. Система закрывает приложение во время операции автоматического резервного копирования, поэтому используйте этот атрибут с осторожностью. Установка этого флага в значение "true" может повлиять на поведение приложения, пока оно активно.

Значение по умолчанию — "false" , что означает, что ОС не выполняет резервное копирование приложения, работающего на переднем плане, например музыкального приложения, которое активно воспроизводит музыку с помощью службы в состоянии startForeground() .

android:banner
Рисуемый ресурс, предоставляющий расширенный графический баннер для связанного с ним элемента. Используйте с тегом <application> для предоставления баннера по умолчанию для всех действий приложения или с тегом <activity> для предоставления баннера для определенного действия.

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

Этот атрибут задается как ссылка на ресурс для рисования, содержащий изображение, например "@drawable/banner" . Баннера по умолчанию нет.

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

android:dataExtractionRules

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

Информацию о формате XML-файла см. в разделе Резервное копирование и восстановление .

android:debuggable
Можно ли отлаживать приложение, даже если оно запущено на устройстве в пользовательском режиме. Значение "true" если можно, и "false" если нет. Значение по умолчанию "false" .
android:description
Пользовательский текст о приложении, который длиннее и более описателен, чем метка приложения. Значение задается как ссылка на строковый ресурс. В отличие от метки, оно не может быть необработанной строкой. Значения по умолчанию нет.
android:enabled
Может ли система Android создавать экземпляры компонентов приложения. Это "true" если может, и "false" если нет. Если значение "true" , атрибут enabled каждого компонента определяет, включен ли этот компонент. Если значение "false" , оно переопределяет значения, специфичные для компонента, и все компоненты отключаются.

Значение по умолчанию — "true" .

android:enableOnBackInvokedCallback

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

Установите android:enableOnBackInvokedCallback=false , чтобы отключить предиктивную обратную анимацию на уровне приложения и указать системе игнорировать вызовы API платформы OnBackInvokedCallback .

android:extractNativeLibs

Начиная с AGP 4.2.0, параметр DSL useLegacyPackaging заменяет атрибут манифеста extractNativeLibs . Используйте useLegacyPackaging в файле build.gradle вашего приложения вместо extractNativeLibs в файле манифеста для настройки поведения сжатия собственной библиотеки. Для получения дополнительной информации см. примечание к выпуску Использование DSL для упаковки сжатых собственных библиотек .

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

Значение по умолчанию extractNativeLibs зависит от minSdkVersion и версии AGP, которую вы используете. В большинстве случаев поведение по умолчанию, вероятно, то, что вам нужно, и вам не нужно устанавливать этот атрибут явно.

android:fullBackupContent
Этот атрибут указывает на XML-файл, содержащий полные правила резервного копирования для Auto Backup . Эти правила определяют, какие файлы будут резервироваться. Для получения дополнительной информации см. синтаксис XML-конфигурации для Auto Backup.

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

android:fullBackupOnly
Этот атрибут указывает, следует ли использовать функцию Auto Backup на устройствах, где она доступна. Если установлено значение "true" , ваше приложение выполняет функцию Auto Backup при установке на устройстве под управлением Android 6.0 (уровень API 23) или выше. На более старых устройствах ваше приложение игнорирует этот атрибут и выполняет резервное копирование key/value .

Значение по умолчанию — "false" .

android:gwpAsanMode
Этот атрибут указывает, следует ли использовать GWP-ASan — собственную функцию распределителя памяти, которая помогает находить ошибки использования памяти после освобождения и переполнения буфера кучи.

Значение по умолчанию — "never" .

android:hasCode
Содержит ли приложение какой-либо код DEX, то есть код, использующий язык программирования Kotlin или Java. Если есть, то это "true" , если нет — "false" . Если значение "false" , система не пытается загрузить какой-либо код приложения при запуске компонентов. Значение по умолчанию — "true" .

Если приложение включает собственный код (C/C++), но не содержит код DEX, следует установить значение "false" . Если установить значение "true" , когда APK не содержит код DEX, приложение может не загрузиться.

Это свойство должно учитывать код, включенный в приложение зависимостями. Если приложение зависит от AAR, который использует код Java/Kotlin, или напрямую от JAR, app:hasCode должен быть "true" или опущен, поскольку это значение по умолчанию.

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

android:hasFragileUserData
Показывать ли пользователю запрос на сохранение данных приложения, когда пользователь удаляет приложение. Значение по умолчанию — "false" .
android:hardwareAccelerated
Включен ли аппаратно-ускоренный рендеринг для всех действий и представлений в этом приложении. Значение "true" , если он включен, и "false" если нет. Значение по умолчанию "true" , если вы установили minSdkVersion или targetSdkVersion на "14" или выше. В противном случае значение "false" .

Начиная с Android 3.0 (API уровня 11) приложениям доступен аппаратно-ускоренный рендерер OpenGL для повышения производительности многих распространенных операций с 2D-графикой. Когда включен аппаратно-ускоренный рендерер, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader и Camera ускоряются.

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

Не все операции OpenGL 2D ускорены. Если вы включаете аппаратно-ускоренный рендерер, протестируйте свое приложение, чтобы оно могло использовать рендерер без ошибок.

Более подробную информацию можно найти в руководстве по аппаратному ускорению .

android:icon
Значок для приложения в целом и значок по умолчанию для каждого из компонентов приложения. Смотрите отдельные атрибуты icon для элементов <activity> , <activity-alias> , <service> , <receiver> и <provider> .

Этот атрибут задается как ссылка на ресурс рисования, содержащий изображение, например "@drawable/icon" . Значка по умолчанию нет.

android:isGame
Является ли приложение игрой. Система может группировать приложения, классифицированные как игры, или отображать их отдельно от других приложений. Значение по умолчанию — "false" .
android:isMonitoringTool

Указывает, что это приложение предназначено для наблюдения за другими лицами.

Примечание: если приложение объявляет этот атрибут в своем манифесте, разработчик должен следовать политике Stalkerware , чтобы опубликовать приложение в Google Play.

Значения по умолчанию нет. Разработчик должен указать одно из следующих значений:

Ценить Описание
"parental_control" Приложение обеспечивает родительский контроль и специально предназначено для родителей, которые хотят обеспечить безопасность своих детей.
"enterprise_management" Приложение предназначено для предприятий, желающих управлять и отслеживать устройства, выданные сотрудникам.
"other" Приложение предназначено для варианта использования, не указанного в данной таблице.
android:killAfterRestore

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

Значение по умолчанию — "true" , что означает, что после того, как приложение завершит обработку своих данных во время полного восстановления системы, оно завершит работу.

android:largeHeap

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

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

Чтобы запросить доступный объем памяти во время выполнения, используйте методы getMemoryClass() или getLargeMemoryClass() .

android:label
Пользовательская метка для всего приложения и метка по умолчанию для каждого компонента приложения. Смотрите отдельные атрибуты label для элементов <activity> , <activity-alias> , <service> , <receiver> и <provider> .

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

android:logo
Логотип для приложения в целом и логотип по умолчанию для действий. Этот атрибут задается как ссылка на ресурс для рисования, содержащий изображение, например "@drawable/logo" . Логотипа по умолчанию нет.
android:manageSpaceActivity
Полное имя подкласса Activity , который система запускает, чтобы позволить пользователям управлять памятью, занимаемой приложением на устройстве. Activity также объявляется с помощью элемента <activity> .
android:name
Полное имя подкласса Application , реализованного для приложения. При запуске процесса приложения этот класс создается до любого компонента приложения.

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

android:networkSecurityConfig

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

Этот атрибут был добавлен в API уровня 24.

android:permission
Имя разрешения, которое необходимо клиентам для взаимодействия с приложением. Этот атрибут — удобный способ задать разрешение, которое применяется ко всем компонентам приложения. Он перезаписывается путем установки атрибутов permission отдельных компонентов.

Дополнительную информацию о разрешениях см. в разделе « Разрешения» в обзоре манифеста приложения и в советах по безопасности .

android:persistent
Остается ли приложение запущенным все время. Если да, то "true" если нет, то "false" . Значение по умолчанию "false" . Обычно приложения не устанавливают этот флаг. Режим сохранения предназначен только для определенных системных приложений.
android:process
Имя процесса, в котором работают все компоненты приложения. Каждый компонент может переопределить это значение по умолчанию, установив свой собственный атрибут process .

По умолчанию Android создает процесс для приложения, когда первый из его компонентов должен запуститься. Затем все компоненты запускаются в этом процессе. Имя процесса по умолчанию совпадает с именем пакета, заданным элементом <manifest> .

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

Если имя, назначенное этому атрибуту, начинается с двоеточия ( : ), новый процесс, частный для приложения, создается при необходимости. Если имя процесса начинается со строчной буквы, создается глобальный процесс с таким именем. Глобальный процесс может использоваться совместно с другими приложениями, что снижает использование ресурсов.

android:restoreAnyVersion
Указывает, что приложение готово попытаться восстановить любой резервный набор данных, даже если резервная копия была сохранена более новой версией приложения, чем та, которая в данный момент установлена ​​на устройстве. Установка этого атрибута в значение "true" позволяет диспетчеру резервного копирования
  • $1
  • попробуйте восстановить, даже если несоответствие версий предполагает, что данные несовместимы. Используйте с осторожностью!

    Значение этого атрибута по умолчанию — "false" .

    android:requestLegacyExternalStorage

    Хочет ли приложение отказаться от ограниченного хранилища .

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

    android:requiredAccountType
    Указывает тип учетной записи, необходимый приложению для работы. Если вашему приложению требуется Account , значение этого атрибута должно соответствовать типу аутентификатора учетной записи, используемому вашим приложением, как определено в AuthenticatorDescription , например "com.google" .

    Значение по умолчанию — null, что означает, что приложение может работать без каких-либо учетных записей.

    Поскольку ограниченные профили не могут добавлять учетные записи, указание этого атрибута сделает ваше приложение недоступным из ограниченного профиля, если только вы также не объявите android:restrictedAccountType с тем же значением.

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

    Этот атрибут был добавлен в API уровня 18.

    android:resizeableActivity

    Указывает, поддерживает ли приложение многооконный режим .

    Этот атрибут можно установить в элементе <activity> или <application> .

    Если вы установите этот атрибут на "true" , пользователь сможет запустить активность в режимах разделенного экрана и свободной формы. Если вы установите атрибут на "false" , приложение не может быть протестировано или оптимизировано для многооконного режима. Система все равно может перевести активность в многооконный режим с примененным режимом совместимости.

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

    Для приложений, ориентированных на API уровня 24 или выше, значением по умолчанию является "true" .

    Если ваше приложение ориентировано на API уровня 31 или выше, этот атрибут работает по-разному на маленьких и больших экранах:

    • Большие экраны (sw >= 600dp): все приложения поддерживают многооконный режим. Атрибут указывает, можно ли изменить размер приложения, а не поддерживает ли приложение многооконный режим. Если resizeableActivity="false" , приложение переводится в режим совместимости, когда это необходимо для соответствия размерам дисплея.
    • Маленькие экраны (sw < 600dp): если resizeableActivity="true" и минимальная ширина и минимальная высота основной активности соответствуют требованиям многооконности, приложение поддерживает многооконный режим. Если resizeableActivity="false" , приложение не поддерживает многооконный режим независимо от минимальной ширины и высоты активности.

    Значение корневой активности задачи применяется ко всем дополнительным активностям, запущенным в задаче. То есть, если корневая активность задачи является изменяемо-размерной, то система рассматривает все остальные активности в задаче как изменяемо-размерные. Если корневая активность не является изменяемо-размерной, то и другие активности в задаче не являются изменяемо-размерными.

    Этот атрибут был добавлен в API уровня 24.

    android:restrictedAccountType
    Указывает тип учетной записи, требуемый этим приложением, и указывает, что ограниченные профили могут получать доступ к таким учетным записям, которые принадлежат пользователю-владельцу. Если вашему приложению требуется Account , а ограниченные профили могут получать доступ к учетным записям основного пользователя, значение этого атрибута должно соответствовать типу аутентификатора учетной записи, используемому вашим приложением, как определено в AuthenticatorDescription , например "com.google" .

    Значение по умолчанию — null, что означает, что приложение может работать без каких-либо учетных записей.

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

    Этот атрибут был добавлен в API уровня 18.

    android:supportsRtl

    Указывает, готово ли ваше приложение поддерживать макеты с письмом справа налево (RTL).

    Если установлено значение "true" и targetSdkVersion установлено значение 17 или выше, различные API RTL активируются и используются системой, чтобы ваше приложение могло отображать макеты RTL. Если установлено значение "false" или targetSdkVersion установлено значение 16 или ниже, API RTL игнорируются или не оказывают никакого эффекта, и ваше приложение ведет себя одинаково независимо от направления макета, связанного с выбором локали пользователя. То есть ваши макеты всегда слева направо.

    Значение этого атрибута по умолчанию — "false" .

    Этот атрибут был добавлен в API уровня 17.

    android:taskAffinity
    Имя affinity, которое применяется ко всем действиям в приложении, за исключением тех, которые устанавливают другое affinity с собственными атрибутами taskAffinity . См. этот атрибут для получения дополнительной информации.

    По умолчанию все действия в приложении имеют одинаковую аффинити. Имя этой аффинити совпадает с именем пакета, заданным элементом <manifest> .

    android:testOnly
    Указывает, предназначено ли это приложение только для целей тестирования. Например, оно может раскрывать функциональность или данные за пределами себя, что может привести к уязвимости безопасности, но быть полезным для тестирования. Этот тип APK устанавливается только через adb . Вы не можете опубликовать его в Google Play.

    Android Studio автоматически добавляет этот атрибут при нажатии кнопки «Выполнить». .

    android:theme
    Ссылка на ресурс стиля, определяющий тему по умолчанию для всех действий в приложении. Отдельные действия могут переопределять тему по умолчанию, устанавливая собственные атрибуты theme . Для получения дополнительной информации см. раздел Стили и темы .
    android:uiOptions
    Дополнительные параметры для пользовательского интерфейса активности. Должно быть одно из следующих значений:
    Ценить Описание
    "none" Никаких дополнительных опций пользовательского интерфейса. Это значение по умолчанию.
    "splitActionBarWhenNarrow" Добавляет панель внизу экрана для отображения элементов действий на панели приложений , также известной как панель действий , когда ограничено горизонтальное пространство, например, в портретном режиме на телефоне. Вместо небольшого количества элементов действий, отображаемых на панели приложений в верхней части экрана, панель приложений разделяется на верхнюю навигационную секцию и нижнюю панель для элементов действий. Это означает, что для элементов действий и для элементов навигации и заголовка вверху доступно разумное количество места. Элементы меню не разделены между двумя панелями. Они всегда отображаются вместе.

    Дополнительную информацию о панели приложений см. в разделе Добавление панели приложений .

    Этот атрибут был добавлен в API уровня 14.

    android:usesCleartextTraffic
    Указывает, собирается ли приложение использовать сетевой трафик открытого текста, например открытый текст HTTP. Значение по умолчанию для приложений, нацеленных на API уровня 27 или ниже, — "true" . Приложения, нацеленные на API уровня 28 или выше, по умолчанию — "false" .

    Если атрибут имеет значение "false" , компоненты платформы, например, стеки HTTP и FTP, DownloadManager и MediaPlayer , отклоняют запросы приложения на использование открытого текстового трафика.

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

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

    Однако большая часть сетевого трафика от приложений обрабатывается сетевыми стеками и компонентами более высокого уровня, которые могут учитывать этот флаг, считывая его из ApplicationInfo.flags или NetworkSecurityPolicy.isCleartextTrafficPermitted() .

    Примечание: WebView учитывает этот атрибут для приложений, ориентированных на API уровня 26 и выше.

    Во время разработки приложения StrictMode может использоваться для идентификации любого открытого текстового трафика из приложения. Для получения дополнительной информации см. StrictMode.VmPolicy.Builder.detectCleartextNetwork() .

    Этот атрибут был добавлен в API уровня 23.

    Этот флаг игнорируется на Android 7.0 (уровень API 24) и выше, если присутствует конфигурация безопасности сети Android.

    android:vmSafeMode
    Указывает, хочет ли приложение, чтобы виртуальная машина (VM) работала в безопасном режиме. Значение по умолчанию — "false" .

    Этот атрибут был добавлен в API уровня 8, где значение "true" отключало компилятор Dalvik just-in-time (JIT).

    Этот атрибут был адаптирован в API уровня 22, где значение "true" отключало компилятор ART ahead-of-time (AOT).

    введено в:
    Уровень API 1
    см. также:
    <activity>
    <service>
    <receiver>
    <provider>