Невозможно переместить несколько приложений на SD-карту

9

У меня есть приложения, такие как Any.DO и AK Notepad, установленные в телефоне My Samsung Galaxy Y Android 2.3.6. Я пробовал Titanium Backup и App 2 SD (переместить приложение на SD), но все еще не смог переместить эти приложения на SD-карту. Что не так? Может ли кто-нибудь помочь мне здесь?

Иззи
источник
1
Что произойдет, если вы попытаетесь переместить приложения на SD?
поток
1
@ Посмотри на мой ответ. Оба приложения имеют встроенные виджеты, поэтому они, скорее всего, не поддерживают App2SD.
Иззи
Если вы хотите переместить свое приложение на SD-карту из-за «нехватки внутренней памяти», зайдите на android.stackexchange.com/questions/30620/…
Сильвен Хуард,

Ответы:

7

Приложение должно явно поддерживать App2SD, иначе вы не сможете переместить его на карту. Существует несколько причин, по которым приложение может не поддерживать его:

  • использование виджетов (оба упомянутых приложения, похоже, попадают в эту категорию. AK Notepad: «Закрепление заметок на главном экране»; Any.DO: «Вы даже можете добавить наш виджет на свой рабочий стол»)
  • запуск службы

Так как SD-карта будет недоступна при подключении к компьютеру, обе вещи будут «зависать» (так как они больше не смогут получить доступ к своим данным и т. Д.). Конечно, всегда есть возможность, что разработчику просто все равно - в этом случае вам следует связаться с ним и спросить.

Иззи
источник
Я столкнулся с интересным случаем - приложение, f-droid.org/repository/browse/?fdid=com.nanoconverter.zlab, которое имеет дефект - оно предлагает фоновый сервис и виджет, но мой 4.2.2 может переместить его в SD-карта (теряя эту функциональность, ofc).
Бесплатная консультация
3

Есть несколько факторов, которые могут повлиять на это:

  1. Приложение должно явно заявить, что его предпочтительно / можно установить на SD-карту.

    Начиная с уровня API 8, вы можете разрешить установку приложения на внешнее хранилище (например, SD-карту устройства). Это дополнительная функция, которую вы можете объявить для своего приложения с помощью android:installLocationатрибута manifest. Если вы не объявите этот атрибут, ваше приложение будет установлено только во внутреннем хранилище и не может быть перемещено во внешнее хранилище .

    (Акцент мой)

  2. Приложение настроено на компиляцию с использованием API 7 (Froyo) или ниже, который не поддерживает установку приложения на SD-карту (даже если оно установлено на GingerBread или более новых устройствах).

    Возможность установки приложения на внешнее хранилище - это функция, доступная только на устройствах с API уровня 8 (Android 2.2) или выше. Существующие приложения, созданные до API уровня 8, всегда устанавливаются во внутреннее хранилище и не могут быть перемещены во внешнее хранилище (даже на устройствах с API уровня 8) . Однако, если ваше приложение разработано для поддержки уровня API ниже 8, вы можете выбрать поддержку этой функции для устройств с уровнем API 8 или выше и при этом поддерживать совместимость с устройствами, использующими уровень API ниже 8.

    (Акцент мой)

Причины, по которым некоторые приложения не желательно устанавливать на SD-карту, заключаются в следующем:

Когда пользователь активирует USB-накопитель для обмена файлами со своим компьютером (или иным образом отключает или удаляет внешнее хранилище), любое приложение, установленное на внешнем хранилище и работающее в данный момент, уничтожается. Система фактически не узнает о приложении до тех пор, пока запоминающее устройство не будет отключено и внешнее хранилище не будет перемонтировано на устройстве. Помимо уничтожения приложения и его недоступности для пользователя, это может привести к более серьезному нарушению работы некоторых типов приложений. Чтобы ваше приложение работало должным образом, вы не должны позволять устанавливать ваше приложение на внешнее хранилище, если оно использует одну из следующих функций, из-за указанных последствий, когда внешнее хранилище отключено:

  • Сервисы

    Ваша работа Serviceбудет прервана и не будет перезапущена при перемонтировании внешнего хранилища. [...]

  • Службы сигнализации

    Ваши тревоги, зарегистрированные на, AlarmManagerбудут отменены. [...]

  • Способ ввода Двигатели

    Ваш IME будет заменен IME по умолчанию. [...]

  • Живые обои

    Ваши живые обои будут заменены живыми обоями по умолчанию. [...]

  • Виджеты приложений

    Ваш виджет приложения будет удален с главного экрана. Когда внешнее хранилище перемонтируется, ваш виджет приложения будет недоступен для выбора пользователем, пока система не перезагрузит домашнее приложение (обычно не до перезагрузки системы).

  • Менеджеры по работе с клиентами

    Ваши учетные записи, созданные с помощью AccountManager, исчезнут, пока не будет перемонтировано внешнее хранилище.

  • Адаптеры синхронизации

    Ваша AbstractThreadedSyncAdapterи все функции синхронизации не будут работать, пока не будет перемонтировано внешнее хранилище.

  • Администраторы устройства

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

  • Приемники вещания слушают "загрузка завершена"

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

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

(Некоторые части отредактированы. Они объясняют, что разработчики должны сделать, чтобы их приложения работали должным образом после переустановки SD-карты.)

Примечание : этот ответ служит общей информацией «Почему некоторые приложения не могут быть перемещены на SD - карту»

Источник: Android Разработчики: App Install Location .

Андрей Т.
источник
1

Определенно возможно перенести приложения на SD-карту и при этом поддерживать их безупречную работу (включая виджеты и сервисы) через Link2SD.

РЕДАКТИРОВАТЬ: использование этого метода требует корневого доступа на вашем телефоне, а также необходимо отформатировать SD-карту, чтобы иметь второй раздел на нем.

Чтобы избежать избыточной публикации ответа здесь, я просто добавлю ссылку на него: https://android.stackexchange.com/a/145591/167026

разглашаться
источник