Этот пост получился почти вдогонку предыдущему. Снова об SD-картах и причинах, почему в ближайшем будущем Google будет пропагандировать отказ от них. Давайте обсудим этот момент. Очень интересны мнения наших читателей. Ведь покупать сейчас, допустим, Nexus 4 с 16 гигабайтами памяти, которых итак в принципе немного, а на деле доступно пользователю ещё меньше, не серьёзно. Многие бы потребители и рады были отдать чуть больше денег за модель богатую внутренним пространством, да не за что. Нет таких.
32 гигабайта предел, которого многим сегодня опять же не хватает. Вендоры не стремятся вставлять чипы памяти большей ёмкости, хотя те стоят сейчас не очень дорого, вынуждая пользователей покупать смартфоны, которые в принципе не могут удовлетворить потребителей.
Вот почему называние отказа от карт памяти со стороны Google вызывает недоумение в рядах фанатов Android.
В прошлом году на эту тему уже высказывался один из разработчиков системы - Dan Morill. Позже об этом немного рассказал Matias Duarte.
Но оказывается, что с выходом Android 4.2 появилась и очередная причина, которой не было ранее - многопользовательская поддержка. Она уже работает на Nexus 10 и пока что деактивирована на Nexus 4, но кажется, что уже скоро мы увидим поддержку аккаунтов пользователей на самых разных Android-устройствах.
И тут вылезают проблемы и несовместимости. Нельзя обеспечить достаточную безопасность данных пользователей на карте памяти. Ведь обычно карты памяти форматируются в файловую систему FAT, которая мало приспособлена для установки корректных прав владения файлом. Google не могут себе допустить таких дыр в безопасности, если хотят, чтобы их системы воспринимали серьёзно. Представьте себе ПК, где любой пользователь может получить доступ к любым файлам другого пользователи, в том числе и администратора или же системным данным. Немыслимо!
Сюда же можно добавить неумение приложений нормально хранить свои данные. Что будет, если взять SD-карту, на которой ваши приложения сохранили какие-то свои данные в определённых папках, а потом вставить её в другой девайс, где некоторый набор приложений может повториться?
До этого в Android в принципе не было понятия аккаунтов пользователей. Тут можно провести параллели с Windows 98 и Windows 2000, когда только в последней появилась специальная папка Documents And Settings, и данные и настройки различных пользователей стали храниться отдельно.
Вернёмся же к тому, что различные приложения хранят свои данные на картах памяти по-разному. Многие ли из них соблюдают рекомендации и гайдлайны Google? Кто-то складывает свою служебную информацию в отведённые папки, кто-то создаёт свои прямо в корне, а кто-то и вовсе выкидывает отдельные файла даже вне папок, в корень карты памяти. В принципе, Google могли бы попробовать решить проблему, используя спец пути для каждого пользователя (например, /sdcard/user1, /sdcard/user2), но это вызовет кучу несовместимостей с другими девайсами.
Потому, кажется, наилучшим выходом из ситуации сейчас было бы просто предложить пользователям устройства пусть и без карт памяти, но с большим количеством внутренней памяти. Многим бы этого хватило. Правда, всегда остаётся момент, что SD-носители сейчас очень дёшевы, но при этом могут существенно расширить доступное пользователю пространство для хранения данных.
Вот какие комментарии дают по этому поводу причастные к разработке Android:
Robert Mahon: "Причиной отказа от использования SD-карт стало то, что многие приложения для хранения своих данных используют свою собственную случайную иерархию папок на носителе и не прислушиваются к рекомендациям Google. Поэтому их данные раскиданы беспорядочно по карте памяти. Карты памяти же имеют свойства кочевать из устройства в устройство, что, порой, приводит к серьёзным сбоям и несовместимостям и потерям данных".
Dianne Hackborn: "SD-карты сейчас форматируются в файловую систему FAT, чтобы они были совместимы с большинством настольных ПК. А эта файловая система не поддерживает корректную раздачу прав пользователей. Поэтому сейчас получится месиво данных и файлов на картах памяти при введении многопользовательского режима в Android".