C самого первого публичного появления OS Android на рынке история её развития неразрывно была связана с картами памяти. Шли годы, Android обрастал новыми фичами, сервисами и возможностями, а отношение разработчиков ОС к расширяемой памяти менялось чуть ли не каждый год. И теперь, кажется, найдено равновесие в виде опции Adoptable storage, доступной вместе с Android Marshmallow или 6.0.
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/809/3c8/03f/8093c803f3c7237fad84db415760d0cc.jpg)
В самых первых версиях 1.5-1.6 карте памяти была отведена скромная роль хранилища для медиа контента, и ни о какой возможности переноса туда части системы или приложений даже речи не шло. Шло время, магазин приложений рос по экспоненте, и стало очевидно, что объем ПЗУ в устройствах стал явно маловат, и тогда в 2010 году вместе с выходом Android 2.2 Froyo пользователям дали заветную возможность переносить приложения на карту памяти.
Для полного понимания сути процесса переноса необходимо уточнить, что приложения могут быть построены двумя разными способами. Первый предполагает, что приложение и data являются одним целым. Такой подход, как правило, используется в большинстве программ. Во втором действует принцип «приложение отдельно — данные отдельно». Это как раз сделано для игр и сервисов доступа к контенту с разного рода защитой по подписке, когда при размере в 100 мегабайт данные в виде текстур или ресурсов могут занимать до нескольких гигабайт.
Так в Android 2.2 та самая кнопка дала возможность переносить данные приложений, но только там, где разработчики это предусмотрели. Способ был не идеальный, но экономил приличное количество памяти. Тем временем, к моменту появления Android 2.3, все прогрессивные пользователи просто получали root права, ставили известный каждому Titanium backup и с его помощью переносили приложения целиком. Исключение из этого составляли только приложения с виджетами — они переноса просто не терпели.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/f14/588/6cf/f145886cfa57620d479d165ff7e10d82.png)
С выходом Android 4.X и еще большим расцветом устройств на платформе чипмейкера MTK популярна стала опция default write disc, которая, по сути, вмешивалась в системную работу с памятью и позволяла ставить приложения сразу и целиком на карту памяти. Конечно же, опция пользовалась большой популярностью у пользователей.
Отлаженный механизм, как и альтернативную лазейку для энтузиастов, усложнил новый поворот в развитии Android. С появлением Android 5, или Lollipop, с невероятно красивым Material design работа с картой памяти для многих аспектов была серьезно затруднена. Даже просто полный перенос данных в том виде, как это было ранее, происходил не всегда, и те же игры держали часть файлов в одной памяти, а часть — в другой. Таким образом, пользователям предлагалось использовать расширяемую память только для хранения мультимедиа контента. На этом фоне случалось немало коллизий, ведь даже официальные приложения Google подчас не умели работать с переносом данных на карту памяти.
Эту задачу продвинутые пользователи могли бы решить посредством Root прав и редактирования файла конфигурации, но к тому моменту многие производители уже обзавелись механизмами детекции вмешательства в ПО и приравняли его к потере гарантии, что не лишено смысла. Таким образом, владельцам флагманов 2014-2015, например Samsung Galaxy Note 4 или LG G4 приходилось привыкать к новым реалиям ввиду полного отсутствия альтернатив.
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/9d1/048/044/9d1048044e27000578a0a83758a5e838.jpg)
Официальное или близкое к тому объяснение такого шага было построено на том, что, во-первых, данные на карте памяти хранились без шифрования, что опасно, а во-вторых, использование карт памяти низкого качества, которыми изобиловал рынок, могло привести не только к потере данных, но и серьезно повлиять на производительность устройства.
Разумеется, такой шаг вызвал бурю негодования, ведь уже стали широко доступны карты памяти объемом 128-256 Гбайт со сравнительно гуманной ценой, и сама возможность расширения памяти составляла ощутимое конкурентное преимущество перед «фруктовой компанией».
С выходом актуальной версии Android 6 (Marshmallow) команде, ответственной за разработку Android, наконец удалось найти баланс между полным упразднением возможностей карты памяти и теми проблемами, с которыми они пытались бороться.
Итак, мы подобрались к сути. Функция Adoptable storage сохраняет возможность использования карты памяти в ограниченном режиме, как это было ранее, а также позволяет пользователю сделать единый массив из карты памяти и ПЗУ устройства. Ввиду того, что в Nexus 5X и 6P нет карт памяти, самым первым с этой опцией стал продукт HTC One A9, а позже ее получил уже прошлогодний флагман HTC One M9.
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/1fc/1c5/7e6/1fc1c57e6f0adfff201c2311100d6b85.jpg)
Возможность настройки режима работы карты памяти появляется сразу, как только система «видит» её, и не важно, происходит ли это при первом старте или много позже. При выборе опции использования «Внутренней памяти» телефон сначала отформатирует карту памяти, а потом виртуально присоединит ее к системе.
Важно! Данные, которые были на карте памяти «до», пропадут навсегда, так что сохраняйте их заранее.
После успешного форматирования и логического объединения телефон предложит перенести мультимедийные данные (фото, изображения, музыку и так далее) на ту часть памяти, которая относится к карте памяти. Стоит выбрать перманентный перенос и подождать несколько минут, так как процесс сопровождается некоторыми ограничениями в работе Android.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/ec6/1b3/418/ec61b34181ed422b75af057d13bf8f02.png)
Согласно описанию, система должна сама решать, куда ей ставить приложения, но перепроверить вручную будет не лишним.
Для теста выберем два приложения (игры), каждое из которых содержит и исполняемый, и большой объемы дополнительных ресурсов, а также проверим, насколько полно можно перенести небольшое приложение.
Итак, скачиваем Asphalt 8 и запускаем его, чтобы игра смогла докачать 830 мегабайт текстур и прочих данных. После этого даже не обязательно ее запускать сам процесс игры, в разделе «Хранилище» уже будет видна статистика по распределению памяти: игра окажется полностью в памяти телефона. Теперь идем в настройку внутреннего хранилища и выбираем перемещение на карту памяти, после чего снова смотрим статистику распределения памяти. Как и до установки игры, в памяти устройства занято 2,89 ГБ, а в деталях игры явно указано, что и сам файл, и данные «переехали» на карту памяти.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/2c6/2cc/98c/2c62cc98cdd1688f2b00039c5eb2bb4b.png)
Повторим эксперимент с ещё одной игрой, разработчик которой хранит дополнительные файлы непосредственно на стороне магазина Google. Скачиваем и устанавливаем Reckless Racing 3 и повторяем те же действия. И снова приложение хранится в памяти телефона, и снова после перемещения в памяти устройства занято 2,89 ГБ.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/7d1/c9f/6de/7d1c9f6deee1405b5ad35172ccd03a83.png)
После проведенных манипуляций игры были запущены без проблем с производительностью.
В качестве заключительного этапа эксперимента пробуем перенести простой и «лёгкий» Facebook Messenger.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/b27/288/277/b2728827766a80b597ee6eddf36b49b4.png)
И это приложение также полностью переносится на карту памяти. Ура? Ура!
Опция, безусловно, предлагает крайне полезную и удобную возможность, особенно после того, что сделали в Android 5.
Флагманы с очень быстрой памятью, как правило, располагают и приличным объемом ПЗУ, и производители, понимая это, уже удаляют данную функцию. А вот для среднего и бюджетного сегментов поддержка Adoptable storage сможет решить частую проблему нехватки места при установке более чем Х приложений.
Недорогих устройств с последней на сегодняшний день версией Android становится все больше и больше, но вместе с тем растет и необходимость облачного копирования данных, и этим не стоит пренебрегать![](https://habrastorage.org/r/w1560/files/fa7/d16/199/fa7d16199fca4fee89c0b96fa9919513.png)
![](https://habrastorage.org/getpro/geektimes/post_images/809/3c8/03f/8093c803f3c7237fad84db415760d0cc.jpg)
В самых первых версиях 1.5-1.6 карте памяти была отведена скромная роль хранилища для медиа контента, и ни о какой возможности переноса туда части системы или приложений даже речи не шло. Шло время, магазин приложений рос по экспоненте, и стало очевидно, что объем ПЗУ в устройствах стал явно маловат, и тогда в 2010 году вместе с выходом Android 2.2 Froyo пользователям дали заветную возможность переносить приложения на карту памяти.
![](https://habrastorage.org/getpro/geektimes/post_images/18e/244/73e/18e24473e56de6b73a2e45befa7b32a6.jpg)
Так в Android 2.2 та самая кнопка дала возможность переносить данные приложений, но только там, где разработчики это предусмотрели. Способ был не идеальный, но экономил приличное количество памяти. Тем временем, к моменту появления Android 2.3, все прогрессивные пользователи просто получали root права, ставили известный каждому Titanium backup и с его помощью переносили приложения целиком. Исключение из этого составляли только приложения с виджетами — они переноса просто не терпели.
![](https://habrastorage.org/getpro/geektimes/post_images/f14/588/6cf/f145886cfa57620d479d165ff7e10d82.png)
С выходом Android 4.X и еще большим расцветом устройств на платформе чипмейкера MTK популярна стала опция default write disc, которая, по сути, вмешивалась в системную работу с памятью и позволяла ставить приложения сразу и целиком на карту памяти. Конечно же, опция пользовалась большой популярностью у пользователей.
Отлаженный механизм, как и альтернативную лазейку для энтузиастов, усложнил новый поворот в развитии Android. С появлением Android 5, или Lollipop, с невероятно красивым Material design работа с картой памяти для многих аспектов была серьезно затруднена. Даже просто полный перенос данных в том виде, как это было ранее, происходил не всегда, и те же игры держали часть файлов в одной памяти, а часть — в другой. Таким образом, пользователям предлагалось использовать расширяемую память только для хранения мультимедиа контента. На этом фоне случалось немало коллизий, ведь даже официальные приложения Google подчас не умели работать с переносом данных на карту памяти.
Эту задачу продвинутые пользователи могли бы решить посредством Root прав и редактирования файла конфигурации, но к тому моменту многие производители уже обзавелись механизмами детекции вмешательства в ПО и приравняли его к потере гарантии, что не лишено смысла. Таким образом, владельцам флагманов 2014-2015, например Samsung Galaxy Note 4 или LG G4 приходилось привыкать к новым реалиям ввиду полного отсутствия альтернатив.
![](https://habrastorage.org/getpro/geektimes/post_images/9d1/048/044/9d1048044e27000578a0a83758a5e838.jpg)
Официальное или близкое к тому объяснение такого шага было построено на том, что, во-первых, данные на карте памяти хранились без шифрования, что опасно, а во-вторых, использование карт памяти низкого качества, которыми изобиловал рынок, могло привести не только к потере данных, но и серьезно повлиять на производительность устройства.
Разумеется, такой шаг вызвал бурю негодования, ведь уже стали широко доступны карты памяти объемом 128-256 Гбайт со сравнительно гуманной ценой, и сама возможность расширения памяти составляла ощутимое конкурентное преимущество перед «фруктовой компанией».
С выходом актуальной версии Android 6 (Marshmallow) команде, ответственной за разработку Android, наконец удалось найти баланс между полным упразднением возможностей карты памяти и теми проблемами, с которыми они пытались бороться.
Итак, мы подобрались к сути. Функция Adoptable storage сохраняет возможность использования карты памяти в ограниченном режиме, как это было ранее, а также позволяет пользователю сделать единый массив из карты памяти и ПЗУ устройства. Ввиду того, что в Nexus 5X и 6P нет карт памяти, самым первым с этой опцией стал продукт HTC One A9, а позже ее получил уже прошлогодний флагман HTC One M9.
![](https://habrastorage.org/getpro/geektimes/post_images/1fc/1c5/7e6/1fc1c57e6f0adfff201c2311100d6b85.jpg)
Где искать?
Возможность настройки режима работы карты памяти появляется сразу, как только система «видит» её, и не важно, происходит ли это при первом старте или много позже. При выборе опции использования «Внутренней памяти» телефон сначала отформатирует карту памяти, а потом виртуально присоединит ее к системе.
Важно! Данные, которые были на карте памяти «до», пропадут навсегда, так что сохраняйте их заранее.
После успешного форматирования и логического объединения телефон предложит перенести мультимедийные данные (фото, изображения, музыку и так далее) на ту часть памяти, которая относится к карте памяти. Стоит выбрать перманентный перенос и подождать несколько минут, так как процесс сопровождается некоторыми ограничениями в работе Android.
![](https://habrastorage.org/getpro/geektimes/post_images/76b/8d6/00f/76b8d600f315e596d965ebb351c9f16a.png)
![](https://habrastorage.org/getpro/geektimes/post_images/56c/113/59e/56c11359ef1499e26352b7089693f948.png)
![](https://habrastorage.org/getpro/geektimes/post_images/ec6/1b3/418/ec61b34181ed422b75af057d13bf8f02.png)
Согласно описанию, система должна сама решать, куда ей ставить приложения, но перепроверить вручную будет не лишним.
Эксперимент
Для теста выберем два приложения (игры), каждое из которых содержит и исполняемый, и большой объемы дополнительных ресурсов, а также проверим, насколько полно можно перенести небольшое приложение.
Итак, скачиваем Asphalt 8 и запускаем его, чтобы игра смогла докачать 830 мегабайт текстур и прочих данных. После этого даже не обязательно ее запускать сам процесс игры, в разделе «Хранилище» уже будет видна статистика по распределению памяти: игра окажется полностью в памяти телефона. Теперь идем в настройку внутреннего хранилища и выбираем перемещение на карту памяти, после чего снова смотрим статистику распределения памяти. Как и до установки игры, в памяти устройства занято 2,89 ГБ, а в деталях игры явно указано, что и сам файл, и данные «переехали» на карту памяти.
![](https://habrastorage.org/getpro/geektimes/post_images/b49/0be/f79/b490bef79a7ac9cac17cfcc3fb38512d.png)
![](https://habrastorage.org/getpro/geektimes/post_images/bd7/aa5/c25/bd7aa5c25f2f540b309d316e1f5b180f.png)
![](https://habrastorage.org/getpro/geektimes/post_images/2c6/2cc/98c/2c62cc98cdd1688f2b00039c5eb2bb4b.png)
Повторим эксперимент с ещё одной игрой, разработчик которой хранит дополнительные файлы непосредственно на стороне магазина Google. Скачиваем и устанавливаем Reckless Racing 3 и повторяем те же действия. И снова приложение хранится в памяти телефона, и снова после перемещения в памяти устройства занято 2,89 ГБ.
![](https://habrastorage.org/getpro/geektimes/post_images/e07/303/a2c/e07303a2c534fabb8f4172c4dbc0718f.png)
![](https://habrastorage.org/getpro/geektimes/post_images/2ac/45b/500/2ac45b500e976a827be9b6feaecdbe46.png)
![](https://habrastorage.org/getpro/geektimes/post_images/7d1/c9f/6de/7d1c9f6deee1405b5ad35172ccd03a83.png)
После проведенных манипуляций игры были запущены без проблем с производительностью.
В качестве заключительного этапа эксперимента пробуем перенести простой и «лёгкий» Facebook Messenger.
![](https://habrastorage.org/getpro/geektimes/post_images/024/1ad/f8e/0241adf8e95e39a9a69b92097c76054a.png)
![](https://habrastorage.org/getpro/geektimes/post_images/b27/288/277/b2728827766a80b597ee6eddf36b49b4.png)
И это приложение также полностью переносится на карту памяти. Ура? Ура!
Особенности
- При объединенной памяти и подключении к ПК/MAC будет виден только один накопитель, и это нормально, ведь логический раздел тоже один.
- Не стоит соблазняться картами памяти с AliExpress за два доллара: система будет на них ругаться при переносе, предупреждая о возможных проблемах, среди которых могут быть и снижение производительности устройства, и пропадание приложений при перезагрузке телефона. Кроме того, карта памяти в целом все еще уступает топовым решениям, таким как UFS 2.0 в Samsung Galaxy S7/S 7 EDGE.
- Карта памяти в таком режиме форматируется до объединения (не забудьте сохранить данные!) и шифруется по умолчанию. Это не даст использовать её в другом телефоне или устройстве в режиме as-is, только после очередного форматирования.
- Сброс телефона с такой картой памяти до заводских настроек снова приведет нас к форматированию, казалось бы, уже родной карты, так как телефон откажется читать с нее старый контент. Поэтому если и выполнять объединение памяти, то только с настроенной резервной копией всего самого нужного в облако. И это уже не шутки.
Резюмируя
Опция, безусловно, предлагает крайне полезную и удобную возможность, особенно после того, что сделали в Android 5.
Флагманы с очень быстрой памятью, как правило, располагают и приличным объемом ПЗУ, и производители, понимая это, уже удаляют данную функцию. А вот для среднего и бюджетного сегментов поддержка Adoptable storage сможет решить частую проблему нехватки места при установке более чем Х приложений.
Недорогих устройств с последней на сегодняшний день версией Android становится все больше и больше, но вместе с тем растет и необходимость облачного копирования данных, и этим не стоит пренебрегать
![](https://habrastorage.org/files/fa7/d16/199/fa7d16199fca4fee89c0b96fa9919513.png)