Кроме переносимости, есть ли другие преимущества (или недостатки) для хранения приложений во внешнем хранилище?

26

Существуют ли какие-либо конкретные преимущества / недостатки для хранения приложений на внешнем хранилище устройства Android? Поскольку у меня есть Nexus S, я не могу думать о преимуществах для меня, поскольку я не могу удалить хранилище, а также внутреннего хранилища более чем достаточно для моих нужд.

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

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

Dunhamzzz
источник
2
У вас нет телефона HTC, у вас нет всех проблем с крошечной внутренней памятью. Нет никакой реальной причины для перемещения любых приложений на SD.
GAThrawn
См. Также android.stackexchange.com/questions/3298/…
Вадим

Ответы:

25

Преимущества:

  • Расширить доступное пространство во внутренней памяти для установки дополнительных приложений.
    Хотя некоторые части приложения все еще остаются во внутренней памяти (данные и настройки), они все еще освобождают значительный объем пространства. Для старых телефонов с 150 МБ свободного места (G1, MT3G и т. Д.) Это огромное улучшение. Для владельцев этих устройств одно это преимущество перевешивает любые недостатки, которые приносит этот метод.

Недостатки:

  • Невозможно использовать приложения, перемещенные на SD-карту, если она отключена.
    Само собой разумеется: если вы демонтируете SD-карту для удаления, приложения, которые находятся на ней, должны быть остановлены и смонтированы так же, чтобы предотвратить сбои и потерю данных, если вы действительно удалите карту.
  • Невозможность использовать виджеты или синхронизировать адаптеры при перемещении этих приложений на SD-карту.
    Это ограничение дизайна, которое стоит от вышеупомянутого пункта. Поскольку приложения, хранящиеся на SD-картах, должны быть в состоянии удалить по требованию, такие вещи, как виджеты или приложения, которые подключаются к настройкам вашей учетной записи (например, Skype, LinkedIn), будут аварийно завершаться, и их будет нелегко перезапустить. Так что Google пошел на компромисс, потребовав, чтобы эти приложения оставались во внутренней памяти. Даже если вам удастся принудительно перенести их на SD-карту (это разрешено некоторыми пользовательскими ПЗУ), вы просто не сможете их использовать.
  • Более длительное время загрузки и выключения, когда система монтирует / размонтирует все приложения, хранящиеся на SD-карте.
    Приложения, которые были перемещены на SD-карту, не хранятся на виду, чтобы предотвратить безудержное пиратство. Вместо этого Android выделяет некоторое пространство и создает виртуальный раздел для каждого перемещаемого приложения. Это означает, что при начальной загрузке все эти виртуальные разделы должны быть смонтированы, прежде чем будут доступны приложения, хранящиеся на них. То же самое верно, когда вы выключаете телефонную трубку - каждый виртуальный раздел отключается до того, как могут произойти другие процессы выключения. В зависимости от количества установленных приложений это может занять дополнительную минуту или даже больше, чтобы система «стабилизировалась» при загрузке (и около 20 дополнительных секунд для выключения.) Как только это произойдет, запуск этих приложений не займет дольше, чем те, что на внутренней памяти.
  • Дополнительный износ на SD-карте.
    Это спорный вопрос, так как запись на SD-карту (которая вызывает износ) происходит не так часто. И, кроме того, SD-карты в наши дни достаточно дешевы, чтобы не беспокоиться о времени их жизни.
  • Приложения требуют обновления для поддержки этой функции.
    Возможность переноса на SD-карту не предоставляется автоматически более старым приложениям. Разработчики должны изменить свои приложения для поддержки этой функции и выпустить обновление через Market (или любой другой метод распространения, который они используют). Некоторые старые приложения могут больше не поддерживаться, и поэтому могут никогда не получить эту функцию. Хотя некоторые пользовательские ПЗУ могут переопределить это, для большинства людей, использующих стоковую прошивку, это проблема.

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

Chahk
источник
Еще один недостаток: при восстановлении из резервных копий все восстановленные приложения попадают в основную память - что приводит к сбою восстановления при заполнении основной памяти.
Мэй
1
@ Дэвид Это действительно зависит от приложения, которое вы используете для резервного копирования / восстановления. Лучшие из них (например, Titanium Backup) дадут вам возможность выбрать место для восстановления и разрешить восстановление либо непосредственно на SD-карту, либо в исходное место.
Чахк
«Носить» на SD-карте? Да ладно, не больше и не меньше, чем «износ» на внутреннем хранилище.
LarryBud
31

