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

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

8 голосов | спросил user16112 17 PM000000110000002131 2012, 23:54:21

3 ответа


7

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

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

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

ответил Izzy 18 AM000000120000004531 2012, 00:12:45
2

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

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

      

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

    (Акцент мой)

  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 по умолчанию. [...]

  •   
  • Живые обои

         

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

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

         

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

  •   
  • Менеджеры учетных записей

         

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

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

         

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

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

         

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

  •   
  • Широковещательные приемники, прослушивающие «загруженные файлы»

         

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

  •   

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

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

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

Источник: Android Developers: место установки приложения .

ответил Izzy 18 AM000000120000004531 2012, 00:12:45
1

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

EDIT: использование этого метода требует доступа root на вашем телефоне, а также требуется, чтобы ваша SD-карта была отформатирована, чтобы иметь на ней второй раздел.

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

ответил Divulged 23 Maypm16 2016, 16:13:56

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

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

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