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

синтаксис:
<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
Указывает, что операции автоматического резервного копирования могут выполняться для этого приложения, даже если оно находится в режиме, эквивалентном активному экрану. Система завершает работу приложения во время автоматического резервного копирования, поэтому используйте этот атрибут с осторожностью. Установка этого флага в значение "true" может повлиять на поведение приложения во время его активности.

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

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

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

Этот атрибут устанавливается как ссылка на ресурс drawable, содержащий изображение, например "@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-файл, содержащий полные правила резервного копирования для автоматического резервного копирования . Эти правила определяют, какие файлы будут резервно копироваться. Для получения дополнительной информации см. синтаксис XML-конфигурации для автоматического резервного копирования.

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

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

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

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

Значение по умолчанию — "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, содержащий изображение, например, "@drawable/icon" . Значка по умолчанию нет.

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

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

Примечание: Если приложение указывает этот атрибут в своем манифесте, разработчик должен соблюдать политику в отношении сталкерского ПО , чтобы опубликовать приложение в 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, содержащий изображение, например, "@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 или выше, система активирует и использует различные RTL API, чтобы ваше приложение могло отображать макеты с направлением письма слева направо. Если этот параметр установлен в значение "false" или targetSdkVersion — в 16 или ниже, RTL API игнорируются или не оказывают никакого эффекта, и ваше приложение ведет себя одинаково независимо от направления макета, связанного с выбором локали пользователем. То есть ваши макеты всегда будут слева направо.

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

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

    android:taskAffinity
    Имя привязки, применяемое ко всем действиям в приложении, за исключением тех, для которых задана другая привязка с помощью собственных атрибутов 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" .

    Примечание: Этот атрибут устаревает и будет игнорироваться для приложений, ориентированных на уровни API 38 и выше. Укажите конфигурацию сетевой безопасности для управления трафиком в открытом виде для уровней API 24 и выше. Если ваше приложение ориентировано на уровни API 23 и ниже, необходимо указать android:usesCleartextTraffic в дополнение к конфигурации сетевой безопасности.

    Если для этого атрибута установлено значение "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
    Указывает, хочет ли приложение, чтобы виртуальная машина (ВМ) работала в безопасном режиме. Значение по умолчанию — "false" .

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

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

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