взяты прямо с сайта разработчика Android

  • Это не влияет на производительность приложения, если на устройстве установлено внешнее хранилище.
    • Файл .apk сохраняется во внешнем хранилище, но все личные пользовательские данные, базы данных, оптимизированные файлы .dex и извлеченный собственный код сохраняются во внутренней памяти устройства.
    • Уникальный контейнер, в котором хранится ваше приложение, зашифрован случайным образом сгенерированным ключом, который может быть расшифрован только тем устройством, которое его первоначально установило. Таким образом, приложение, установленное на SD-карте, работает только для одного устройства.
    • Пользователь может переместить ваше приложение во внутреннее хранилище через системные настройки.

Также -> Приложения, которые НЕ следует устанавливать на внешнее хранилище (более подробно на сайте разработчика Android )

  • Сервисы
  • Службы сигнализации
  • Живые обои
  • Живые папки
  • Виджеты приложений
  • Менеджеры по работе с клиентами
  • Адаптеры синхронизации
  • Администраторы устройства
  • Приемники вещания слушают "загрузка завершена"
bbaja42
источник
17

Виджеты не будут работать, если они находятся на SD-карте.

пиво
источник
13

Приложения, установленные на SD-карте, не могут запускаться, если вы извлекаете SD-карту или включаете запоминающее устройство USB (чтобы к нему можно было получить доступ с компьютера). Это единственный недостаток, который я испытал.

Я действительно видел улучшение производительности после перехода на SD; до того, как я перешел на SD, я исчерпал внутреннюю память (осталось около нескольких килобайт), и телефон довольно сильно зависает. С момента перехода на SD (и, следовательно, освобождения места во внутренней памяти) и отставание исчезает.

Ли Райан
источник
7

Для некоторых телефонов и устройств (особенно старых) внутренняя память достаточно ограничена. Каждое приложение (и его файлы данных) занимают драгоценное место. Т.е. мои Ideos имеют 512 МБ и были почти заполнены до того, как я начал «эвакуировать» приложения на SD-карту.

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

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

Я обнаружил, что переход на microSD класса 6 (у меня был класс 2 по умолчанию, поставляемый с телефоном) значительно улучшил ситуацию. Тем не менее, моему телефону требуется около 20 секунд, чтобы "выровнять" после холодного запуска.

Путешествующий техник
источник
Ох, класс по умолчанию 2? Это грубо.
Мэтью Рид
5

Последствия для безопасности и производительности

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

От: http://android-developers.blogspot.co.uk/2010/07/apps-on-sd-card-details.html

Пост написан «Сучи Амалапурапу, инженером, который работал над этой функцией». Особенностью является возможность помещать приложения на SD-карту.

арахис
источник
1
Почему внешнее хранилище доступно только для чтения, поэтому запуск приложения не замедляется? Я бы предположил, что производительность чтения важнее для этого.
Эрик
2

По моему опыту, была небольшая или какая-либо ощутимая проблема производительности. У меня был действительно раздражающий опыт управления моей памятью с Nexus One. Я использовал S2E для миграции и не оглядывался назад. Удивительно, что не нужно удалять приложения только для того, чтобы устанавливать новые.

Kendor
источник
-2

Я думаю, что перемещение приложений с внутреннего на внешнее не влияет на производительность.

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

Кунал Радж
источник
-2

Приложения с постоянно открытым сервисом, такие как, например, Viber, WhatsApp, Facebook messenger и т. Д., Могут сильно замедлять пользовательский интерфейс, если их много, поэтому предпочтительно поддерживать приложения с постоянным сервисом на телефоне. память, так как влияние там не заметно по сравнению.

Оливер
источник
Если он постоянно работает, то он загружается в память и не имеет значения, где он установлен после этого начального времени загрузки.
Мэтью Читал
-3

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

user156421
источник
1
Можете ли вы предоставить нам что-то, чему трудно доверять, или проверить, что мы можем использовать для технической оценки вашего ответа? (Подсказка: бенчмаркинг)
Повелитель огня