Каковы различия между системным приложением и пользовательским приложением?

Как я играл с разными ROM и использовал Titanium Backup, я вижу, что приложения классифицируются в системные и пользовательские приложения. Несколько разработчиков ПЗУ заявляют, что Titanium Backup следует использовать только для пользовательских приложений, а не для системных приложений, и когда я приступаю к удалению системных приложений, TiBu предупреждает меня, что ПЗУ может работать некорректно.

Кроме того, что пользовательские приложения загружаются через Market или какие-то другие средства, каковы основные различия между ними?

Что это за системные приложения, которые делают их более неотъемлемыми для самой ОС?

26 голосов | спросил Chance 4 Jpm1000000pmWed, 04 Jan 2012 21:45:09 +040012 2012, 21:45:09

5 ответов


19

/system доступен только для чтения без использования root, поэтому он предотвращает удаление приложений из /system/app и /system/priv-app. Приложения, которые являются критическими, помещаются туда, чтобы их нельзя было удалить. Буферный носитель, который они не хотят позволять вам удалять, также помещается туда. Последняя категория приложений может быть удалена, если вы укоренились; первое, не так много.

/system/priv-app также позволяет приложениям, установленным там, использовать signatureOrSystem и другие привилегированные разрешения. В ответе Стивена есть несколько примеров.

Что касается почему приложения могут быть критическими, это зависит от ROM. Например, HTC Sense сильно зависит от встроенных приложений от того, что я слышу. Они просто не разрабатывали свой пользовательский интерфейс, так что он работал бы с сторонними приложениями (или неудачно, если системные приложения отсутствовали). Другие приложения по сути являются частью ОС Android, но Google закодировал их как приложения /службы (возможно, для причин инкапсуляции и надежности).

Обновления некоторых системных приложений можно загрузить через Play Маркет, например Карты Google. Если он не был предустановлен как системное приложение на вашем устройстве, вы можете использовать Titanium для преобразования его из пользовательского приложения в системное приложение.

ответил Matthew Read 4 Jpm1000000pmWed, 04 Jan 2012 21:58:27 +040012 2012, 21:58:27
19

Другие ответы верны, но не указывают на несколько отличий:

Права доступа

Системным приложениям предоставляется возможность запрашивать определенные разрешения только для системы, которые никогда не доступны для пользовательских приложений. Это not то же самое, что и права root /sudo /su.

Одним из примеров, который я знаю и использую ежедневно, является возможность сброса счетчика уведомлений о пропущенных вызовах. У меня есть Go Dialer, который является заменой для бесплатного дозвона и контактного приложения (как вы делаете телефонные звонки). Когда я пропускаю вызов, андроид позволяет мне знать это с уведомлением. Однако Go Dialer не может сбрасывать этот счетчик, даже если он запрашивает это разрешение при установке приложения. Android 2.2 и более ранние версии позволяли пользовательским приложениям перезагружать его, но сделали это разрешение доступным только для системы разрешением для Android 2.3

Переместив мое приложение Go Dialer в системный раздел, вы можете сбросить этот счетчик. Корень не требуется для приложения (за исключением, конечно, для фактического перемещения приложения в системный раздел).

Еще одно системное разрешение - это возможность установить текущее местоположение gps. Теперь у Android есть предпочтения, где вы можете разрешать макет местоположений, поэтому любое приложение для спуфинга gps может объявить местоположение gps. Но если приложение находится в разделе «Система», макет местоположений может быть отключен, хотя приложение позволяет обмануть местоположение gps.

Обновление

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

Переместить в SD

Android позволяет пользователям перемещать приложения user из внутренней памяти на SD-карту. Системные приложения не могут перемещаться и всегда занимать некоторое внутреннее пространство. Однако большинство (все?) Устройств имеют внутренние пользовательские приложения на другом разделе, поэтому удаление системного приложения не даст вам больше пространства для пользовательских приложений (кроме удаляемого кэша dalvik).

Вы восстановите некоторое пространство, если вы удалите все обновления в системное приложение. Как уже отмечалось, обновления не интегрируются с ромом и, таким образом, сохраняются в пользовательском пространстве. Обновления также не могут перемещаться на SD-карту, но если их удалить, пользовательское пространство будет восстановлено.

Как это влияет на вас

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

ответил Stephen Schrauger 19 +04002012-10-19T22:12:06+04:00312012bEurope/MoscowFri, 19 Oct 2012 22:12:06 +0400 2012, 22:12:06
3

Системные приложения - это приложения, входящие в систему. Они находятся в папке /system /app.

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

ответил Liam W 4 Jpm1000000pmWed, 04 Jan 2012 21:54:25 +040012 2012, 21:54:25
2

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

ответил CCCP 3 PM000000120000004231 2017, 12:58:42
1

Еще одна особенность системных приложений заключается в том, что они используют собственные библиотеки ( libsomething.so ) из каталога общих системных библиотек (обычно /system /lib или /system /lib64 ), а не из каталога приложений-частных библиотек (например, /data/app/com.example.HelloJni/lib/arm ). Перед Android Nougat пользовательские приложения могли загружать и использовать собственные библиотеки. Ограничения были введены позже, см. https: //разработчик .android.com /об /версии /нуга /андроид-7,0-changes.html # NDK .

ответил Alex Cohn 6 FebruaryEurope/MoscowbTue, 06 Feb 2018 12:41:59 +0300000000pmTue, 06 Feb 2018 12:41:59 +030018 2018, 12:41:59

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132