Persistent в Андроид что это за программа

Я работаю с AOSP и пытаюсь создать системную службу. Меня интересует фактическая функциональность флага android: persistent, который можно установить в приложении. Мне сложно найти документацию по флагу android: persistent, хотя, учитывая, что он нечасто привыкает.

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

Итак, вопрос в том, где он проверяется или каково постоянное строковое представление для флага android: persistent (если кто-то может просто сказать мне, что это за строковое представление, будет нетрудно использовать grep и найти все места, где оно находится подходит)

Andrew T. 28 Авг 2013 в 00:19

«Я чувствую, что он может делать больше, чем просто предотвращать убийство моей службы». Я тоже считаю, что это правда. Кажется, я не могу обновить свое приложение, потому что предыдущая, постоянная версия отказалась убиваться и перезаписываться. У вас тоже была эта проблема?

Как устроен Android и его приложения.

3 Дек 2015 в 16:39

1 ответ

Лучший ответ

Хорошо задайте вопрос и ваш ответ сразу станет очевидным. Строковый литерал, похоже, находится в ApplicationInfo: FLAG_PERSISTENT, и вы можете найти все это на странице grepcode:

Источник: question-it.com

Persistent в андроид что это за программа

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

Указывает могут ли явления приложения перемещаться из задачи, которая его запустила в родственную задачу, когда эта задача будет выведена на передний план: «true» если может перемещаться, «false» если должно оставаться в задаче, в которой было запущено. Значение по умолчанию false

Атрибут может быть переопределен для каждого явления в элементах .

Указывает может ли приложение участвовать в резервном копировании и восстановлении. Если атрибут установлен в значение false , ни резервирование, ни восстановление не будут выполняться даже при полном резервировании системы с помощью adb. Значение по умолчанию true .

Название подкласса BackupAgent, который реализует агента резервирования. Атрибут должен содержать полное имя, включая название пакета (например, «com.example.project.MyBackupAgent» ). Однако, если первым символом стоит точка “.”, будет использовать название пакета, указанное в элементе .

Виртуальная RAM | ANDROID СПАСЁН?

Атрибут не содержит значения по умолчанию.

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

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

Указывает, может ли использовать отладка при запуске в пользовательском режиме. true если может. Значение по умолчанию false .

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

Читайте также:
Программа synapse что это

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

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

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

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

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

Начиная с Android 3.0, аппаратное ускорение OpenGL доступно приложениям, для улучшения производительности для большинства распространенных 2D графических операций. Если аппаратное ускорение разрешено, большинство операций с объектами Canvas, Paint, Xrefmode, ColorFilter, Shader и Camera ускоряются. В результате получается гладкая анимация, гладкое прокручивание и улучшенная отзывчивость во всем, даже в приложениях, которые явно не используют библиотеку OpenGL. Поскольку для аппаратного ускорения требуется больше ресурсов, ваше приложение будет потреблять больше памяти.

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

Иконка приложения, является иконкой по умолчанию для всех его компонентов.

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

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

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

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

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

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

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

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

Логотип по умолчанию, является логотипом по умолчанию для всех явлений приложения.

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

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

Читайте также:
Модульная схема программы что это

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

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

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

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

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

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

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

Если имя, указанное в атрибуте начинается с двоеточия “:”, новый процесс, частный для приложения, создается при необходимости. Если имя процесса начинается с маленькой буквы, приложение будет запущено в глобальном процессе с указанным именем. Это позволяет компонентам различных приложений использовать общий процесс, снижая расход ресурсов.

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

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

Указывает тип учетной записи, которая требуется приложению для выполнения функций. Если ваше приложение требует Account, значение атрибута должно соответствовать типу аутентификатора приложения (который указан с помощью AuthentificatorDescription), например «com.google» .

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

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

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

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

Задает тип учетной записи, необходимой для работы приложения и указывает, что ограниченные профили имеют доступ к таким учетным записям, принадлежащим владельцу. Если приложение требует Account и ограниченные профили имеют доступ к учетным записям, значение этого атрибута должно соответствовать типу аутентификатора (который указан с помощью AuthentificatorDescription), например com.google .

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

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

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

Читайте также:
Giftbox service что это за программа

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

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

Значение по умолчанию false . Атрибут добавлен в API 17.

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

По умолчанию, все явления приложения имеют одинаковое родство. Имя родства по умолчанию для приложения равно имени пакета, установленного в элементе .

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

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

Расширенные опции для пользовательского интерфейса явлений.

Может принимать одно из значений, приведенных в таблице:

Значение Описание
none Нет расширенных опций. Это значение по умолчанию.
splitActionBarWhenNarrow Добавляет панель внизу экрана для отображения пунктов панели инструментов, если горизонтальное пространство ограничено (например в портретной ориентации на смартфонах). Вместо небольшого числа элементов на верхней панели инструментов, панель делится на верхнюю секцию навигации и нижнюю секцию для кнопок действий. Это гарантирует, что будет достаточно места не только для кнопок, но и для навигации и названия явления. Пункты меню не делятся между двумя панелями, они всегда находятся вместе.

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

Атрибут добавлен в API 14.

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

ДОБАВЛЕНО: уровень API 1 СМОТРИТЕ ТАКЖЕ:

Источник: easyandroid.ru

Где проверяется android:persistent?

Я работаю с AOSP и пытаюсь создать системную службу. Меня интересует фактическая функциональность флага android:persistent, который можно установить в приложении. Мне трудно найти документацию по флагу android:persistent, хотя он используется нечасто.

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

Итак, вопрос в том, где это проверяется или каково постоянное строковое представление для флага android:persistent (если кто-то может просто сказать мне, что это за строковое представление, будет несложно выполнить grep и найти все места, где оно находится). подходит)

«Я чувствую, что это может делать больше, чем просто мешать моей службе быть убитой». Я тоже считаю, что это правда. Кажется, я не могу обновить свое приложение, потому что предыдущая постоянная версия отказалась быть уничтоженной и перезаписанной. У вас тоже была эта проблема? — kpninja12

1 ответы

Хорошо задайте вопрос, и ваш ответ сразу станет очевидным. Строковый литерал, кажется, находится в ApplicationInfo: FLAG_PERSISTENT, и вы можете найти все это на странице grepcode:

ответ дан 27 авг.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками android android-manifest android-source or задайте свой вопрос.

Источник: stackovergo.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru