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

синтаксис:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowCrossUidActivitySwitchFromBelow=["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: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:allowCrossUidActivitySwitchFromBelow

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

Начиная с уровня Target SDK Level Build.VERSION_CODES.VANILLA_ICE_CREAM , приложениям может быть запрещено начинать новые действия или завершать свою задачу, если только главное действие такой задачи не принадлежит тому же UID по соображениям безопасности.

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

Дополнительные сведения см. в разделе Запуск защищенных фоновых действий .

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/banner" . Баннера по умолчанию нет.

Дополнительную информацию см. в разделе Предоставление баннера на главном экране .

android:dataExtractionRules

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

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

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

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

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

Значение по умолчанию — "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 платформы.

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

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

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

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

android:requestLegacyExternalStorage

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

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

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

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

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

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

Этот атрибут был добавлен на уровне 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 уровня 31.

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

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

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

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

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

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

android:supportsRtl

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

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

Значение этого атрибута по умолчанию — "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" .

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

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

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

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

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

представлено в:
API уровня 1
см. также:
<activity>
<service>
<receiver>
<provider>