2015-04-30 2 views
0

Недавно я изменил все мои приложения для работы на SD-карте, указав android: installLocation = "preferExternal" в Manifest.xml. На всех моих тестовых телефонах они отлично тестировались.Работа на SD-карте Проблема

Похоже, для приложения это не требует никаких проблем. Но я замечаю, что большинство приложений на моих телефонах не позволяют работать на SD-карте. Google Chrome, Google Earth, Dropbox, Google Gmail, GolfNow и т. Д. На самом деле ни одно из приложений Google не будет работать на SD-карте.

Я пытаюсь выяснить, почему. Что является недостатком работы на SD-карте? Спасибо, Дин

ответ

0

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

Некоторые идеи ...

  • Внешнее запоминающее устройство, как это традиционно известный, как правило, обеспечивается заглушкой в ​​SD-карт. Конечно, SD-карта может быть демонтирована и/или физически удалена пользователем, поскольку ни одно из установленных на ней приложений не будет работать до тех пор, пока оно не будет повторно вставлено.
  • Некоторые типы чипов RAM имеют гораздо более быстрый доступ, чем другие. Внутренняя оперативная память на устройстве может быть лучше подходит для приложений с процессорами и вычислениями, чем для доступа к SD-картам, которые, как правило, имеют более медленное время доступа как на уровне чипа RAM, так и из-за необходимости проходить через внешнюю шину.
  • Критически важные приложения (в зависимости от защиты пользователей от того, что они должны быть) должны быть доступны на постоянной основе (см. Мой первый пункт). Если пользователь хочет, чтобы их электронная почта была получена с короткими фиксированными интервалами, их приложение электронной почты не может исчезнуть, потому что внешнее хранилище было снято/удалено.
  • Известны проблемы с некоторыми требованиями к приложениям, которые вызывают непредсказуемые результаты, когда приложение установлено на SD-карте. Классическим примером является любое приложение, которое регистрирует BroadcastReceiver для получения действия BOOT_COMPLETED. Завершение загрузки происходит ПЕРЕД НАЧАЛОМ различные части устройства работают и включают в себя установку SD-карты. В этом случае трансляция отправляется, но приложения на SD-карте не работают и не могут ее получить.
  • С течением времени так называемые «внутренние» и «внешние» определения хранилищ становятся все более размытыми - по сравнению с несколькими годами ранее многие устройства Android имеют огромное количество «внутренней» памяти, что делает его менее важным для освобождения путем установки или перемещения приложений на «внешнее» хранилище. Некоторые устройства даже не имеют возможности добавлять внешнюю SD-карту, а «внешнее» хранилище эмулируется из раздела на «внутреннем» хранилище.
  • Еще один момент (язык в щеку) - возможно, разработчики приложений, о которых вы упоминаете, являются эгоистами и просто настаивают на том, чтобы использовать драгоценное «внутреннее» хранилище только потому, что они могут. ;)
+0

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

+0

@ChrisStratton: Как я уже упоминал в одном из своих моментов - более поздние устройства эмулируют так называемое внешнее хранилище по наследственным причинам. Есть еще «старые» устройства, вокруг которых я все еще поддерживаю. Мой стареющий HTC Desire (оригинальная модель), который я использую на ежедневной основе, существует уже 5 лет, по-прежнему работает Froyo и имеет только SD-карту в качестве опции для внешнего хранилища. Извиняюсь за использование архаичного термина «чипы RAM». Я играл с электроникой с детства (и в 1985 году я получил квалификацию инженера-электроники). Я все же обобщаю термины, основанные на их функции. – Squonk

+0

«ОЗУ» исторически не относится к роли, заполненной флеш-памятью сегодня или обсуждаемой в вопросе, - вопрос касается той роли, которая была заполнена диском или лентой в более раннюю эпоху. –

0

Что является недостатком работы на SD-карте

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

+0

Все мои приложения используют Google Cloud Messaging, и я получаю эти сообщения через широковещательный приемник, и он отлично работает на SD-карте. –

Смежные вопросы