Как на андроиде разделить память: как перераспределить внутреннюю память? — Хабр Q&A

Содержание

Android для новичков: распределение встроенной памяти или «почему из 16 Gb вижу только 12Gb?»

Общаясь на форумах и с множеством пользователей планшетов и смартфонов, постоянно сталкиваюсь с непониманием новичков — чем же занята внутренняя память и почему покупая 16 гигабайтную версию, они видят доступными для игр и файлов только 11-12 гигабайт? Именно это и натолкнуло меня на создание этой заметки, в которой я попытаюсь, обычным и понятным языком, разъеснить не такие уж сложные вещи.

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

Содержание:

  1. Разделы внутренней памяти.

  2. Bootloader, recovery, adb и fastboot

  3. Внутренности системы.

  4. Root.

1. Разделы внутренней памяти

Внутренняя память устройства на андроиде разбита на несколько логических дисков (разделов).

Приведу только основные:

Рис.1

Bootloader – здесь находится микропрограмма (загрузчик), позволяющая запускать операционную систему, рекавери и другие сервисные режимы.

Recovery – как видно из названия, тут установлено инженерное меню восстановления или просто Рекавери.

Boot – сердце Андроид ОС, тут находится ядро, драйвера и настройки управления процессором и памятью.

System – системный раздел, в котором находятся все, необходимые для работы Android ОС, файлы, это как папка Windows на вашем диске С:\ (здесь и далее буду проводить ассоциацию с ОС Windows)

Data – раздел для установки приложений и хранения их данных. (Program files)

User – это всем известная sdcard или, проще говоря, место под пользовательские файлы (Мои документы). Здесь я вынужден сделать отступление, т.к. размещение данного раздела имеет несколько вариантов:


  • Раздел отсутствует во внутренней памяти, а вместо него используется внешний накопитель – самый популярный вариант. (рис.1)

  • В устройствах со встроенной памятью большого размера, данный раздел видится как sdcard, а внешняя карта памяти видится как sdcard2 или extsd (могут быть и другие варианты названия). Обычно, встречается на устройствах с Android 3.2. (Рис.2 Вариант 1)

  • Данный вариант пришел на смену предыдущему варианту, вместе с Андроид 4.0. Раздел Userзаменили папкой media на разделе Data, что позволило использовать всю доступную пользователю память для установки программ и хранения данных, а не то количество, что выделил нам производитель. Иными словами sdcard и data являются одним целым.  (Рис.2 Вариант 2)

Рис.2

2. Bootloader, Recovery, adb и fastboot

Теперь, когда мы знаем, что и где находится, давайте разберемся для чего оно там.

Начнем с Bootloader. Это загрузчик, который запускает Андроид, рекавери и т.п. Когда мы нажимаем кнопку включения, запускается загрузчик и, если нет дополнительных команд (зажатых клавиш), запускает загрузку boot. Если же была зажата комбинация клавиш (у каждого устройства она своя) то запускает, в зависимости от команды, recovery, fastboot или apx. На рисунке ниже наглядно показано, что запускает Bootloader и как взаимосвязаны разделы.

Рис. 3

Как видно из рисунка №3, раздел Recovery не влияет на загрузку Андроид ОС, но зачем же он тогда нужен? Давайте попробуем разобраться.

Recovery (рекавери) по сути является маленькой утилитой на ядре Linux и загружается не зависимо от Андроид. Его штатный функционал не богат: можно сбросить аппарат до заводских настроек или же обновить прошивку(заранее скачанную на sdcard). Но, благодаря народным умельцам, у нас есть модифицированные рекавери, через которые можно устанавливать модифицированные (кастомные) прошивки, настраивать андроид, создавать резервные копии и многое другое. Наличие или отсутствие рекавери, а также его версия не влияют на работоспособность Андроид ОС (очень частый вопрос на форумах).

Особо внимательные читатели могли заметить на Рис.3 некий Fastboot. Это интерфейс для работы напрямую с разделами внутренней памяти, при помощи командной строки. Через него можно прошить рекавери, ядро или новую версию прошивки, или же форматировать (удалить всю информацию) тот или иной раздел.

Раз уж зашла речь об интерфейсах, хочу рассказать о еще одном, довольно известном,- adb (android debug bridge). Это, так называемый, режим отладки и назван он так неспроста – через него можно отслеживать работу, как системы в целом, так и отдельных приложений. Но это еще не все, при помощи adb можно получить полный доступ к файловой системе устройства и изменять системные файлы или же вытянуть важную информацию, когда ваш девайс завис на загрузке. Все функции режима отладки описывать не буду т.к. моя цель донести общую информацию, а не подробный обзор о функциях того или иного режима.

3. Внутренности системы

Разобравшись с теорией, давайте запустим Андроид ОС.

Нажимаем кнопку питания – запускается Bootloader, который загружает Ядро (boot), оно, в свою очередь, запускает систему (System), ну, а она уже подгружает программы (data) и пользовательское пространство (user). (Рис.3)

А теперь перейдем в корневой каталог и посмотрим на внутренности самой Android OS:

(Рис.4)

В этой схеме я привел, только необходимые для ознакомления, директории. На самом деле их гораздо больше и на обзор только одной папки System понадобится целая статья.

И так, папка data. Как можно догадаться из названия, она как-то связана с данными, но с какими? Да практически со всеми, это и данные о синхронизации и аккаунтах, пароли к точкам доступа wifi и настройки vpn, и так далее. Среди всего прочего тут можно обнаружить папки app, data и dalvikcache – рассмотрим их назначение:


  • app – сюда устанавливаются программы и игры.

  • data – здесь хранятся данные приложений, их настройки, сэйвы игр и прочая информация.

  • dalvikcache — программная область кэш-памяти для программы Dalvik. Dalvik это Java-виртуальная машина, которая является основой для работы программ, имеющих *.apk расширение. Для того, чтобы сделать запуск программ быстрее – создается их кэш.

Папка System хранит в себе системные данные и все необходимое для работы ОС. Давайте рассмотрим некоторые из этих папок:


  • app – здесь находятся системные приложения (смс, телефон, календарь, настройки и т.п.), а так же приложения установленные производителем устройства (фирменные виджеты, живые обои и т.д.).

  • fonts – системные шрифты

  • media – содержит стандартные мелодии звонков, уведомлений, будильников и звуков интерфейса, а так же загрузочную анимацию (bootanimation)

  • build. prop – Этот файл упоминается, чуть ли не первым, в разговорах и статьях о тонкой настройке системы. В нем содержится огромное количество настроек, таких как плотность экрана, время задержки сенсора приближения, управление wifi, имя и производитель устройства и многие другие параметры.

4. Root

Знать что в какой папке это хорошо, но можно ли что-то с этим сделать?

— Да! Но нужны права суперпользователя (root) или, если проводить аналогию с Windows, права Администратора. Изначально все устройства на Андроид идут без root прав для конечного пользователя, т.е. покупая девайс, мы не являемся в нем полноценными хозяевами. Это сделано как для защиты от вредоносных программ, так и от самого пользователя – ведь, в неумелых руках, полный доступ к системе может привести к «смерти» операционной системы и последующей необходимости в перепрошивке устройства.

«Ну и в чем польза такой опасной штуки?» – спросите Вы.

Сейчас расскажу:


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

  • Тонкая настройка системы вручную или при помощи специальных программ.

  • Удаление системных приложений, мелодий, обоев и т.п.

  • Изменение внешнего вида ОС (например, отображение заряда батареи в процентах)

  • Добавление функционала (поддержка adhoc сетей, к примеру)

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

— Это все здорово, но теперь любая программа сможет получить доступ к «сердцу» операционки и моим данным?

— Нет. Вы сами решаете разрешить, тому или иному приложению, получить root доступ, или нет. Для этого существует программа Superuser или ее продвинутая сестра SuperSU. Без этой или подобной программы воспользоваться root не возможно.

Эпилог

Как видите, Андроид не такая уж и сложная штука. Надеюсь, после прочтения статьи, вы узнали что-то новое или получили ответ на давно интересовавший вопрос.

Как заменить внутреннюю память на внешнюю sd карту на android

Недостаточный объем внутренней памяти на некоторых смартфонах заставляет пользователей задуматься об объединении внутреннего накопителя с картой microSD.

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

Блок: 1/8 | Кол-во символов: 367
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Что такое накопительное хранилище?

Накопительное хранилище – это основной объем памяти вашего смартфона, но при необходимости его можно расширить, использовав для этого СД-карточку. Данная на Андроид называется Adoptable Storage. Это позволит использовать съемную карту microSD, установленную на телефоне Android, в качестве основного хранилища. Таким образом, вы сможете легко решить проблему, как сделать SD-карту основной памятью на Андроиде и преодолеть нехватку в пространстве, если телефон имеет небольшой внутренний объем.

Блок: 2/5 | Кол-во символов: 529
Источник: https://mobila.guru/faqsingle/kak-ispolzovat-sd-kartu-v-kachestve-vnutrennej-pamyati-na-android/

Зачем объединять память на телефоне?

Объединение хранилищ требуется, когда внутреннего накопителя смартфона не хватает для хранения файлов. Часто пользователи просто покупают дополнительно microSD (если на телефоне есть соответствующий разъем) и сохраняют большую часть данных на карточку. Однако здесь есть проблема. Существуют некоторые приложения, которые не могут сохраняться или устанавливаться на внешний накопитель — для них требуется свободное пространство на внутренней памяти. Таким образом, хранилище забивается, а работа смартфона или планшета замедляется.

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

Блок: 2/8 | Кол-во символов: 804
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Особенности использования карты как основного хранилища

Есть ряд некоторых важных особенностей, которые следует учитывать при данной процедуре.

Будет полезным

При использовании накопителя, будь то SD-флешка или USB-накопитель, важно помнить, в каком формате находится данный девайс и поддерживает ли его операционная система Android, а основных файловых форматов существует четыре типа: FAT32 или exFAT, ext4 или f2fs.

Как поменять память телефона на карту памяти андроида? Вопрос не совсем корректный, полностью выполнить замену невозможно, можно лишь как бы «нарастить» дополнительный объем.

Использование вашей SD-card в качестве основного накопителя может быть отличным решением для меломанов и любителей посмотреть сериалы по пути на работу или в длительном путешествии. Но, как зачастую это бывает, расширение памяти всегда упирается в стоимость требуемого девайса, ведь они отличаются как по скорости, так и по объему, а также по адаптируемой функции хранения информации. Вот некоторые нюансы, рассматривать которые можно с разных сторон – как в отрицательную сторону, так и в положительную:

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

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

    Особенно обидно будет, если там присутствуют важные документы или дорогие для памяти фотографии или уникальные видеозаписи.

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

    Обратите внимание

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

  • Безвозвратная интеграция в операционную систему. С использованием функции Adoptable Storage операционная система Android зашифровывает внешнюю SD-карту, используемую как внутреннее хранилище, поэтому она привязывает к определенному устройству, без возможности дальнейшего использования на другом смартфоне.
    Ключ, используемый для шифрования данных на SD-карте, хранится во основной памяти устройства Android. Таким образом, невозможно демонтировать принятое хранилище на другой телефон из-за его зашифрованного характера данных (вынуть карту можно, но она не определится на другом телефоне).
  • Однако вы можете удалить внешнее съемное вместилище с вашего устройства и вернуть его обратно в режим работы простого флеш-накопителя. Устройство запомнит информацию о приложениях, которые находятся на данной карточке, чтобы восстановить настройки, когда принятое устройство будет подключено позже. Таким образом, вы также можете использовать другой накопительный дивайс.

    Важно знать

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

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

Блок: 3/5 | Кол-во символов: 3512
Источник: https://mobila. guru/faqsingle/kak-ispolzovat-sd-kartu-v-kachestve-vnutrennej-pamyati-na-android/

Особенности работы карты памяти в качестве внутренней памяти Android

Можно предположить, что когда к внутренней памяти Android объемом N присоединяется объем карты памяти M, общий доступный объем внутренней памяти должен стать равным N+M. Более того, примерно это отображается и в информации о хранилище устройства, однако по факту все работает несколько иначе:

  • Всё, что возможно (за исключением некоторых приложений, системных обновлений) будет помещаться на внутреннюю память, находящуюся на SD-карте, без предоставления выбора.
  • При подключении Android устройства к компьютеру в данном случае вы будете «видеть» и иметь доступ только к внутренней памяти на карте. То же самое и в файловых менеджерах на самом устройстве (см. Лучшие файловые менеджеры для Android). 

Как итог — после того, момента, когда SD карта памяти стала использоваться как внутренняя память, у пользователя нет доступа к «настоящей» внутренней памяти, а если предположить, что собственная внутренняя память устройства была больше чем память MicroSD, то объем доступной внутренней памяти после описываемых действий не увеличится, а уменьшится.

Ещё одна важная особенность — при сбросе телефона, даже в том случае, если вы извлекли карту памяти из него перед сбросом, а также в некоторых других сценариях восстановить данные с неё невозможно, подробнее об этом: Можно ли восстановить данные с SD карты памяти, отформатированной как внутренняя память на Android.

Блок: 3/5 | Кол-во символов: 1430
Источник: https://remontka.pro/sd-card-as-internal-storage-android/

Что необходимо знать перед объединением памяти?

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

После завершения процесса объединения внешний накопитель станет зашифрованным, и карточку нельзя будет вынуть и использовать на другом устройстве или через компьютерный картридер — данные станут недоступными. Разумно будет приобрести внешний накопитель большого объема, по крайней мере, большего, чем объем внутреннего хранилища.

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

Блок: 3/8 | Кол-во символов: 839
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Инструкция как переключить память с внутренней на карту памяти SD из меню настроек

В зависимости от производителя функция «Карта SD как внутренняя память Android» может ОТСУТСТВОВАТЬ

Для того чтобы «карта SD как внутренняя память Android» стала возможна, вам необходимо выполнить следующие действия:

  1. Выполните резервное копирования данных с SD карты на компьютер
  2. Перейдите в меню «Настройки» Android и далее «Хранилище и USB-накопители» или «Накопители»
  3. Выберите  пункт «SD-карта» (возможно нужно будет перейти в подраздел «Дополнительно»)
  4. Перейдите в меню дополнительных настроек и выбрать «Настройки» или «Накопители»
  5. В новом окне выберите «Внутренняя память» или «Подключить к внутренней памяти»
  6. Прочтите информацию, что после изменения памяти, карта SD будет отформатирована и нажмите кнопку «Очистить и отформатировать»
    • Если после форматирования у вас появится сообщение «SD-карта работает медленно», то необходимо выбрать более быструю карту памяти
  7. По окончанию форматирования необходимо выполнить перенос данных выбрав «Перенести сейчас» и нажать «Далее»
  8. По окончанию всех действий перезагрузите Android, во избежания ошибок в работе операционной системы.

Как вернуть работу карты SD с внутренней обратно во внешнюю память

  1. Выполните резервное копирования данных с SD карты на компьютер
  2. Перейдите в меню «Настройки» Android и далее «Хранилище и USB-накопители»
  3. Выберите  пункт «SD-карта»
  4. Выбрать «Портативный носитель»

Блок: 3/4 | Кол-во символов: 1429
Источник: https://androidp1.ru/karta-pamyati-sd-kak-vnutrennyaya-pamyat-android/

Какую карту памяти microSD выбрать?

Существует два популярных вида внешних накопителей: SDHC и SDXC. Главное различие заключается в объеме данных. SDHC вмещает до 32 ГБ памяти, а SDXC работает с гораздо большими объемами. Также проверьте смартфон на совместимость. К примеру, старые модели гаджетов не поддерживают карты формата SDXC.

Накопители microSD делятся на следующие классы: 2, 4, 6 и 10. Цифра обозначает, с какой минимальной скоростью карточка способна обрабатывать информацию. Например, microSD класса 2 читает и записывает данные с минимальной скоростью 2 Мб/с, а карты класса 10 работают от 10 Мб/с. Скорость обработки данных карты памяти будет влиять на общую скорость работы устройства, поэтому выбирайте microSD не ниже 10-го класса. Также хорошим выбором станут накопители UHS.

Блок: 4/8 | Кол-во символов: 796
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

На заметку

Классическое объединение хранилищ возможно выполнить на многих устройствах, работающих на платформах Android 6.0 и новее. Но смартфоны, в частности, устройства Samsung, Sony и LG, не позволяют объединить память обычным способом. Для выполнения такой операции, потребуется использовать командную строку приложения Shell. Нужно понимать, что это сложный и опасный процесс, способный повредить устройство.

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

Блок: 6/8 | Кол-во символов: 605
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Как вернуть обычное функционирование карты памяти

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

Выберите пункт «Портативный носитель» и, следуя указаниям, выполните форматирование карты памяти.

Блок: 5/5 | Кол-во символов: 334
Источник: https://remontka.pro/sd-card-as-internal-storage-android/

Заключение

В данной статье мной были рассмотрены варианты того, как SD-карту сделать основной памятью на Андроид. Важно учитывать, что данные способы работают далеко не всегда — первый требует рут прав и ОС Андроид ниже, нежели 4. 4.2., а второй работает с ОС Андроид 6.0 и выше (при этом есть ряд современных устройство, например «LG G5», на которых реализация последнего способа невозможна по внутренним причинам). Также учтите, что реализация данных способов выполняется вами на свой страх и риск, и гарантировать 100%-процентный результат в данном случае вряд ли полагается возможным.

Как вы ?

Блок: 5/5 | Кол-во символов: 652
Источник: https://RusAdmin.biz/soveti/kak-sd-kartu-sdelat-osnovnoj-pamyatyu-na-android/

Что произойдет, если извлечь карту microSD?

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

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

Блок: 6/7 | Кол-во символов: 882
Источник: https://mrandroid.ru/kak-prevratit-microsd-kartu-vo-vnutrennjuju-pamjat/

Безопасное удаление внутренней разбитой SD-карты

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

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

Блок: 7/7 | Кол-во символов: 654
Источник: https://mrandroid.ru/kak-prevratit-microsd-kartu-vo-vnutrennjuju-pamjat/

Расширение системной памяти с помощью Link2SD

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

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

Для начала требуется скачать приложение Link2SD. Теперь проделайте следующие действия:

  1. Во время установки Link2SD программа потребует права суперпользователя, для этого нажмите пункт «Разрешить».
  2. После этого на дисплее всплывет диалог выбора 2-го раздела в microSD. Если диалог не возник, его требуется перезапустить самостоятельно, найдя в меню программы пункт «Пересоздать скрипт монтирования».
  3. Далее всплывет меню, в котором поставьте галочку возле пункта ext2. Если возникнет ошибка, попробуйте выбрать другой раздел (ext3 или ext4).
  4. В конце система оповестит об успешном монтировании раздела. Теперь остается только перезагрузить гаджет.

После перезагрузки вновь запустите Link2SD и взгляните на список приложений. Выберите нужную программу и нажмите «Сослать». В следующем меню система поинтересуется, какие файлы требуется перенести — выбирайте все, чтобы освободить внутреннее хранилище от мусора и ускорить работу девайса. В конце просто нажмите «Ок» и следите за процессом. Данные перенесутся в созданный раздел.

Блок: 7/8 | Кол-во символов: 1500
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Итоги

На некоторых устройствах Android внутреннее и внешнее хранилище объединяются простым способом. В качестве альтернативы рекомендуется использовать приложение Link2SD, чтобы разбить microSD на разделы для переноса туда системных приложений. Сопряжение памяти на некоторых устройствах требует скачивания оболочки ADB и работы с командной строкой — сложный и опасный процесс. Вместе этого лучше использовать Link2SD, но потребуются root-права.

Блок: 8/8 | Кол-во символов: 476
Источник: https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory

Кол-во блоков: 22 | Общее кол-во символов: 21020
Количество использованных доноров: 6
Информация по каждому донору:
  1. https://androidp1.ru/karta-pamyati-sd-kak-vnutrennyaya-pamyat-android/: использовано 2 блоков из 4, кол-во символов 2054 (10%)
  2. https://remontka.pro/sd-card-as-internal-storage-android/: использовано 2 блоков из 5, кол-во символов 1764 (8%)
  3. https://mobila.guru/faqsingle/kak-ispolzovat-sd-kartu-v-kachestve-vnutrennej-pamyati-na-android/: использовано 3 блоков из 5, кол-во символов 4555 (22%)
  4. https://mrandroid. ru/kak-prevratit-microsd-kartu-vo-vnutrennjuju-pamjat/: использовано 5 блоков из 7, кол-во символов 3756 (18%)
  5. https://AndroidLime.ru/how-to-combine-internal-and-external-phones-memory: использовано 7 блоков из 8, кол-во символов 5387 (26%)
  6. https://RusAdmin.biz/soveti/kak-sd-kartu-sdelat-osnovnoj-pamyatyu-na-android/: использовано 3 блоков из 5, кол-во символов 3504 (17%)

Меняем местами внутренню и внешнюю память

iOS и Android — две конкурирующие системы, которые по развитию движутся друг к другу. И такое впечатление,что скоро они столкнутся лбами. Если раньше iOS была закрытой операционкой, то сейчас она становится более открытой. Гугловская же ось, в свою очередь, стает более закрытой. Сейчас многим юзерам андроида не предоставляется возможности устанавливать приложения и кэш на внешнюю карту памяти. Все бы ничего, но что если у вас на борту всего  8 гигабайт? Или того хуже — бюджетник с пятью гигабайтами? Плюс пара гигов отдается на нужды системы и мы практически не получаем места для игр и аппов. Но выход есть — поменять местами внутреннюю память с картой micro sd. Для этого есть множество программ, но главным их минусом является совместимость с малым количеством устройств. Я расскажу, как сделать это вручную с любым устройством. Вам понадобится Root, Total Commander и Root Explorer.

ВНИМАНИЕ! Радиус кривизны рук у всех разный и все, что написано в статье, вы выполняете на свой страх и риск. Автор за последствия не отвечает.

Итак, приступим. Запускаем Root Explorer и идем в папку /system/etc и открываем vold.fstab . Перед нами открывается большой список. Нам нужно найти строчку, котороя начинается на dev_mount sdcard /mnt/sdcard (продолжение строчки у всех разное). Это была точка монтирования внутренней памяти. Точку карты памяти найти немного сложнее. Открываем Total Commander и смотрим SD-карта (1). Под этим названием, мелким шрифтом будет написана точка к карте памяти. Например, /mnt/extsd… И теперь, грубо говоря меняем эти две строчки местами. Т.е. было так:

dev_mount sdcard /mnt/sdcard …
dev_mount extsd /mnt/extsd …

Стало:

dev_mount sdcard /mnt/extsd …
dev_mount extsd /mnt/sdcard …

Или вот делал такое своему другу с планшетом Леново. Было:

dev_mount sdcard /storage/sdcard0 [email protected] /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host

dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Стало:

dev_mount sdcard /storage/sdcard1 [email protected] /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host

dev_mount sdcard2 /storage/sdcard0 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Сохраняем это и перезагружаемся. Вуаля! На  планшете вместо 8 — 32 гб встроенной памяти. Думаю, суть вы поняли.

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

4pda использование карты памяти как внутренней. SD карта как внутренняя память Андроид

Одной из новых функций Android 6.0 Marshmallow является возможность использовать MicroSD карту в качестве встроенной памяти. Если у вашего телефона 8 Гб внутренней памяти или даже меньше, новая функция позволит увеличить встроенную память в два раза, а возможно и в четыре.

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

Однако есть некоторые нюансы. Android-разработчик приложения StereoMatch сделал несколько экспериментов и обнаружил, что Android 6.0 Marshmallow действительно позволяет использовать внешние устройства хранения данных в качестве внутренней памяти, но не все так просто.

В двух словах, когда Android 6.0 Marshmallow видит, что вы вставили карту памяти MicroSD, операционная система спросит, хотите ли вы, чтобы MicroSD карта работала как внешний источник памяти или в качестве внутреннего хранилища.

Если вы выбираете портативное хранилище, Android будет рассматривать MicroSD карту, как съемное устройство хранения, то есть как было в более ранних версиях Android. И хотя вы не можете устанавливать приложения на карту памяти, тем не менее, вы будете иметь возможность хранить музыку, фильмы, фотографии и другой контент на MicroSD карте.

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

После того как вы отформатировали MicroSD карту, ваш телефон будет воспринимать ее в качестве встроенной памяти. Однако если вы перейдете в раздел «Хранилище и USB-накопители» в настройках Android, вы даже не увидите, что настоящей встроенной памяти стало больше. Вы увидите только то свободное место, которое доступно на MicroSD карте. И если вы используете файловый менеджер для управления внутренней памятью, он также будет показывать только MicroSD карту.

Конечно, вы все еще можете устанавливать приложения как на настоящую встроенную памяти, так и на карту MicroSD, которая была отформатирована, и теперь работает в качестве внутренней памяти. Но если у вас телефон имеет 8 Гб встроенной памяти и 32 Гб на MicroSD карте, вы сможете использовать только 32 ГБ для хранения музыки, фильмов, игр или других файлов, а не 40 ГБ.

Но что еще более важно: настоящая встроенная память смартфона работает быстрее, чем любая карта MicroSD. Поэтому, если у вас смартфон с 32 Гб встроенной памяти, мы не советуем использовать новую функцию.

С другой стороны, если у вас дешевый Android смартфон с 4 Гб или 8 Гб встроенной памяти, вы можете использовать MicroSD карту, чтобы увеличить встроенную память, однако вы должны быть готовы, что ваш телефон будет работать немного медленней.

Проблема нехватки памяти – одна из основоположных как для ПК, так и для мобильных устройств. При малом количестве свободной памяти система обычно начинает подтормаживать, подвисать, работает нестабильно и ненадёжно. Особенно актуально это для Андроид-устройств, многие из которых изначально обладают довольно небольшим объёмом основной памяти (т.н. «Internal Storage»). В такой ситуации у некоторых пользователей может возникнуть идея попробовать использовать внешнюю SD-карту в качестве основной памяти на их Андроид-устройстве. В данном материале я расскажу, как SD-карту сделать основной памятью на гаджетах Андроид, и какие способы нам в этом помогут.

Разбираем, как SD-карту сделать основной памятью на Андроид

Для осуществления данной задачи вам понадобится скоростная SD-карта (желательно, 10 класса или быстрее). Карты 6, а особенно 4 и 2 классов для таких целей не пригодны, ваша система вследствие их использования существенно замедлит свою работу, что вряд ли понравится кому-то из пользователей.

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


Способ №1. Изменяем содержимое файла Vold.fstab

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

Важно знать, что данный способ работает только на рутированных устройствах, на которых установлена ОС Андроид ниже (!) , нежели версия 4.4.2. В версиях ОС Андроид 4.4.2 и выше указанный файл, скорее всего, вы попросту не найдёте.

Также учтите, что ошибка в реализации данного способа (в частности, добавление в нужные строки лишних символов) может самым печальным образом сказаться на работоспособности вашего устройства. Потому тщательно взвесьте возможные риски, и если, всё-таки, приняли решение, тогда приступайте к его реализации.

Итак, для осуществления данного способа выполните следующее:

Например, это могут быть такие строки:

  • dev_mount sdcard/storage/sdcard0 [email protected]
  • dev_mount sdcard2/storage/sdcard1 auto/xxxxxx

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

После изменений эти строки будут иметь вид:

  • dev_mount sdcard/storage/sdcard1 [email protected]
  • dev_mount sdcard2/storage/sdcard0 auto/xxxxx

Сохраните произведёнными вами изменения, а затем перезагрузите гаджет.

Ещё один вариант как сделать карту памяти основной на андроид:


Способ №2. Используем настройки ОС Андроид 6.0 и выше

Кроме первого способа, в котором я рассмотрел, как переключить память телефона на карту памяти, существует и другой способ, работающий только на настройках ОС Андроид 6. 0 (Marshmallow) или выше, и позволяющий задействовать SD-карту как основную для сохранения файлов и работы с ними. Для его реализации рекомендую сделать копию данных с вашей SD-карты (если таковые на ней имеются), так как данная карта будет отформатирована системой.

Вы хотите использовать карту MicroSD в качестве реального расширения памяти и устанавливать приложения на нее? Для этого вам нужно отформатировать её как внутреннюю память. На большинстве телефонов это сделать достаточно просто, но, к сожалению, некоторые производители, такие как Sony, LG или Samsung, не обладают такой функцией по умолчанию. Но если ваш смартфон оснащен Android Marshmallow или новее, то вы можете воспользоваться командной строкой. Правда после этого избегайте обновлений Андроид. Как объединить память грамотно, мы расскажем в этой статье.

Перейти:

Простой способ

Если вам повезет, ваш смартфон позволит вам сделать это, без подключения его к ПК. Этот метод, скорее всего, будет единственной надеждой, если вы используете более новую версию Android (7. 0 Nougat или 8.0 Oreo). Вот как проверить:

  • Установите SD-карту в телефон Android и дождитесь ее распознавания
  • Откройте Настройки> Храненилище
  • Коснитесь имени вашей SD-карты.
  • Коснитесь трех вертикальных точек в правом верхнем углу экрана.
  • Нажмите «Настройки» .
  • Выберите Форматировать как внутреннюю память .
  • Нажмите «Очистить и форматировать»
  • Затем Android предложит перенести данные

Если ваш смартфон не позволяет вам это делать, процесс становится более сложным. Мы перейдем к нему ниже.

Что делать, если ваш телефон не позволяет вам форматировать microSD в качестве внутренней памяти

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

Точные шаги варьируются в зависимости от версии Android вашего телефона. Этот метод хорошо cработал с Android 6.0 Marshmallow и Android 8.0 Oreo, однако мы столкнулись с трудностями на Android Nougat.

Для телефонов, использующих Android 6.0 Marshmallow

Когда карта MicroSD отформатирована как внутренняя память, приложения могут быть полностью сохранены на ней. Это означает, что если вы загружаете приложение общим размером 2 ГБ, тогда на SD-карте должно быть 2 ГБ места. Если, однако, карта MicroSD отформатирована только как резервная — памяти не хватит, как пишет PLATYPUS_DIARRHEA в Reddit.

Просто потому, что параметр меню невидим, это не значит, что он не работает. Через несколько дней после публикации в Reddit стало известно, что в командной строке можно также отформатировать карту MicroSD как внутреннюю память в Galaxy S7. Мы успешно протестировали инструкции с Samsung Galaxy S7, Sony Xperia Z5 и LG G4, работая под управлением Android 6.0 Marshmallow.

Все три смартфона работают с завода или после обновления с Android 6.0 Marshmallow и имеют слот для карт MicroSD. Кроме того, отсутствует опция меню для форматирования карты MicroSD как внутренней памяти. Функция доступна только в HTC One A9 и в Motorola на всех смартфонах Moto.

Почему Samsung, LG и Sony спрятали этот пункт? Я подключил каждый из трех смартфонов к компьютеру, и каждый из них имел одну карту MicroSD.

Затем я ввел в команды, описанные в своем блоге. Как только вы откроете окно командной строки и подключите смартфон, вы можете ввести первую команду:

Теперь командная строка готова к запуску системных команд на вашем смартфоне. В этом случае мы хотим отформатировать SD-карту или её часть в качестве внутренней памяти. Даже если Sony, Samsung и LG откажут нам в такой возможности в графическом интерфейсе пользователя, мы все равно можем выполнить эту команду через консоль. Сначала, однако, нам нужен идентификатор SD-карты. Узнать его можно следующей командой:

В моем случае диск называется 179.64 . Возможно, у вас он другой. Обратите внимание на точный идентификатор. В следующей команде мы будем форматировать и разбивать карту MicroSD. Ваш контент будет удален. Если на карте есть важные файлы, скопируйте их на другой диск или в компьютер. Если вы хотите постоянно держать карту MicroSD в смартфоне, вы можете теперь разбить всю вашу память. Для этого введите:

  • sm partition disk:179,64 private

Операция занимает несколько секунд или минут, в зависимости от емкости карты памяти. Если вы хотите использовать лишь определенный процент, чтобы его могли читать другие устройства, вы должны исключить его из личного раздела. Команда разделения 50:50 выглядит так:

  • sm partition disk:179,64 mixed 50

Это конец руководства Пола О’Брайена, но не конец работы. Если вы теперь хотите использовать переразмеченную память, вы также должны перенести приложения и данные. Это можно сделать через раздел «Хранилище» в меню настроек Android. Выберите карту MicroSD, затем перейдите в верхнюю правую часть меню и нажмите «Переместить данные» . Вы не можете выбрать этот пункт меню перед разделением.

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

Смартфоны с Android Oreo

Недавние обновления для Android немного изменили правила, но по-прежнему можно использовать этот метод с ADB. Просто начните работу с ADB по методу выше, но после ввода shell adb вам будет предложено установить определенные значения.

Введите следующие строки, чтобы разблокировать возможность форматирования карт microSD в качестве внутреннего хранилища на вашем телефоне:

G8141:/ $ sm set-force-adoptable true
G8141:/ $ sm list-disks
— disk:179,0
G8141:/ $ sm partition disk:179,0 private
G8141:/ $ sm set-force-adoptable false
G8141:/ $ exit


Мы проверили этот метод на Sony Xperia XZ Premium под управлением Android 8.0 Oreo, и это сработало. На скриншотах ниже вы можете увидеть 16-гигабайтную карту microSD, установленную в качестве внутренней памяти:

Проблемы с обновлениями системы и Nougat

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

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

Удалите ненужные приложения и верните данные во внутреннюю память. Затем отформатируйте карту MicroSD как съемный носитель. Только тогда вы сможете безопасно установить обновление для Android.

В чем подвох?

Карты MicroSD работают не так быстро, как встроенная память смартфона. Поэтому не тратьте деньги на более дешевые, а вместо этого покупайте себе карты памяти с разумной пропускной способностью чтения. Extreme Pro и MicroSD от Sandisk оказались, по нашему мнению, лучшими по соотношению цена/качество. При пропускной способности записи 74 Мбайт/с вы не должны испытывать задержек. Такие карты лучше всего подходят для установки в качестве внутренней памяти

Интересно, что только LG G4 смог правильно прочитать расширенную память. Samsung показал неестественно большое количество занятой памяти, а память Sony была даже отрицательной. Тем не менее, у нас не было никаких осложнений, и даже когда мы были подключены к компьютеру, мы смогли получить доступ ко всем нашим данным должным образом, хотя мы могли видеть только общую, а не конкретную часть памяти. Трудности возникли только в случае обновления системы (см. выше).

Увеличение объема памяти: полный успех

Мы подвергли все описанные выше смартфоны единому тесту на выносливость. Мы установили Final Fantasy IX на всех устройствах. Размер игры составляет 1,8 ГБ. После установки легко увидеть, какая из двух видов памяти, внутренняя или SD-карта — использовалась. Во всех случаях, после установки на SD-карту, на 1,8 ГБ меньше места. Успех такой степени не может быть достигнут с SD-картами, отформатированными как внешняя память, поскольку полная миграция данных невозможна.

Сравните значения внутренней памяти и памяти SD-карты на скриншоте для подтверждения.

Что произойдет, если извлечь карту microSD?

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

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

Безопасное удаление внутренней разбитой SD-карты

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

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

Если ваш телефон или планшет на Android 6.0 или 7 Nougat имеет разъем для подключения карты памяти, то вы можете использовать карту памяти MicroSD в качестве внутренней памяти вашего устройства, такая возможность впервые появилась именно в Android 6.0 Marshm .

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

Использование карты памяти SD в качестве внутренней памяти

Прежде чем приступать к настройке, перенесите все важные данные с вашей карты памяти куда-либо: в процессе она будет полностью отформатирована.

Дальнейшие действия будут выглядеть следующим образом (вместо первых двух пунктов можно нажать по «Настроить » в уведомлении о том, что обнаружена новая SD-карта, если вы ее только что установили и такое уведомление отображается):

1. Зайдите в Настройки Хранилище и USB-накопители и нажмите по пункту «SD-карта » (На некоторых устройствах пункт настроек накопителей может находится в разделе «Дополнительно », например, на ZTE).

2. В меню (кнопка справа вверху) выберите «Настроить ». Если в меню присутствует пункт «Внутренняя память », сразу нажмите по нему и пропустите пункт 3.

3. Нажмите «Внутренняя память ».

4. Прочтите предупреждение о том, что все данные с карты будут удалены, прежде чем ее можно будет использовать в качестве внутренней памяти, нажмите «Очистить и отформатировать ».

5. Дождитесь окончания процесса форматирования.

6. Если по завершении процесса вы увидите сообщение «SD-карта работает медленно », это говорит о том, что вы используете карту памяти Class 4, 6 и подобную — т.е. действительно медленную. Ее можно будет использовать в качестве внутренней памяти, но это отразится на скорости работы вашего Android телефона или планшета (такие карты памяти могут работать до 10 раз медленнее чем обычная внутренняя память). Рекомендуется использовать карты памяти UHS Speed Class 3 (U3).

7. После форматирования вам будет предложено перенести данные на новое устройство, выберите «Перенести сейчас » (до переноса процесс не считается завершенным).

8. Нажмите «Готово ».

9. Рекомендуется сразу после окончания форматирования карты как внутренней памяти перезагрузить ваш телефон или планшет — нажмите и удерживайте кнопку питания, затем выберите пункт «Перезагрузить », а если такой отсутствует — «Отключить питание » или «Выключить », а после выключения — снова включите устройство.

На этом процесс завершен: если зайти в параметры «Хранилище и USB накопители », то вы увидите, что место, занятое во внутренней памяти уменьшилось, на карте памяти — увеличилось, а общий объем памяти также увеличился.

Однако, в работе функции использования SD-карты как внутренней памяти в Android 6 и 7 есть некоторые особенности, которые могут сделать использование такой возможности нецелесообразным.

Особенности работы карты памяти в качестве внутренней памяти Android

Можно предположить, что когда к внутренней памяти Android объемом N присоединяется объем карты памяти M, общий доступный объем внутренней памяти должен стать равным N+M. Более того, примерно это отображается и в информации о хранилище устройства, однако по факту все работает несколько иначе:

  • Всё, что возможно (за исключением некоторых приложений, системных обновлений) будет помещаться на внутреннюю память, находящуюся на SD-карте, без предоставления выбора.
  • При подключении Android устройства к компьютеру в данном случае вы будете «видеть » и иметь доступ только к внутренней памяти на карте. То же самое и в файловых менеджерах на самом устройстве.

Как итог — после того, момента, когда SD карта памяти стала использоваться как внутренняя память, у пользователя нет доступа к «настоящей» внутренней памяти, а если предположить, что собственная внутренняя память устройства была больше чем память MicroSD, то объем доступной внутренней памяти после описываемых действий не увеличится, а уменьшится.

Форматирование карты памяти для использования в качестве внутреннего хранилища в ADB

Для Android устройств, где функция недоступна, например, на Samsung Galaxy S7, существует возможность отформатировать SD карту в качестве внутренней памяти с помощью ADB Shell.

Поскольку этот способ потенциально может привести к проблемам с телефоном (и не на любом устройстве может сработать), подробности по установке , включению отладки по USB и запуску в папке с adb я пропущу (Если вы не знаете, как это делается, то, возможно, лучше не стоит браться. А если возьметесь — то на свой страх и риск).

Сами же необходимые команды будут выглядеть следующим образом (карта памяти должна быть подключена):

  • adb shell
  • sm list-disks (в результате выполнения этой команды обратите внимание на выданный идентификатор диска вида disk:NNN,NN — он потребуется в следующей команде )
  • sm partition disk:NNN,NN private

По завершении форматирования, выйдите из adb shell, а на телефоне, в параметрах хранилища откройте пункт «SD карта », нажмите по кнопке меню справа вверху и нажмите «Перенести данные » (это обязательно, иначе продолжит использоваться внутренняя память телефона). По окончании переноса процесс можно считать завершенным.

Как вернуть обычное функционирование карты памяти

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

Выберите пункт «Портативный носитель » и, следуя указаниям, выполните форматирование карты памяти.

Вы хотите устанавливать приложения на MicroSD флешку? Тогда вам нужно будет отформатировать ее как внутреннюю память.

К сожалению, некоторые производители, например, Sony, LG или Samsung, не делают этого в заводских условиях. Но если у вас есть смартфон с операционной системой Android Marshmallow или выше, вам поможет командная строка.

Обновления Android и проблемы Nougat при использовании этого метода

Некоторые читатели сообщают о сложностях при установке системных обновлений. Обновление операционной системы до Android 7.0 Nougat не возможно при форматировании флешки по методу, описанному ниже. Устройства, которые уже обновлены до Android 7.0 Nougat, даже не отвечают на консольные команды.

Поскольку в сети отсутствует соответствующая документация, мы можем только порекомендовать проделать описанные ниже шаги в обратном порядке перед системным обновлением. Не забудьте сделать бэкап фотографий или музыки на компьютере или облачном диске и освободите как можно больше места на SD карте и внутренней памяти смартфона. Удалите ненужные приложения, затем перенесите ваши данные обратно во внутреннюю память. После этого отформатируйте карту MicroSD как съемный носитель. Только после этого можно спокойно приступать к обновлению системы.

С Android 6.0 Marshmallow проблем не было

Если мы форматируем MicroSD как внутреннюю память, мы можем устанавливать любые приложения на карту. Это значит, что если вы скачаете 2 гигабайта приложений, то они займут именно 2 гигабайта на карте. В случае, если мы отформатируем MicroSD как резервную память, то ситуация несколько изменится.

В Android Marshmallow теоретически возможно работать с картой MicroSD в качестве внутренней памяти. Операционная система позволяет переносить на карту приложения и данные этих приложений. Фактически, память смартфона можно расширить. К сожалению, некоторые производители смартфонов убрали из меню возможность форматировать карты как внутреннюю память в версии Android Marshmallow.

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

Нет такой опции

То, что в меню отсутствует опция форматирования памяти флешки как внутренней, это вовсе не означает, что эта опция не работает. Продвинутые пользователи сообщили, что использовали командную строку для форматирования карт MicroSD как внутреннюю память в смартфоне Galaxy S7. Мы успешно протестировали такой вариант на Samsung Galaxy S7, Sony Xperia Z5 и LG G4 с Android Marshmallow.

На всех смартфонах стояла операционная система Android 6.0 Marshmallow (или по умолчанию, или после обновления), а также во всех моделях был слот для карты памяти. Как мы уже упоминали, опция форматирования как внутреннюю память в меню телефона отсутствовала. Только в телефоне One A9 от HTC и всех смартфонах Motorola Moto такая опция сохранилась.

Переходи на темную сторону, расширяй память.Я до сих пор не понимаю, почему Samsung, LG и Sony убрали эту опцию из меню. Я подключил все три смартфона со вставленной MicroSD картой к компьютеру.

После этого в ADB tools набрал нужные команды в командной строке. Как только вы открыли командную строку и подключили смартфон, можете вводить первую команду:

adb shell

Теперь командная строка может выполнять системные команды для смартфона. Нам нужно отформатировать карту памяти или ее часть как внутреннюю память. Даже не имея такой возможности в графическом интерфейсе телефонов Sony, Samsung и LG, мы можем передавать смартфону команды через консоль.

Сначала, однако, нам нужно узнать ID карты. Эту информацию можно узнать с помощью следующей команды:

sm list-disks

В моем случае диск называется 179.64. У вас может быть какое-то другое имя. Запомните точные идентификатор карты. Следующей командой мы отформатируем раздел карты MicroSD. Все данные будут удалены. Не забудьте сохранить важную информацию на другой карте, на компьютере или еще где-нибудь. Если вы не собираетесь вытаскивать карту памяти из телефона вовсе, вы можете разделить всю память карты. Для этого введите следующую команду в консоль:

sm partition disk: 179.64 private

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

sm partition disk: 179.64 mixed 50

Но это еще не конец работы. Теперь если вы хотите использовать карту памяти как внутреннюю память телефона, нужно перенести все приложения и данные. Вы можете сделать это через меню Android. Выберите опцию SD Сart , найдите пункт меню Переместить данные . Если вы не разделили карту, то у вас это не получится.


Переместите данные после того, как разделили память SD карты.Теперь все загружаемые приложения будут записываться на MicroSD. Только системные приложения и обновления будут находиться во внутренней памяти смартфона. Это значит, что вам больше не придется сталкиваться с проблемой нехватки памяти при загрузке или обновлении приложений.


В Sony Xperia Z5 общая память отображается немного странно. Вам в первую очередь нужно обращать внимание на память SD карты.

В чем подвох?

Скорость передачи данных MicroSD на порядок ниже, если сравнивать со встроенной памятью. Поэтому не жалейте денег на карту памяти с высокой скоростью приема и передачи данных. Sandisk Extreme Pro и Extreme Plus MicroSD пока что лучшие из тех, что мы видели. Со скоростью 74 мегабайта в секунду у вас не должно быть никаких задержек.

Любопытно, что только телефон LG G4 правильно считывал информацию с карты. Samsung показывал неестественно высокий уровень занятой памяти, а значения на Sony и вовсе были отрицательными. Тем не менее, у нас не было никаких проблем, и даже при подключении к компьютеру мы могли получить доступ ко всем данным, хотя мы видели только общий раздел, который доступен и другим устройствам. Проблемы появились только при установке системных обновлений.

Расширение памяти: успех!

Мы провели тест расширенной памяти на производительность. На все устройства мы установили Final Fantasy IX. Игра занимает 1.8 GB. После установки можно увидеть, где именно находятся данные игры. Во всех случаях после установки на карте SD отражается на 1.8 GB меньше свободного места. При форматировании карты как съемной памяти этого достичь не удастся, так как не получится перенести данные полностью.

Сравните показатели внутренней памяти и памяти карты на скриншоте.

Что произойдет…

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

Если вы потеряете или повредите SD карту, все данные будут утеряны. Восстановить их не удастся, так как они зашифрованы как внутренняя память. Поэтому не забывайте делать регулярный бэкап. Вот и все, теперь вы можете наслаждаться недорогим способом расширения внутренней памяти вашего телефона с Android Marshmallow.

Безопасное извлечение SD карты, отформатированной как внутренняя память

Чтобы безопасно извлечь карту из смартфона, необходимо выполнить все шаги в обратном порядке. Поскольку внутренней памяти, как правило, недостаточно, вам придется перенести фотографии и другие данные на другой физический или облачный носитель и удалить все приложения. После этого вернитесь в пункт настроек Память и USB и нажмите Перенести данные в пункте Внутренняя память в меню. После этого отформатируйте SD карту как съемный носитель. Обязательно сделайте бэкап, чтобы не потерять данные.

Сработало? Какую карту вы используете? Напишите в комментариях.

Android: Хранение данных и файлов

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Внешняя карта памяти
Состояние на текущий момент (Android 10 Q)

В целом хранение файлов и данных можно условно разделить на две группы: во внутреннем или внешнем хранилище. Но разница между ними довольна тонка. В целом политика Гугла в отношение данных ужесточается с каждой версии системы.

Android поддерживает различные варианты хранения данных и файлов.

  • Специфичные для приложения файлы. Доступ к файлам имеет только приложение, их создавшее. Файлы могут находиться во внутреннем и внешнем хранилище. У других приложений нет доступа (кроме случаев, когда файлы хранятся на внешнем хранилище). Методы getFilesDir(), getCacheDir(), getExternalFilesDir(), getExternalCacheDir(). Разрешений на доступ не требуется. Файлы удаляются, когда приложение удаляется пользователем.
  • Разделяемое хранилище. Приложение может создавать файлы, которыми готово поделиться с другими приложениями — медиафайлы (картинки, видео, аудио), документы. Для медифайлов требуется разрешение READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE.
  • Настройки. Хранение простых данных по принципу ключ-значение. Доступно внутри приложения. Реализовано через Jetpack Preferences. Настройки удаляются, когда приложение удаляется пользователем.
  • Базы данных. Хранение данных в SQLite. На данный момент реализовано через библиотеку Room. Доступ только у родного приложения.

В зависимости от ваших потребностей, нужно выбрать нужный вариант хранения данных.

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


<manifest 
    ...
    android:installLocation="preferExternal">
    ...
</manifest>

В разных версиях Android требования к разрешению для работы с внешним хранилищем постоянно менялись. На данный момент (Android 10, API 29) требования выглядят следующим образом.

Приложение может иметь доступ к собственным файлам, которые находятся во внешнем хранилище. Также может получить доступ к определённым общим файлам на внешнем хранилище.

Доступ к общим файлам достигается через FileProvider API или контент-провайдеры.

Для просмотра файлов через студию используйте инструмент Device File Explorer.

Внешняя карта памяти

Когда появились первые устройства на Android, то практически у всех были внешние карточки памяти, которые вставлялись в телефон. Обычно там хранили фотки, видео и свои файлы. Всё было понятно — были различные методы для доступа к файловой системе. А потом началась чехарда. В телефонах также была и собственная «внешняя» память. Она вроде как и внешняя, но вставлена на заводе и вытащить её пользователь не мог, т.е. практически внутренняя. Затем пошла мода на телефоны, у которых была только такая внутреннее-внешняя карта. Пользователи поворчали, но привыкли. Сейчас встречаются оба варианта. Как правило, у телефонов с спрятанной картой больше памяти и выше степень водонепроницаемости.

Подобные фокусы с картой породили и другую проблему — Гугл озаботился безопасностью файлов и стала думать, как осложнить жизнь разработчику. С выходом каждой новой версии системы компания то давала добро на полный доступ к карточке, то ограничивала, то давала права с ограничениями, то откатывала свои решения назад. Короче, запутались сами и запутали всех.

Попробуем немного разобраться с этим зоопарком. Но помните, что процесс путаницы продолжается.

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

От читателя:

Вот что я (кажется) понял, попытавшись загрузить картинку с внешней SD карточки.

External это не External
«EXTERNAL_STORAGE» называется так не потому, что это внешняя память по отношению к устройству, а потому что она выглядит как внешняя память для компьютера, если устройство подключить кабелем к компьютеру. Причём именно выглядит, потому что обмен идёт по протоколу MTP – устройство только показывает компьютеру список папок и файлов, а при необходимости открыть или скопировать файл он специально загружается на компьютер, в отличие от настоящей флешки, файлы которой становятся файлами в файловой системе самого компьютера. Обмен по MTP позволяет устройству продолжать работать, когда оно подключено к компьютеру.

Emulated это не Emulated
Сначала я пытался прочесть файл с карточки на эмуляторе (из этого так ничего и не вышло). Функция getExternalStorageDirectory() давала мне /storage/emulated/0, и я думал, что «emulated» – это потому что на эмуляторе. Но когда я подцепил реальный планшет, слово «emulated» никуда не исчезло. Я стал рыться в интернете и обнаружил, что «Emulated storage is provided by exposing a portion of internal storage through an emulation layer and has been available since Android 3.0.» – то есть это просто кусок внутренней памяти, которая путём какой-то эмуляции делается доступной для пользователя, в отличие от собственно внутренней памяти.

При этом с точки зрения системы доступная для пользователя папка называется /storage/emulated/0, а при подключении к компьютеру по USB это просто одна из двух главных папок устройства – у меня в Windows Explorer она называется Tablet. Вторая папка у меня называется Card, и это и есть настоящая внешняя карточка.

Нет стандартных средств добраться из приложения до файлов на внешней карточке. Все попытки добраться до настоящей внешней карточки делаются с помощью неких трюков. Самое интересное, что я нашел, это статья на http://futurewithdreams.blogspot.com/2014/01/get-external-sdcard-location-in-android.html — парень читает таблицу смонтированных устройств /proc/mounts, таблицу volume daemons /system/etc/vold.fstab, сравнивает их и выбирает те тома, которые оказываются съёмными (с помощью Environment.isExternalStorageRemovable()).

Оказалось, что несистемным приложениям в принципе запрещено напрямую обращаться к съёмной карточке! Похоже, что это было так всегда, но вот начиная с версии Android 6 Marshmallow написано: внешняя карточка может быть определена как Portable либо Adoptable. Adoptable – это как бы «усыновляемая» память которая может быть «adopted», то есть взята в систему (примерно как кот с улицы в дом – это тоже называется to adopt) и использована как внутренняя. Для этого ее надо особым образом отформатировать и не вынимать, иначе не факт, что система продолжит нормально работать.

Portable – это нормальная съёмная карточка, но несистемным приложениям запрещено обращаться из программ к файлам на ней! Вот что написано в https://source.android.com/devices/storage/traditional.html:

Android 6.0 supports portable storage devices which are only connected to the device for a short period of time, like USB flash drives. When a user inserts a new portable device, the platform shows a notification to let them copy or manage the contents of that device. In Android 6.0, any device that is not adopted is considered portable. Because portable storage is connected for only a short time, the platform avoids heavy operations such as media scanning. Third-party apps must go through the Storage Access Framework to interact with files on portable storage; direct access is explicitly blocked for privacy and security reasons.

Если я правильно понял, этот самый Storage Access Framework позволяет работать с документом на карточке через диалог (открыть файл/сохранить файл), а вот прочитать или записать файл на карточке непосредственно из программы невозможно.

Общий вывод – реально из программы можно работать только с файлами на предоставляемой пользователю части встроенной памяти устройства, а на съёмной карточке – нет.

Это напоминает войну Microsoft с пользователями и разработчиками по поводу диска C:, компания уговаривала не устраивать беспорядок в корне этого диска, а ещё лучше — перенести свои файлы на другой диск. Но явных запретов не было.

Состояние на текущий момент

Гугл утверждает, что с версии Android 10 Q стандартный доступ к файлам будет прекращён. Ещё в Android 4.4 появился Storage Access Framework, который и должен стать заменой для работы с файлами.

Методы Environment.getExternalStorageDirectory() и Environment.getExternalStoragePublicDirectory() признаны устаревшими и будут недоступны. Даже если они будут возвращать корректные значения, ими вы не сможете воспользоваться.

В Android 7.0 добавили исключение FileUriExposedException, чтобы разработчики перестали использовать схему file://Uri.

Можно создавать файлы в корневой папке карточки при помощи Environment.getExternalStorageDirectory(), а также папки с вложенными файлами. Если папка уже существует, то у вас не будет доступа на запись (если это не ваша папка).

Если вы что-то записали, то сможете и прочитать. Чужое читать нельзя.

Кстати, разрешения на чтение и запись файлов не требуются, а READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE объявлены устаревшими.

Другие приложения не могут получить доступ к файлам вашего приложения. Файлы, которые вы создали через getExternalFilesDir(), доступны через Storage Access Framework, кроме файлов, созданных в корне карточки (что-то я совсем запутался). Ещё можно дать доступ через FileProvider.

При подключении USB-кабеля через getExternalFilesDir(), вы можете увидеть свои файлы и папки, а также файлы и папки пользователя. При этом файлы и папки пользователя на корневой папке вы не увидите. Вам не поможет даже adb или Device File Explorer студии.

Что делать?

Пользуйтесь методами класса Context, типа getExternalFilesDir(), getExternalCacheDir(), getExternalMediaDirs(), getObbDir() и им подобными, чтобы найти место для записи.

Используйте Storage Access Framework.

Используйте MediaStore для мультимедийных файлов.

Используйте FileProvider, чтобы файлы были видимы другим приложениям через ACTION_VIEW/ACTION_SEND.

Android 10: Появился новый флаг android:allowExternalStorageSandbox=»false» и метод Environment.isExternalStorageSandboxed() для работы с песочницей. Флаг android:requestLegacyExternalStorage=»true» для приложений, которые ещё используют старую модель доступа к файлам.

Как временное решение можно добавить в блок манифеста application атрибут android:requestLegacyExternalStorage=»true», чтобы доступ к файлам был как раньше в Android 4.4-9.0.

Android 11

Если вы создаёте файловый менеджер, то ему нужны возможности для просмотра файлов. Для этого следует установить разрешение MANAGE_EXTERNAL_STORAGE или использовать атрибут android:requestLegacyExternalStorage=»true» (см. выше).

Дополнительное чтение

Обсуждение на Reddit

Реклама

Как поменять местами внутреннюю и внешнюю память на андроиде. Получаем список доступных устройств хранения информации. Прежде чем начать

dev_mount sdcard2 /storage/sdcard1

Меняем на следующее:

dev_mount sdcard /storage/sdcard1 [email protected] /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard0 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Сохраните результат своей работы и перезагрузите Android! После перезагрузки устройство будет с увеличенным количеством памяти!

Большинство владельцев устройств на Андроид рано или поздно сталкиваются с проблемой нехватки внутреннего пространства для хранения файлов . Регулярная установка приложений постепенно уменьшает количество свободного места в гаджете, что приводит к торможениям, неправильной работе, а то и вовсе полному отказу системы работать нормально. В этом случае поможет замена внутренней памяти Android на карту памяти. Как это сделать и какие ещё существуют способы борьбы с такой неприятностью, рассмотрим далее.

Прежде чем копаться в настройках и все разом приложения переносить на флешку, нужно понять, какие, вообще, существуют типы памяти на вашем Андроид-устройстве:

  • оперативная — необходима для корректной работы приложений, программ и других процессов, которые выполняются в телефоне или планшете;
  • ПЗУ — хранит информацию об операционной системе во время прошивки и эти данные нельзя перенести на сторонние носители;
  • внутренняя — сюда устанавливаются приложения в автоматическом режиме , а также любая пользовательская информация; сколько осталось свободного места система сообщает при установке нового ПО;
  • карточка расширения — внешний накопитель, который призван расширить внутреннюю память устройства и хранить приложения, пользовательскую информацию.

Почему не получается сохранить приложения на SD-карту?

Во многих гаджетах автоматически разрешить установку новых приложений на флешку не получится. Это касается телефонов и планшетов начиная с версии 4.4.2 и заканчивая 6.0.1. В таком случае замена внутренней памяти на карту SD просто необходима, а сделать это можно несколькими способами (в том числе и использовать сторонние приложения). Но сначала нужно узнать версию Андроид, которая установлена на вашем гаджете. Для этого нажимайте последовательно на:

  1. Меню;
  2. Настройки;
  3. О телефоне.

В открывшемся списке и будет указан версия ОС.

Программы для переноса приложений на карту памяти

Разработчики позаботились о пользователях и создали программы для того, чтобы сделать память флешки основной на Андроид. Это особенно полезно для старых версий системы, например, 2.2 или даже более ранних.

Удобное ПО, в котором есть весь необходимый инструментарий для переноса информации с внутренней памяти на внешний накопитель. Интерфейс интуитивно понятный и простой. Доступные для перемещения приложения помечены иконками, при нажатии на которые открывается вся доступная о них информация, а также возможные действия (перенести, скопировать, удалить).

Move2SD Enablerv

Это ПО интересно пользователям по двум причинам. Первая — оно совместимо с разными версиями Android (в том числе и более поздними). А вторая — возможность перенесения данных и приложений, которые в системе помечены как «недопустимые для переноса».

Ещё одна интересная разработка, которая упрощает жизнь пользователей Android-гаджетов . Основные преимущества — простая установка ПО (без необходимости дополнительно качать скрипты и библиотеки) и возможность переносить информацию не полными библиотеками, а только их частями.

Какие ещё есть методы?

Есть ещё вариант, как внутренней памятью на Андроид сделать SD-карту. Если версия вашего гаджета от 2.2 до 4.2.2, то инструкция предельно простая, нажимайте на:

  1. Настройки;
  2. Память;
  3. Диск для записи по умолчанию;
  4. SD-карта.

Напротив флешки появится галочка или кружок, которая свидетельствует об изменении настроек. Теперь установка приложений будет автоматически идти на флеш-накопитель.

Для пользователей Android KitKat и выше процесс будет сложнее и муторнее. Главная проблема заключается в том, что вам потребуется получить root-права для своего устройства . Сделать это можно и в домашних условиях, но есть риск превратить своё устройство в «кирпич», который либо не подлежит ремонту, либо его приведут в чувство только в сервисном центре за дополнительную плату.

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

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

Сразу оговорюсь, что речь пойдет не о программах типа link2sd. Принцип похож, но связывать мы будем не программные каталоги, а каталоги данных этих программ, например /sdcard2/Navigon -> /sdcard/Navigon или /mnt/extSdCard/Books -> /sdcard/Books и т.д.
Кроме того, нам нужен рут (куда ж без него). Кстати, после того как я узнал про эту программу, это для меня очередной аргумент за root.

Многие владельцы андроид смартфонов или таблеток с небольшей встроеной памятью наверняка сталкивались со следущей проблемой: вставлена большая sd карта (например 16, 32 или даже 64 Гигабайт), но после установки нескольких тяжеловесных программ наше устройство или очередная программа с наглостью заявляет, что на карте не хватает места. Иногда сама программа небольшая, но после установки лезет в интернет и тянет на смартфон гигабайты данных.
В очередной раз получив сообщение «Нет места» и заглянув на карточку видим, что она практически пуста, зато внутренняя память устройства забита под завязку.
Это происходит потому, что внутренняя память часто используется как каталог по умолчанию для многих программ. Дело в том, что она монтируется как /sdcard , что исторически всегда было внешней sd картой (раньше так оно и было на всех смартфонах). Внешняя же sd карта монтируется в этом случае как /sdcard2 , /mnt/sdcard2 , /mnt/extSdCard или даже /sdcard/.externalSD . Я так понимаю, что это делается изготовителями, чтобы устройство работало из коробки, т.е. совсем без sd карты.

Многие «недобросовестные» программы всегда хотят читать/писать данные из/в каталог /sdcard/НазваниеПодставить. Редко это можно изменить в настройках программы.
В результате имеем, что имеем, и несколько возможностей чтобы поправить сложившееся положение:
Два последних способа тоже не являются панацеей, т.к. требуют определенных навыков от пользователя, кроме того не достаточно «чисты», например известны проблемы при подключении смартфона к компьютеру через usb (не отмонтируются) и т.д.

Поправить положение поможет программа DirectoryBind , которую хороший человек slig из xda написал для себя и выложил на форуме для всеобщего пользования.

QR-код


Хоть публика здесь технически подкованная, но для неискушенных читателей хабра нужно сделать пару пояснений. Как он сам написал (программа not idiot-proof), т.е. врядли пройдет тест на дурака.

После установки запускаем программу (первый раз естественно навечно разрешаем права Root), нажимаем меню затем «Preferences» и выставляем пути по умолчанию на внешнюю память «Default data path» например /sdcard/external_sd/ и внутреннюю память «Default target path» /sdcard/ . Выходим из меню.

Нажимаем меню, затем «Add new entry»

Теперь создадим новую связь каталогов, например перенесем папку CamScanner на внешнюю карту. Долгое нажатие на путь к папкам открывает небольшой встроеный файловый менеджер, в котором можно создать и/или выбрать папку. Папка на внешней карте должна быть создана (и пуста).

Установив галочку в «Transfer files from target to data» файлы и папки будут перенесены из каталога /sdcard/CamScanner/ в каталог /sdcard/external_sd/CamScanner .

Нужно заметить, что связи после создания не активируются автоматически (серая иконка дискеты, как на скрине внизу для gameloft). Для завершения связывания папок, выбираем галочками нужные связи и нажимаем меню -> «Bind checked». Иконки активных (связанных) папок должны стать зелеными.

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

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

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

Если вы все-таки решились поменять местами внутреннюю и внешнюю память, т.е. переназначить внешнюю sd карту на /sdcard и в настройках устройства нет такой опции — имея рут, это можно легко сделать выполнив следущую операцию:
В Root-Explorer монтируем «/etc» как R/W (если R/O), находим файл «/etc/vold.fstab», сохраняем копию и открываем (длинным кликом) его в Text Editor.
В следующих двух строчках меняем название моунт точек местами: dev_mount sdcard /mnt/sdcard [email protected] /devices/platform/goldfish_mmc.0 … dev_mount sdcard /mnt/external_sd auto /devices/platform/goldfish_mmc.1 … на dev_mount sdcard /mnt/external_sd [email protected] /devices/platform/goldfish_mmc.0 … dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.1 …
Подробнее можно почитать . Там же предлагают, как альтернативу, использовать другую интересную программу Root External 2 Internal SD .
Добавлю, что в обоих случаях, перед переключением, вам нужно скопировать все содержимое папки /sdcard на внешнюю sd карту.
Помните, что после переключения вся ваша система может работать , чем раньше.
Будьте осторожны — нужно понимать, что все что вы делаете под рутом, вы делаете на свой страх и риск, и например сохранение неправильного «vold.fstab» может привести к невозможности загрузить устройство и для лечения нужно будет грузится в рекавери и править «vold.fstab» уже там.

Этот способ можно использовать совместно с DirectoryBind, только теперь наоборот «Default target path» (/sdcard) и все связи созданные в DirectoryBind будут указывать на внешнюю карту.

Практически каждое приложение на Андроид устанавливается во внутреннюю память устройства. А она ведь не резиновая, так что ей свойственно заполняться. Так что с такой ситуацией может столкнуться любой пользователь. На помощь придет SD-карта, объемы которой могут доходить до десятков и даже сотен ГБ. Сейчас мы во всех деталях расскажем, как перенести приложение и кэш на SD карту.

Также стоит отметить, что не каждая карта подойдет для процедуры замены внутренней памяти на внешнюю. Все дело в классах скорости SD-карт, которые разняться от медленных (C2 и С4), до быстрых (С10 и С16). Если рассматриваемые ниже процедуры производить на медленных SD, то перенос данных отразится на общем быстродействии устройства, потому рекомендуется пользоваться только быстрыми флешками.

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

Перенос кэша для версий Android 4.0+

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

ВНИМАНИЕ! Представленные ниже способы можно применить только на устройствах с РУТ-правами. Все дальнейшие операции делаются на ваш страх и риск, никто не дает 100% гарантии, что в случае неудачи вы не получите кирпич. Также мы не несем никакой ответственности за потерю личных данных.

Перенос при помощи сторонних программ

Если приложение не поддерживает стандартный перенос данных, то можно это сделать насильственно при помощи сторонних утилит, таких как:

Принцип работы данных программ очень схож, так что рассмотрим способ на примере Link2SD.

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

Полный перенос android приложений на SD карту памяти

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

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

Разделы на карте памяти можно делать как на компьютере, с помощью таких программ как Paragon Hard Disk Manager 12 Server или MiniTool Partition Wizard Home Edition. Но это достаточно трудоемкий процесс, а потому мы все сделаем прямо на смартфоне, воспользовавшись .

  1. Скачиваем и инсталлируем утилиту.
  2. В настройках устройства находим раздел «Память», где жмем «Извлечь SD».

  3. Заходим непосредственно в AParted и в первой вкладке Create, два раза нажимаем ADD.

  4. В Part 1 оставляем Fat32, а в Part 2 выбираем ext2 или любой другой формат, если знаете для чего они вообще нужны.
  5. Смотрим чтоб поле Format было отмечено и выбираем необходимый размер памяти для каждого из разделов. При этом Part 1 будет оставаться нашей стандартной «флешкой», а вот на Part 2 будут ссылаться приложения.
  6. Жмем APPLY и подтверждаем действие.

  7. Терпеливо дожидаемся окончания процесса.

Теперь приложения и игры можно безопасно ссылать во второй раздел карты памяти, с помощью соответствующей функции Link2SD или его аналога.

Перенос кэша на флешку

Данный способ пригодится для пользователей, которые любят игры с большим кэшем. Сейчас многие крупные проекты (к примеру, серия игр , ) занимают несколько гигабайт. То же самое касается и навигационных карт. Не все устройства могут похвастаться таким объемом встроенной памяти, поэтому на помощь приходит FolderMount. Оно позволяет создавать виртуальные папки, чтобы система по-прежнему считала, что данные приложения находятся во внутренней памяти, хотя фактически все файлы расположены на флешке.

  1. Устанавливаем .
  2. Запускаем и предоставляем права Суперпользователя.
  3. Открываем выдвигающееся меню в левой части экрана.

  4. Переходим в «Анализатор приложений», ищем нужную игру и кликаем по ней.

  5. В открывшемся окне видим объем, который занимают отдельно данные приложения и его кэш.
  6. Нажимаем кнопку «Создать пару» напротив размера кэша.

  7. На вопрос отвечаем «Да» и нажимаем галочку в верхней части экрана, после этого снова необходимо ответить «Да».

  8. В строке уведомлений можно будет увидеть процесс переноса файлов.
  9. Как только перенос завершится (достигнет 100%), снова открываем выдвигающееся меню и выбираем «Список пар».
  10. Осталось лишь нажать переключатель напротив названия игры, которые вы переносили.

Замена внутренней памяти на внешнюю

Этот способ позволяет обмануть систему, т.е Android будет считать SD-карту памятью устройства. Одним из главных преимуществ является тот факт, что все приложения будут автоматически устанавливаться на флешку. Идеально подходит для устройств с очень маленьким объемом внутренней памяти. Для его осуществления понадобится файловый менеджер, лучше всего использовать Total Commander. Смысл способа – поменять местами пути к памяти устройства и флешке.

  1. Устанавливаем
  2. Кликаем по файл, далее «Редактировать».

  3. В файле содержится множество строк, которые начинаются с # (символ решетки). Но нам нужна строка, начинающаяся со слов «dev_mount» и без (!!!) решетки в начале.
    Таких строк должно быть 2: первая обозначает внутреннюю память, вторая – внешнюю.

    Например, если ваши строки:
    dev_mount sdcard/mnt/sdcard
    dev_mount extsd/mnt/extsd

    То они должны стать:
    dev_mount sdcard/mnt/extsd
    dev_mount extsd/mnt/sdcard

    То есть самое главное – поменять местами слова после /mnt/.

  4. Больше ничего изменять не нужно, нажимаем кнопку «Сохранить» (иконка дискеты).
  5. Перезагружаем устройство.

Продолжая тему прошивки девайсов на чипсете Rockchip 2926, поговорим о издевательствах над планшетом авторства компании Prestigio, а именно про мультиридер с обозначением 5274 B. Девайс сей по внешнему виду и техническим характеристикам мало чем отличается от предыдущего героя дня, Enot E102, поэтому детального описания здесь вы не найдете. Как всегда у Prestigio, откровенно китайское происхождение аппарата мастерски облагораживается продуманной прошивкой — в ней нет ничего лишнего и все нужное на первое время работает «из коробки». То есть клиенты аськовконтактов, ридеры и видеоплееры есть и не требуют вдумчивой настройки после первого же включения. Планшеты на чипсете 2926 в последующие месяцы станут массовыми, заменяя в нише бюджетных девайсов на Андроид устаревшие компоненты, такие как Allwinner A13. Ограниченность дешевого устройства остается такой же, как и у остальных — 4 Гб памяти, варварски разделенной на две половины и карта памяти, работающая как склад медиаконтента, не задействованная для кэша приложений. Когда уже разработчики прошивок вспомнят, что карточки памяти стоят сейчас очень и очень дешево и ранние устремления обеспечить работу планшета без карты в этих условиях выглядят, по меньшей мере, анахронизмом. Почему бы не укомплектовывать девайсы хотя бы двухгиговыми картами, оставляя их в прошивке, как sdcard, а не кривое external_sd, не вынуждая пользователей искать способы исправить несправедливость нетрадиционными средствами?

Впрочем, тема лояльности к пользователям и повороту к ним лицом, а не седалищем обширна и здесь ей не место. Начинаем экзекуционные работы над ридером, делая его более удобным в повседневной жизни. Начнем с получения Root. Дабы это дело прошло в высшей степени успешно, скачивайте архив (https://www.dropbox.com/s/rhsvca9epfv53ld/ROOT_icood70pro.zip ), распаковывайте его на диск С, без русских символов в пути (так избегаем ошибок). В планшете ставим галочку «неизвестные источники», «отладка по юсб» и подключаем его к компьютеру. В распакованной папке находим Root.bat и запускаем его. Ждем перезагрузки планшета с появлением среди установленного разнообразия supersu. Это приложение нам надо запустить, согласиться на обновление бинарников и перезагрузить планшет еще раз. Все, права администратора имеются — теперь есть возможность редактировать системные файлы, убрать лишнее, добавить всякое. Если девайс у вас никак не хочет получить Root, есть способ 2. Уберите галочку отладка по юсб в настройках девайса. Установите PdaNet (http://pdanet.co/a/ ), выбирая установку драйверов other. Установите UnlockRoot (http://yadi.sk/d/awamSlwP2mpgQ ). Верните галочку на место. Запустите UnlockRoot и нажмите Root. После окончания его работы перезагрузите планшет и обновите SuperSu.

Если у вас есть карта памяти и вас не устраивает позиция разработчиков прошивки, надо отредактировать vold.fstab. Установите Root Explorer версии 2.21 или выше (предыдущие криво работают с 4.1.1). Быстренько соглашайтесь на запрос разрешить ему доступ куда угодно. Теперь скачайте модифицированный vold.fstab (http://yadi.sk/d/P-SKlRTG4t2Vu ), подменяющий карточку и раздел внутренней памяти, перенесите его на карту памяти. Переименуйте его, убрав единичку из названия. Через Root Explorer найдите этот файл, нажмите на него долгим тапом (нажатием, если кто не любит англицизмы) и нажмите скопировать. Теперь отыщите каталог etc. Над каталогом вы найдете кнопку mount RW. Нажмите на нее. Внизу окна программы нажмите «вставить» (paste). Планшет спросит, заменять ли файлик вашим кастомом. Соглашайтесь. Долгим нажатием на замененный файл вызовите подменю, где выберите «разрешения» (permission). Вы видите перед собой квадрат по три окошечка в ряд. Установите галочки точно так же, как на скриншоте и примените выбор. Осталось лишь выйти из программы, перезагрузить планшет и оставить его загружаться. В зависимости от типа и качества карты памяти (лучше всего класс 10 от нормального, а не нонейм производителя), планшет будет загружаться от 5 минут до получаса. Если все прошло хорошо, то вас ждет обновленный раздел «память», где карточка наконец-то видится, как Sdcard и ее видят приложения для переноса кэша и программ на microSD.

Установка рекавери CWM связана с большим риском убить загрузчик — постарайтесь не делать ее, если нет острого желания экспериментов или необходимости установить кастомную прошивку на основе 4.2.2. На момент написания текста таковой не обнаружено, поэтому в данный момент установка CWM на Prestigio MultiReader 5274 имеет лишь теоретическую пользу. Итак, скачайте CWM (). Его установка может быть сделана несколькими путями. Самый правильный и почти безопасный — переименовать архив в update.zip и положительно ответить на запрос планшета перезагрузиться. Теперь зайти в рекавери можно просто и элегантно, зажав кнопку увеличения звука и включения. Когда появится зеленый робот, отпустите кнопки, зажмите звук + и однократно нажмите кнопку включения. Появится известное почти всем меню рекавери CWM, где доступно все — от монтирования разделов до бекапов и прошивочного дзена. Удобно перезагружаться в рекавери и через приложение Goo Manager с маркета. Другие способы внедрить CWM на данный момент слишком часто окирпичивают аппарат и о них я рассказывать не буду. Достаточно сказать, что происходит установка через adb shell, что поможет вам поискать примерную инструкцию, как сие делается и винить в неработающем устройстве кого-то другого.

И последнее на сегодня. Если так случилось и в результате каких-то непредвиденных обстоятельств (например, установки рекавери CWM) или неправильного расположения звезд на небе планшет отказался работать, то постараемся вернуть его в мир живых перепрошивкой. Ввиду полной идентичности перепрошивочной инструкции с предыдущем пациентом, Enot E102, читайте об этом . Повторять ее не вижу резона, поскольку разница только в файле, который вы будете внедрять. Образ прошивки находится на официальном сайте (http://www.prestigio.com/catalogue/MultiReaders/MultiReader_5274/PER5274B#/product-support/firmware ). Там же есть и сама программа.

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

Как объединить память телефона и карту памяти

Многие пользователи смартфонов рано или поздно сталкиваются с проблемой нехватки памяти. Особенно это касается бюджетных телефонов. 16 Гб — это немного. Тем более, если ПЗУ еще меньше — 8 Гб (да, бывают и такие модели).

Покупка microSD только отчасти решает эту проблему. Владельцам Android-телефонов мы советуем воспользоваться функцией Adoptable Storage, которая позволяет объединить ПЗУ и карту памяти в единый логический раздел.

К сожалению, функция Adoptable Storage появилась только в последних версиях Android (начиная с Android 6). Мы покажем, как правильно объединить память и microSD в ОС Android 7 (в других версиях Андроида эта процедура проходит аналогично).

До объединения у вас есть две памяти: внутренняя память телефона (ПЗУ) и внешняя память (microSD). Даже если вы назначите карту памяти диском для записи по умолчанию, часть данных все равно будет записываться в ПЗУ. И память смартфона со временем заполнится (даже если на карте памяти будет много свободного места). Придется заниматься ее очисткой.

А вот после объединения вы получите единую память. Ее объем будет равен ПЗУ+microSD.

Шаг 1
Выключаем смартфон, вставляем карту памяти (microSD). Телефон должен быть заряжен минимум на 15-20% (не допускайте разряда во время процедуры настройки и объединения!).

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

Шаг 3
Вам будет предложено настроить карту как Портативный носитель (стандартное использование), либо как Внутренняя память. Выбирайте последнее.

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

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

Шаг 5
После завершения форматирования высветилось сообщение о том, что SD-карта работает медленно, что может вызывать проблемы и снизить скорость обмена данных. Можете проигнорировать это сообщение, но старайтесь использовать высокоскоростные карты класса 10.

Шаг 6
Перенесите предложенную часть данных с внутренней памяти на карту памяти.

Шаг 7
Вот и все. Мы получили объединенный объем памяти в размере 37,24 Гб (раньше было 8 Гб ПЗУ и 29,24 Гб microSD). Теперь проблема с нехваткой памяти у вас появится нескоро.


механизмов IPC системы Android. Введение | by PK

Как мы знаем, в системе Android каждое приложение работает в своем собственном процессе. Когда приложение загружается, диспетчер приложений намекает, что Zygote.Zygote разветвляется и создает копию виртуальной машины (ВМ). Таким образом, приложение получает «теплую» виртуальную машину с загруженными библиотеками. Все приложения для Android изолированы друг от друга, поэтому каждый процесс не зависит друг от друга. Концепция песочницы используется для управления или содержания различных уровней разрешений, ограниченных для каждого отдельного приложения.Итак, IPC необходим для связи между приложениями / службами / системными службами. В рамках одного процесса может быть несколько потоков, которые совместно используют память процесса, но имеют свой собственный стек.

IPC является основой любой программной системы / ОС. Android предоставляет 2 способа достижения IPC.

  1. ashmem

2. Binder

3. Socket

Вышеупомянутые 3 способа поддерживают IPC в устройстве. Позвольте мне сначала коснуться ашмема.

ashmem (Анонимная подсистема разделяемой памяти) — это концепция, аналогичная POSIX SHM (Shared Memory).Разница в том, что ashmem утверждает, что решает проблему утечки памяти. ashmem недоступен для приложений Android, но они используются системным программным обеспечением / процессами низкого уровня. Компоненты системного сервера, такие как SurfaceFlinger, AudioFlinger и т. Д., Используют ashmem для IPC. ashmem работает быстро. Другой пример использования ashmem — виртуальная машина. Когда код .oat предоставляется виртуальной машине с помощью ashmem. Когда процесс хочет связаться с другим процессом, он создает общую область памяти, а затем делится файловым дескриптором этой области памяти с другим процессом, с которым он хочет связаться.Этот файловый дескриптор отправляется другому процессу через Binder. Системные процессы используют ashmem через интерфейс IMemory, который недоступен или недоступен разработчикам приложений.

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

По сути, ashmem — это способ, используемый процессами системного уровня, а не прикладными процессами для IPC

История связывания

Структура связывания имеет историю. Это было в основном разработано для компьютеров Be. Затем он был передан Palm и встроен в Palm OS. В 2005 году Binder Framework была сделана с открытым исходным кодом под названием OpenBinder. (Ссылка: https://en.wikipedia.org/wiki/OpenBinder). За фреймворком Binder стоит команда под руководством Дайан Хакборн. Еще одно известное имя в мире Биндера — Джордж Хоффман.Позже Google нанял эту команду для реинжиниринга Binder Framework, недавно разработавшего Binder Framework, с тех пор он является частью Android.

Где переплет?

Говоря о Binder, будьте осторожны, кто ваша аудитория. Под словом «Binder» разработчик приложения может представить себе интерфейс Binder, доступный в структуре, для привязки к службе приложения. С другой стороны, Binder имеет большую интенсивность, чем просто интерфейс Binder (IBinder) на уровне фреймворка, который предоставляется разработчикам приложений.Для разработчиков приложений доступно несколько методов IPC, таких как Messenger, Intent, AIDL и сам интерфейс IBinder. На заднем плане все они основаны на Binder. AOSP показывает, что каждый из них использует интерфейс IBinder. Говоря Binder, я имею в виду всю «Binder Framework» в Android. Итак, где это связующее, о котором я говорю?

Рис. 1 Где Binder?

Да, Биндер везде. На диаграмме выше показано краткое представление системы Android. Есть ядро ​​Linux, библиотеки, ART, Framework и приложения.Некоторые примеры содержимого каждого блока показаны (со стрелкой). В каждом блоке показаны синие прямоугольники, каждый из которых является компонентом структуры Binder. Часть Binder Framework находится в ядре, которое называется Binder Driver (/ dev / binder). Существует Libbinder.so, библиотека Binder в составе библиотек Android. Затем есть интерфейс IBinder в Android Framework. Разработчик приложения создает экземпляр этого для достижения IPC на уровне приложения. Итак, технически Binder проходит через системный стек.

В системе Linux доступно несколько механизмов IPC, таких как файлы, сигналы, сокеты, каналы, на более высоком уровне, D-Bus. Ядро Linux, используемое с Android, не содержит этих мощных (?) Механизмов. Вместо этого Binder заменяет их все.

Строительные блоки Binder

Не совсем строительные блоки, но важные концепции или абстрактные идеи Binder:

  • Binder Context Manager
  • Служба и клиент Binder
  • Токен Binder
  • Протокол Binder
  • Драйвер Binder

Binder Context Manager

При запуске системы драйвер Binder позволяет одному процессу зарегистрироваться в качестве диспетчера контекста.Этим процессом является диспетчер служб системы Android. Как мы знаем, Service Manager — это центральный реестр всех системных служб.

Служба связывания и клиент

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

Связывающий жетон

Связывающий жетон предназначен для идентификации. Когда сообщение Binder передается другому процессу, оно передается с токеном идентификации, чтобы идентифицировать отправителя

Протокол Binder

Протокол Binder — это не что иное, как различные шаги, которые выполняются при передаче сообщения от одного процесса другому. .Невозможно передать сообщение, как показано ниже.

Рис. 2 Не так!

Вместо этого рассмотрите диаграмму ниже.

Рис. 3 Шаг 1

На диаграмме выше есть 2 процесса A и B, и A хочет отправить сообщение (желтое поле) в B. Эти 2 процесса должны быть «привязаны» к друг друга с помощью интерфейса IBinder (Intent, AIDL, IBinder, Messenger, значения не имеет). Зеленые эллипсы, показанные на каждом процессе, представляют собой области памяти только для чтения, из которых соответствующие процессы могут считывать данные, но не могут записывать в них.Только ядро ​​может записывать данные в эти зеленые эллипсы. Как и любой другой драйвер устройства, Binder Driver также реализует функции ioctl (). Процесс A вызывает эту функцию, чтобы передать сообщение драйверу подшивки. Драйвер Binder предоставляет специальную структуру с именем binder_write_read. Сообщение передается в этом формате.

Рис. 3 Шаг 2

Как показано на рисунке выше, теперь данные были перенесены в пространство ядра. Отсюда ядро ​​передает данные на другую сторону канала связи, и, наконец, они попадают в область памяти процесса B, как показано ниже.

Рис. 4 Шаг 3

Отсюда процесс B считывает его для дальнейшей обработки.

Binder Driver

Как сказано выше, binder driver — это программный компонент, который загружается в пространство ядра и отвечает за передачу данных из памяти одного процесса другому. Доступ к нему можно получить с помощью вызовов ioctl ()

Примечание. Область памяти только для чтения отображается в области процесса. Но на самом деле они управляются ядром

Binder Features

Binder поддерживает

  • 2-стороннюю связь
  • Управляет: потоками, памятью, сопоставлением объектов, подсчетом ссылок
  • Уведомления: когда служба умирает, Binder заботится об уведомлении клиент о смерти службы
  • Идентификация и безопасность: Совершено с использованием токена Binder; также на основе UID и PID
  • Маршалинг данных транзакции, также известный как parcels
  • Распределяет файловые дескрипторы областей памяти ashmem между процессами
  • Режим локального выполнения: если связь осуществляется внутри процесса, она не проходит через ядро, она использует локальную разделяемую память

Это было бы неожиданно, но Android использует сокеты для связи с одним компонентом системы.Это Зигота. Когда Zygote загружается в холодном режиме (запускается через app_process из init.rc), он запускает виртуальную машину и оставляет сокет открытым для прослушивания инструкций из диспетчера приложений. Когда пользователь запускает приложение, диспетчер приложений сообщает о Zygote через этот открытый сокет.

Управление памятью вашего приложения | Разработчики Android

Оперативная память (RAM) является ценным ресурсом в любой среде разработки программного обеспечения, но это даже более ценно в мобильной операционной системе, где физическая память часто ограничена.Хотя виртуальная машина Android Dalvik выполняет обычную сборку мусора, это не позволяет вы должны игнорировать, когда и где ваше приложение выделяет и освобождает память.

Чтобы сборщик мусора мог освободить память из вашего приложения, вам нужно избегать введение утечек памяти (обычно вызванных удержанием ссылок на объекты в глобальных членах) и освободить любые объекты Ссылка в соответствующее время (как определено обратные вызовы жизненного цикла обсуждаются ниже). Для большинства приложений сборщик мусора Dalvik занимает забота обо всем остальном: система восстанавливает выделенную память, когда соответствующие объекты уходят объем активных потоков вашего приложения.

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

Как Android управляет памятью

Android не предлагает пространство подкачки для памяти, но использует подкачку и отображение памяти. (mmapping) для управления памятью.Это означает, что любая память, которую вы изменяете — будь то путем выделения новые объекты или касание MMAP-страниц — остается в ОЗУ и не может быть выгружено. Таким образом, единственный способ полностью освободить память из вашего приложения — это освободить ссылки на объекты, которые вы можете держать, делая память доступной сборщику мусора. Это за одним исключением: любые файлы, вставленные без изменений, такие как код, могут быть выгружены из ОЗУ, если система хочет использовать эту память в другом месте.

Совместное использование памяти

Чтобы уместить все необходимое в ОЗУ, Android пытается совместно использовать страницы ОЗУ между процессами.Это можно сделать это следующими способами:

  • Каждый процесс приложения является ветвлением существующего процесса под названием Zygote. Процесс Zygote запускается, когда система загружается и загружает общий код и ресурсы фреймворка. (например, темы деятельности). Чтобы запустить новый процесс приложения, система разветвляет процесс Zygote, а затем загружает и запускает код приложения в новом процессе. Это позволяет выделить большую часть страниц ОЗУ для код фреймворка и ресурсы, которые будут использоваться всеми процессами приложения.
  • Большинство статических данных отображается в процессе.Это не только позволяет передавать одни и те же данные. между процессами, но также позволяет выгружать его при необходимости. Примеры статических данных включают: Код Dalvik (поместив его в предварительно связанный файл .odex для прямого сопоставления), ресурсы приложения (спроектировав таблицу ресурсов как структуру, которую можно сопоставить, и выровняв zip записи APK) и традиционные элементы проекта, такие как собственный код в файлах .so .
  • Во многих случаях Android разделяет одну и ту же динамическую RAM между процессами, используя явно выделенную разделяемые области памяти (с помощью ashmem или gralloc).Например, оконные поверхности используют общие память между приложением и компоновщиком экрана, а буферы курсора используют общую память между контент-провайдер и клиент.

Из-за широкого использования разделяемой памяти для определения того, сколько памяти использует ваше приложение, требуется уход. Методы правильного определения использования памяти вашим приложением обсуждаются в разделе «Исследование использования оперативной памяти».

Выделение и освобождение памяти приложения

Вот несколько фактов о том, как Android выделяет и освобождает память из вашего приложения:

  • Куча Dalvik для каждого процесса ограничена одним диапазоном виртуальной памяти.Это определяет логический размер кучи, который может увеличиваться по мере необходимости (но только до предела, определяемого системой. для каждого приложения).
  • Логический размер кучи не совпадает с объемом физической памяти, используемой кучей. При проверке кучи вашего приложения Android вычисляет значение, называемое пропорциональным размером набора (PSS), который учитывает как грязные, так и чистые страницы, которые используются совместно с другими процессами, но только в количество, пропорциональное количеству приложений, совместно использующих эту оперативную память. Эта сумма (PSS) — это то, что система считается вашим объемом физической памяти.Для получения дополнительной информации о PSS см. Investigating Your Руководство по использованию оперативной памяти.
  • Куча Dalvik не сжимает логический размер кучи, что означает, что Android не дефрагментируйте кучу, чтобы закрыть пространство. Android может только уменьшить размер логической кучи, когда есть неиспользуемое пространство в конце кучи. Но это не означает, что кучей используется физическая память. не может сжиматься. После сборки мусора Dalvik обходит кучу и находит неиспользуемые страницы, а затем возвращает эти страницы в ядро ​​с помощью madvise.Итак, парные выделения и освобождения больших фрагменты должны приводить к освобождению всей (или почти всей) используемой физической памяти. Тем не мение, восстановление памяти из небольших выделений может быть гораздо менее эффективным, потому что используемая страница для небольшого выделения все еще может использоваться что-то еще, что еще не было освобождено.

Ограничение памяти приложения

Для поддержания функциональной многозадачной среды Android устанавливает жесткое ограничение на размер кучи. для каждого приложения. Точный предел размера кучи зависит от устройства в зависимости от объема оперативной памяти на устройстве. есть в наличии в целом.Если ваше приложение достигло емкости кучи и пытается выделить больше памяти, он получит ошибку OutOfMemoryError .

В некоторых случаях вам может потребоваться запросить систему, чтобы точно определить, сколько места в куче вы используете. доступны на текущем устройстве — например, чтобы определить, сколько данных можно безопасно хранить в кеш. Вы можете запросить эту цифру в системе, вызвав getMemoryClass () . Это возвращает целое число, указывающее количество мегабайты доступны для кучи вашего приложения.Это обсуждается ниже, в разделе Проверьте, сколько памяти вам следует использовать.

Переключение приложений

Вместо использования пространства подкачки, когда пользователь переключается между приложениями, Android сохраняет процессы, которые не размещают компонент приложения переднего плана («видимый для пользователя») в кэше наименее недавно использованного (LRU). Например, когда пользователь впервые запускает приложение, для него создается процесс, но когда пользователь покидает приложение, этот процесс не завершает , а . Система хранит процесс в кэше, поэтому, если позже пользователь возвращается в приложение, процесс повторно используется для более быстрого переключения приложений.

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

Дополнительная информация о том, как кэшируются процессы, когда они не выполняются на переднем плане, и как Android решает, какие может быть убит доступен в руководстве по процессам и потокам.

Как ваше приложение должно управлять памятью

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

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

Экономно пользуйтесь услугами

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

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

Лучший способ ограничить срок службы вашей службы — использовать IntentService , который завершает как только он завершит обработку намерения, которое его запустило.Для получения дополнительной информации прочтите Запуск в фоновой службе .

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

Освободите память, когда пользовательский интерфейс станет скрытым

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

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

Обратите внимание, что ваше приложение получает обратный вызов onTrimMemory () с TRIM_MEMORY_UI_HIDDEN только когда все компоненты пользовательского интерфейса вашего процесса приложения становятся скрытыми от пользователя. Это отличное из обратного вызова onStop () , который вызывается, когда экземпляр Activity становится скрытым, что происходит, даже когда пользователь переходит на другое действие в вашем приложении. Поэтому, хотя вы должны реализовать onStop () , чтобы освободить ресурсы активности, такие как сетевое соединение или отменить регистрацию широковещательной передачи приемники, обычно не следует освобождать ресурсы пользовательского интерфейса до тех пор, пока вы не получите onTrimMemory (TRIM_MEMORY_UI_HIDDEN) .Это гарантирует что если пользователь переходит на назад на из другого действия в вашем приложении, ваши ресурсы пользовательского интерфейса все еще доступен для быстрого возобновления деятельности.

Освободить память, когда память становится нехваткой

На любом этапе жизненного цикла вашего приложения обратный вызов onTrimMemory () также сообщает вам, когда общий объем памяти устройства становится низким. Вы должны ответить дальнейшим высвобождением ресурсов на основе на следующих уровнях памяти, доставленных onTrimMemory () :

  • TRIM_MEMORY_RUNNING_MODERATE

    Ваше приложение запущено и не считается убиваемым, но на устройстве не хватает памяти и система активно убивает процессы в кэше LRU.

  • TRIM_MEMORY_RUNNING_LOW

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

  • TRIM_MEMORY_RUNNING_CRITICAL

    Ваше приложение все еще работает, но система уже убила большинство процессов в Кэш LRU, поэтому вам следует освободить все некритические ресурсы сейчас.Если система не может вернуть достаточного количества ОЗУ, он очистит весь кеш LRU и начнет уничтожать процессы, которые система предпочитает поддерживать работу, например, те, на которых размещена работающая служба.

Кроме того, когда процесс вашего приложения в настоящее время кэширован, вы можете получить одно из следующих уровни из onTrimMemory () :

  • TRIM_MEMORY_BACKGROUND

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

  • TRIM_MEMORY_MODERATE

    В системе не хватает памяти, а ваш процесс находится примерно в середине списка LRU. Если система становится еще более ограниченной для памяти, есть шанс, что ваш процесс будет убит.

  • TRIM_MEMORY_COMPLETE

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

Поскольку обратный вызов onTrimMemory () был добавлен на уровне API 14, вы можете использовать onLowMemory () обратный вызов в качестве запасного варианта для более старых версий, что примерно эквивалентно событию TRIM_MEMORY_COMPLETE .

Примечание: Когда система начинает уничтожать процессы в кэше LRU, хотя он в основном работает снизу вверх, он уделяет некоторое внимание тому, какие процессы потребляют больше памяти и, таким образом, в случае отключения обеспечат системе больший прирост памяти. Таким образом, чем меньше памяти вы потребляете в целом в списке LRU, тем выше ваши шансы. чтобы оставаться в списке и иметь возможность быстро возобновить.

Проверьте, сколько памяти вам следует использовать

Как упоминалось ранее, каждое устройство под управлением Android имеет разный объем оперативной памяти, доступной для system и, таким образом, предоставляет различный лимит кучи для каждого приложения.Вы можете вызвать getMemoryClass () , чтобы получить оценку доступной кучи вашего приложения в мегабайты. Если ваше приложение пытается выделить больше памяти, чем доступно здесь, оно получит OutOfMemoryError .

В особых случаях вы можете запросить больший размер кучи, установив значение largeHeap атрибут «true» в манифесте <приложение> ярлык. Если вы это сделаете, вы можете вызвать getLargeMemoryClass () , чтобы получить оценку большого размера кучи.

Однако возможность запрашивать большую кучу предназначена только для небольшого набора приложений, которые могут оправдать необходимость использования большего объема оперативной памяти (например, большого приложения для редактирования фотографий). Никогда не запрашивайте большая куча просто потому, что у вас закончилась память и вам нужно быстро исправить — вы следует использовать его только тогда, когда вы точно знаете, где выделяется вся ваша память и почему она должна быть сохраненным. Тем не менее, даже если вы уверены, что ваше приложение может оправдать использование большой кучи, вам следует избегать запрашивая его в максимально возможной степени.Использование дополнительной памяти будет во все большей степени в ущерб общему опыту пользователя, потому что сборка мусора займет больше времени, а система производительность может быть ниже при переключении задач или выполнении других общих операций.

Кроме того, большой размер кучи не одинаков на всех устройствах и при работе на устройства с ограниченным ОЗУ, большой размер кучи может быть точно таким же, как у обычной кучи размер. Поэтому, даже если вы запрашиваете большой размер кучи, вам следует вызвать getMemoryClass () , чтобы проверить обычный размер кучи и стремиться всегда оставайтесь ниже этого предела.

Не тратите память на растровые изображения

Когда вы загружаете растровое изображение, сохраняйте его в ОЗУ только с разрешением, которое вам нужно для текущего устройства. экран, уменьшив его масштаб, если исходное растровое изображение имеет более высокое разрешение. Имейте в виду, что увеличение разрешения растрового изображения приводит к соответствующему (увеличение 2 ) необходимой памяти, потому что размеры X и Y увеличиваются.

Примечание: В Android 2.3.x (уровень API 10) и ниже растровые объекты всегда отображаются в куче приложения одинакового размера независимо от разрешения изображения (фактическое данные пикселей хранятся отдельно в собственной памяти).Это затрудняет отладку растрового изображения. выделение памяти, потому что большинство инструментов анализа кучи не видят собственное выделение. Тем не мение, начиная с Android 3.0 (уровень API 11), данные пикселей растрового изображения распределяются в Dalvik вашего приложения. куча, улучшая сборку мусора и отлаживаемость. Итак, если ваше приложение использует растровые изображения и у вас есть проблемы с обнаружением того, почему ваше приложение использует память на старом устройстве, переключитесь на устройство под управлением Android 3.0 или выше для его отладки.

Дополнительные советы по работе с растровыми изображениями см. В разделе «Управление памятью растровых изображений».

Используйте оптимизированные контейнеры данных

Воспользуйтесь преимуществами оптимизированных контейнеров в платформе Android, таких как SparseArray , SparseBooleanArray и LongSparseArray . Общий HashMap реализация может быть довольно запоминающейся неэффективен, поскольку для каждого сопоставления требуется отдельный объект ввода. Кроме того, классы SparseArray более эффективны, поскольку они устраняют потребность системы в автобокс ключ, а иногда и значение (что создает еще один или два объекта для каждой записи).И не будь боится перейти к необработанным массивам, когда это имеет смысл.

Помните о накладных расходах памяти

знать стоимость и накладные расходы на язык и библиотеки, которые вы используете, и помните об этой информации при разработке приложения от начала до конца. Часто вещи на поверхность, которая выглядит безобидной, на самом деле может иметь много накладных расходов. Примеры включают:

  • Enums часто требует вдвое больше памяти, чем статические константы.Вы должны строго избегайте использования перечислений на Android.
  • Каждый класс в Java (включая анонимные внутренние классы) использует около 500 байт кода.
  • Каждый экземпляр класса имеет 12–16 байтов служебных данных ОЗУ.
  • Включение одной записи в HashMap требует выделения дополнительный объект записи, занимающий 32 байта (см. предыдущий раздел об оптимизированных контейнерах данных).

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

Будьте осторожны с абстракциями кода

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

Использовать нанопротобуфы для сериализованных данных

Протокол буферы — это не зависящий от языка и платформы расширяемый механизм, разработанный Google для сериализация структурированных данных — подумайте об XML, но меньше, быстрее и проще. Если вы решите использовать protobufs для ваших данных, вы всегда должны использовать nano protobufs в своем коде на стороне клиента. Обычный protobufs генерирует чрезвычайно подробный код, который вызовет множество проблем в вашем приложении: увеличенное использование ОЗУ, значительное увеличение размера APK, более медленное выполнение и быстрое достижение DEX ограничение символа.

Дополнительные сведения см. В разделе «Нано-версия» файла readme для protobuf.

Избегайте фреймворков внедрения зависимостей

Использование инфраструктуры внедрения зависимостей, такой как Guice или RoboGuice может быть привлекательными, потому что они могут упростить код, который вы пишете, и обеспечить адаптивную среду это полезно для тестирования и других изменений конфигурации. Однако эти фреймворки, как правило, работают инициализация большого количества процессов путем сканирования вашего кода на предмет аннотаций, что может потребовать значительных количество вашего кода, которое будет отображено в ОЗУ, даже если оно вам не нужно.Эти сопоставленные страницы выделены в чистую память, чтобы Android мог их удалить, но этого не произойдет, пока страницы не будут остались в памяти на долгое время.

Будьте осторожны при использовании внешних библиотек

Код внешней библиотеки часто не написан для мобильных сред и может быть неэффективным при использовании для работы на мобильном клиенте. По крайней мере, когда вы решите использовать внешнюю библиотеку, вы следует предполагать, что вы берете на себя значительную нагрузку на перенос и обслуживание, чтобы оптимизировать библиотека для мобильных.Спланируйте эту работу заранее и проанализируйте библиотеку с точки зрения размера кода и Объем оперативной памяти, прежде чем принимать решение о ее использовании.

Даже библиотеки, предположительно предназначенные для использования на Android, потенциально опасны, потому что каждая библиотека может делать что-то по-другому. Например, одна библиотека может использовать нанопротобуфы, а другая — использует микропротобуфы. Теперь в вашем приложении есть две разные реализации protobuf. Это может и также произойдет с различными реализациями журналов, аналитики, фреймворков загрузки изображений, кеширование и многое другое, чего вы не ожидаете.ProGuard не спасет вас здесь, потому что эти все будут зависимостями более низкого уровня, которые требуются для функций, для которых вы хотите библиотека. Это становится особенно проблематичным при использовании Activity подкласс из библиотеки (которая будут иметь широкий спектр зависимостей), когда библиотеки используют отражение (что является обычным и означает, что вам нужно потратить много времени на ручную настройку ProGuard, чтобы заставить его работать) и так далее.

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

Оптимизировать общую производительность

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

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

Используйте ProGuard, чтобы удалить ненужный код

Инструмент ProGuard сжимается, оптимизирует и запутывает ваш код, удаляя неиспользуемый код и переименовывая классы, поля и методы с семантически непонятными именами. Использование ProGuard может сделать ваш код более компактным, требуя меньше отображаемых страниц RAM.

Используйте zipalign в своем последнем APK

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

Примечание. Google Play Store не принимает файлы APK, не zipaligned.

Проанализируйте использование оперативной памяти

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

Использовать несколько процессов

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

Примером того, когда могут быть уместны несколько процессов, является создание музыкального проигрывателя, который длительное время воспроизводит музыку с сервиса. Если все приложение выполняется в одном процессе, тогда многие из выделений, выполняемых для его пользовательского интерфейса деятельности, должны храниться там, пока он воспроизводит музыку, даже если пользователь в настоящее время находится в другом приложении и сервис управляет воспроизведением. Подобное приложение можно разделить на два процесса: один для своего UI, а другой — для работы, продолжающейся в фоновой службе.

Вы можете указать отдельный процесс для каждого компонента приложения, объявив атрибут android: process для каждого компонента в файле манифеста. Например, вы можете указать, что ваша служба должна запускаться в процессе, отдельном от основного процесса вашего приложения, путем объявления нового процесса с именем «background» (но вы можете назвать процесс как угодно):


 

Имя вашего процесса должно начинаться с двоеточия (‘:’), чтобы гарантировать, что процесс остается частным для ваше приложение.

Прежде чем вы решите создать новый процесс, вам необходимо понять, как это влияет на память. Чтобы проиллюстрировать последствия каждого процесса, представьте, что пустой процесс в основном выполняет ничто не требует дополнительной памяти около 1,4 МБ, как показано в информации о памяти. дамп внизу.

оболочка adb dumpsys meminfo com.example.android.apis: пусто

** MEMINFO в pid 10172 [com.example.android.apis: пусто] **
                Pss Pss Shared Private Shared Private Heap Куча
              Total Clean Dirty Dirty Clean Чистый размер Свободно
             ------ ------ ------ ------ ------ ------ ------ ------ - ----
  Собственная куча 0 0 0 0 0 0 1864 1800 63
  Дальвик Куча 764 0 5228 316 0 0 5584 5499 85
 Дальвик Прочие 619 0 3784 448 0 0
        Стек 28 0 8 28 0 0
    Другой разработчик 4 0 12 0 0 4
     .так что mmap 287 0 2840 212 972 0
    .apk mmap 54 0 0 0 136 0
    .dex mmap 250 148 0 0 3704 148
   Другой mmap 8 0 8 8 20 0
      Неизвестный 403 0600380 0 0
        ИТОГО 2417 148 12480 1392 4832 152 7448 7299 148
 

Примечание: Предоставляется дополнительная информация о том, как читать этот вывод. в расследовании Ваше использование ОЗУ.Ключевыми данными здесь являются Private Dirty и Private. Очистите память , которая показывает, что этот процесс использует почти 1,4 МБ не выгружаемой на страницу ОЗУ. (распределяется по куче Dalvik, собственным выделениям, бухгалтерии и загрузке библиотеки), и еще 150 КБ ОЗУ для кода, который был отображен для выполнения.

Этот объем памяти для пустого процесса довольно значителен, и он может быстро расти по мере того, как вы начинаете работать в этом процессе. Для Например, вот использование памяти процессом, созданным только для отображения активности с некоторыми текст в нем:

** MEMINFO в pid 10226 [com.example.android.helloactivity] **
                Pss Pss Shared Private Shared Private Heap Куча
              Total Clean Dirty Dirty Clean Чистый размер Свободно
             ------ ------ ------ ------ ------ ------ ------ ------ - ----
  Собственная куча 0 0 0 0 0 0 3000 2951 48
  Дальвик Куча 1074 0 4928 776 0 0 5744 5658 86
 Дальвик Прочие 802 0 3612 664 0 0
        Стек 28 0 8 28 0 0
       Ашмем 6 0 16 0 0 0
    Прочие разработки 108 0 24104 0 4
     .так что mmap 2166 0 2824 1828 3756 0
    .apk mmap 48 0 0 0632 0
    .ttf mmap 3 0 0 0 24 0
    .dex mmap 292 4 0 0 5672 4
   Другой mmap 10 0 8 8 68 0
      Неизвестный 632 0412624 0 0
        ИТОГО 5169 4 11832 4032 10152 8 8744 8609 134
 

Теперь процесс увеличился почти втрое до 4 МБ, просто за счет отображения некоторого текста в пользовательском интерфейсе.Этот приводит к важному выводу: если вы собираетесь разделить свое приложение на несколько процессов, только один процесс должен отвечать за UI. Другим процессам следует избегать любого пользовательского интерфейса, так как это быстро увеличить объем оперативной памяти, необходимый для процесса (особенно после того, как вы начнете загружать ресурсы растровых изображений и другие Ресурсы). В этом случае может быть трудно или невозможно уменьшить использование памяти после отрисовки пользовательского интерфейса.

Кроме того, при запуске более одного процесса как никогда важно, чтобы вы как можно меньше кода, потому что любые ненужные накладные расходы на ОЗУ для общих реализаций теперь тиражируется в каждом процессе.Например, если вы используете перечисления (хотя вам не следует использовать перечисления), все RAM, необходимая для создания и инициализации этих констант, дублируется в каждом процессе, и любые абстракции, которые у вас есть с адаптерами и временными библиотеками или другие накладные расходы, также будут реплицированы.

Еще одна проблема, связанная с несколькими процессами, — это зависимости между ними. Например, если у вашего приложения есть поставщик контента, который у вас запущен в процессе по умолчанию, который также размещает ваш пользовательский интерфейс, а затем код в фоновом процессе, который использует этого поставщика контента, также потребует, чтобы ваш пользовательский интерфейс остается в ОЗУ.Если ваша цель — иметь фоновый процесс, который может запускаться независимо от тяжелого процесса пользовательского интерфейса, он не может зависеть от поставщиков контента или сервисы, которые выполняются в процессе пользовательского интерфейса.

SharedArrayBuffer — JavaScript | MDN

Объект SharedArrayBuffer используется для представления универсального буфера необработанных двоичных данных фиксированной длины, аналогичного объекту ArrayBuffer , но таким образом, чтобы их можно было использовать для создания представлений в общей памяти.В отличие от ArrayBuffer , SharedArrayBuffer не может быть отсоединен.

Распределение и совместное использование памяти

Для совместного использования памяти с использованием объектов SharedArrayBuffer от одного агента в кластере к другому (агент является либо основной программой веб-страницы, либо одним из ее веб-рабочих), используется postMessage и структурированное клонирование .

Алгоритм структурированного клонирования принимает SharedArrayBuffers и TypedArrays , отображенные на SharedArrayBuffers .В обоих случаях объект SharedArrayBuffer передается получателю, в результате чего в принимающем агенте создается новый частный объект SharedArrayBuffer (точно так же, как для ArrayBuffer ). Однако общий блок данных, на который ссылаются два объекта SharedArrayBuffer , является одним и тем же блоком данных, и побочный эффект блока в одном агенте в конечном итоге станет видимым в другом агенте.

  var sab = новый SharedArrayBuffer (1024);
worker.postMessage (саб);
  

Обновление и синхронизация общей памяти с помощью атомарных операций

Общая память может быть создана и обновлена ​​одновременно в рабочих или в основном потоке.В зависимости от системы (ЦП, ОС, браузер) может пройти некоторое время, прежде чем изменение будет распространено на все контексты. Для синхронизации необходимы атомарные операции.

API, которые используют объекты SharedArrayBuffer

Требования безопасности

Общая память и таймеры с высоким разрешением были эффективно отключены в начале 2018 года в свете Spectre. В 2020 году был стандартизирован новый безопасный подход для повторного включения общей памяти. С некоторыми мерами безопасности postMessage () больше не будет генерировать объекты SharedArrayBuffer , и будет доступна разделяемая память между потоками:

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

Для документов верхнего уровня необходимо установить два заголовка, чтобы изолировать ваш сайт от разных источников:

 Cross-Origin-Opener-Policy: то же происхождение
Политика кросс-происхождения-встраивания: require-corp
 

Чтобы проверить, была ли изоляция перекрестного происхождения успешной, вы можете протестировать свойство crossOriginIsolated , доступное для оконного и рабочего контекстов:

  if (crossOriginIsolated) {
  
} еще {
  
}
  

См. Также Планируемые изменения в общей памяти, которая начинает развертываться в браузерах (например, Firefox 79.)

Всегда используйте оператор new для создания SharedArrayBuffer

SharedArrayBuffer Конструкторы должны быть созданы с помощью оператора new . Вызов конструктора SharedArrayBuffer как функции без new вызовет ошибку TypeError .

  var sab = SharedArrayBuffer (1024);


  
  var sab = новый SharedArrayBuffer (1024);
  
SharedArrayBuffer.prototype.slice (начало, конец)

Возвращает новый SharedArrayBuffer , содержимое которого является копией байтов этого SharedArrayBuffer , начиная с , начиная с включительно, до до конца , исключая. Если значение begin или end отрицательно, это относится к индексу с конца массива, а не с начала.

Создание нового SharedArrayBuffer

  var sab = new SharedArrayBuffer (1024);
  

Нарезка SharedArrayBuffer

  sab.кусочек();
саб. ломтик (2);
саб. ломтик (-2);
sab.slice (0, 1);
  

Использование его в буфере WebGL

  const canvas = document.querySelector ('canvas');
const gl = canvas.getContext ('webgl');
константный буфер = gl.createBuffer ();
gl.bindBuffer (gl.ARRAY_BUFFER, буфер);
gl.bufferData (gl.ARRAY_BUFFER, sab, gl.STATIC_DRAW);
  

Таблицы BCD загружаются только в браузере

Как управлять своими воспоминаниями в Google Фото и созданиями искусственного интеллекта

Google Фото является надежным предложением для загрузки и сохранения фотографий с момента его запуска в 2015 году.И его функция «Воспоминания» только улучшила это, когда она была запущена в прошлом году. Как и следовало ожидать, Воспоминания в Google Фото — это функция, управляемая искусственным интеллектом, которая создает фотографии из прошлого пользователя.

Искусственный интеллект использует машинное обучение, чтобы распознавать не только места — например, место отдыха или ваш родной город. Это было бы достаточно легко сделать. Он также распознает определенные объекты или «вещи». Его можно уловить, когда вы фотографируете в зоопарке. Или в парке, в музее, на празднике, или в небе, у костра, цветов или конкретного животного.

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

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

Воспоминания Google Фото прекрасны, когда они работают и когда они нужны.

Теперь функция «Воспоминания Google Фото» также может отображать контент, который пользователи не хотели бы видеть. Или, по крайней мере, не хотел бы, чтобы вам напоминали так часто, как функция имеет тенденцию обновляться. И есть множество причин, почему это может быть так.

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

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

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

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

К счастью, процесс настройки того, как и что будет отображать функция памяти Google Фото, намного проще.На самом деле, это будет очень легко сделать с некоторым исследованием пользовательского интерфейса. Здесь мы рассмотрим различные способы управления воспоминаниями в Google Фото. Включая управление уведомлениями, на случай, если кто-то просто захочет остановить их, но не все остальное.

Вот как настроить отображение воспоминаний Google Фото

Google Фото показывает воспоминания только на мобильной платформе. Само собой разумеется, что эту функцию можно настроить только в приложении, созданном Google.

Для тех, кто использует приложения браузера или рабочий стол для доступа к Google Фото, он не отображается на них. И это тоже не может быть исправлено в тех. Поэтому пользователям нужно будет перейти в мобильное приложение, чтобы начать работу. И им нужно будет начать с загрузки приложения, если оно еще не установлено.

После установки приложения каждая из обсуждаемых здесь функций начинается с одного и того же базового процесса;

  1. Откройте Google Фото
  2. Нажмите на значок профиля в правом верхнем углу пользовательского интерфейса
  3. Выберите «Настройки фотографий» в появившемся пользовательском интерфейсе карты.
  4. Выберите «Воспоминания» в появившемся вложенном меню. меню

Какие воспоминания вы хотите сохранить, если таковые имеются, для начала?

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

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

Первый — «Предыдущие годы» и показывает фотографии с текущей недели, лет назад. Затем следует раздел «Последние лучшие моменты» с изображениями, сохраненными за последние несколько недель. Наконец, можно переключать «Тематические воспоминания».Они показывают фотографии об определенных людях, местах или предметах, как определено на вкладке «Поиск» приложения.

  1. Перейдите к «Избранным воспоминаниям»
  2. Включите или отключите любые нежелательные типы избранных
  3. Чтобы отключить их все, просто выключите все переключатели в меню избранных воспоминаний

Скрытие людей и домашних животных

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

  1. Перейдите к «Скрыть людей и домашних животных»
  2. Google автоматически скроет некоторые фотографии, особенно если люди и домашние животные не были явно идентифицированы. Прокрутите, чтобы убедиться, что по умолчанию не происходит нежелательного скрытия
  3. Коснитесь или щелкните миниатюру, чтобы скрыть или отобразить нужные объекты в воспоминаниях
  4. Скрытые объекты обозначаются значком в форме глаза с косой чертой

Скрытие определенных даты

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

  1. Перейдите к «Скрыть даты»
  2. Автоматическая фильтрация дат отсутствует, поэтому пользователи, которые не настроили ее, увидят краткое описание и кнопку «Добавить даты». По мере добавления дат пуговица остается твердо посаженной. Таким образом, не будет причин для прокрутки вниз, если пользователи не захотят удалить фильтр даты.
  3. Нажмите кнопку «Добавить дату»
  4. Выберите дату начала и окончания.Пользовательский интерфейс здесь работает как выбор даты эффективно в любом месте Android. Пользователи могут пролистывать месяцы или выбирать в раскрывающемся меню сначала год. Простое нажатие на любую дату выберет ее в качестве даты начала. При втором выборе будет выбрана дата окончания. Любые фотографии, которые попадают в выбранный период времени, больше не будут отображаться
  5. Чтобы удалить дату, просто щелкните значок «x» рядом с желаемой датой

Чтобы ИИ мог создавать вещи для демонстрации… или нет

Последнее но не в последнюю очередь, Google Фото также позволяет пользователям предотвращать появление в фиде контента, созданного искусственным интеллектом.Сюда входят коллажи, анимация, цветные фотографии и стилизованные фотографии. Google Ассистент, поскольку он встроен в Фото, создает их довольно регулярно. Хотя они могут быть ошеломляющими и забавными, это не всегда так. Но на самом деле этой функцией можно управлять, и это не просто включение / выключение.

  1. Перейдите в «Дополнительно». Google представляет каждую из вышеупомянутых опций как отдельный переключатель.
  2. Как и в случае с самими воспоминаниями, каждую из этих функций можно переключать индивидуально.Поэтому, если пользователям нравятся анимации, но не коллажи, последний параметр можно отключить, чтобы отключить их. Или их можно полностью отключить для каждой опции.

Управляйте уведомлениями, которые генерируются Google Photos Memories

Теперь, иногда Google выбрасывает функцию Photos Memories в качестве уведомления. И это, пожалуй, может быть даже хуже, поскольку не все хотят видеть некоторые из воспоминаний, которые он всплывает. Не говоря уже о том, что эти воспоминания выбрасываются явно случайным образом.

И наоборот, отключение уведомлений для всего приложения кажется немного резким. Это немного похоже на то, как вылить ребенка вместе с водой из ванны. Уведомления Google Фото могут быть полезны. Например, когда речь идет об общих альбомах и когда они автоматически заполняются с помощью ИИ, приложение отправляет уведомление, чтобы проинформировать пользователей о добавлении новой фотографии.

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

Поскольку отключение всех уведомлений на уровне Android не является жизнеспособным решением, хорошо, что Google Фото позволяет детально контролировать уведомления, особенно из Memories.

Найти их так же просто, как и все остальное здесь.

  1. Перейдите в меню «Воспоминания», выполнив действия, описанные в начале этого руководства, и коснитесь параметра «Уведомления».
  2. Google предоставляет пользователям элементы управления уведомлениями не менее чем по пяти категориям.Все они имеют собственные подзаголовки и переключатели для индивидуальных настроек в категориях.
  3. Уведомления для «Совместное использование» и «Печать» не требуют пояснений. Первый уведомляет пользователей, когда у них появляются новые фотографии, которыми ИИ сочтет достойными поделиться. Последнее представляет собой уведомления о службах печати Google для фотографий
  4. Google также предоставляет пользователям варианты управления своей библиотекой, включая исправления фотографий и предложения по архивированию
  5. В подзаголовке «Другое» пользователи найдут переключатели уведомлений на уровне устройства и по электронной почте.
  6. Для воспоминаний Google явно позволяет пользователям отключать уведомления памяти о «прошлых годах», «тематических воспоминаниях» и новых созданных искусственным интеллектом «творениях»

Управление файлами Android: простое руководство

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

Возможно, мы не слишком часто сталкиваемся с файловыми системами наших телефонов, но важно знать, что они есть, и знать, как они могут работать для нас, когда возникает необходимость. В конце концов, ваше Android-устройство — источник производительности. Он может совмещать все, от файлов PDF и PSD до презентаций и подкастов.Он даже может действовать как портативный жесткий диск и хранить любые важные файлы, которые могут вам понадобиться в вашем кармане (а не только в каком-то далеком облаке). Ваше мобильное устройство может переносить очень много данных, и может наступить время, когда вы захотите вникнуть в них и заняться непосредственно этим.

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

Управление файлами на телефоне Android

Возможно, вы не заметите этого с первого взгляда, но на самом деле Android позволяет вам получить доступ ко всей файловой системе устройства — даже с самого устройства.

Операционная система имеет собственный файловый менеджер с момента выхода Android 6.0 Marshmallow в 2015 году, и то, что начиналось как кажущаяся экспериментальной попыткой, превратилось в способный инструмент для базовых манипуляций с данными. В версиях Android от 6.0 до 7.1 файловый менеджер системного уровня несколько скрыт: вам нужно заглянуть в раздел «Хранилище» в системных настройках, затем прокрутить до конца и коснуться строки с надписью «Исследовать», чтобы найти его.

Между тем с выпуском Google Android 8.0 Oreo файловый менеджер находится в приложении Android Downloads.Все, что вам нужно сделать, это открыть это приложение и выбрать в его меню опцию «Показать внутреннюю память», чтобы просмотреть всю внутреннюю память телефона. Затем вы можете открывать, перемещать, переименовывать, копировать, удалять и обмениваться файлами по мере необходимости.

А если у вас на телефоне Android 9 или выше, все становится еще проще: в последних версиях Android файловый менеджер существует в собственном приложении с разумным названием Files. Просто откройте его, чтобы просмотреть любую область вашего локального хранилища или подключенной учетной записи Диска; вы можете использовать значки типов файлов в верхней части экрана или, если вы хотите просмотреть папку за папкой, коснитесь значка меню с тремя точками в правом верхнем углу и выберите «Показать внутреннюю память», а затем коснитесь трех — строка значок меню в верхнем левом углу и найдите имя своего телефона.

JR Raphael / IDG

Самая последняя версия приложения «Файлы» на системном уровне позволяет просматривать файлы различными способами, в том числе в традиционном режиме просмотра папок за папками.

Если вы не видите приложение «Файлы» на своем телефоне, скорее всего, вы используете устройство от производителя, такого как Samsung, который предпочитает не включать этот элемент Android системного уровня в свое программное обеспечение, а вместо этого предоставляет свой собственный самодельная альтернатива (якобы с целью продвижения собственной службы облачного хранилища и / или службы облачного хранилища платного партнера наряду с Google Диском).Такое приложение может существовать в папке с названием производителя на панели приложений и может называться «Мои файлы» или что-то в этом роде. Вы, вероятно, найдете в нем такие же базовые функции управления файлами, только с несколько другим интерфейсом и набором параметров.

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

Дополнение локального хранилища вашего телефона

Одной малоизвестной особенностью Android является его способность подключаться к внешним запоминающим устройствам, таким как карты памяти USB и портативные жесткие диски еще большей емкости. Телефон просто должен поддерживать что-то, известное как USB On-The-Go или USB OTG, чтобы соединение работало.

Достаточное количество устройств, включая телефоны Google Pixel и многие продукты Samsung Galaxy, предлагают такую ​​поддержку. Если вы не уверены, работает ли ваш телефон, лучше всего поискать в Google его имя вместе с «USB OTG»; скорее всего, вы найдете ответ довольно быстро.

Если ваше устройство поддерживает USB OTG, все, что вам нужно, это переходник с USB-A на USB-C, как этот, сделанный Amazon. (Если у вас есть более старое устройство, которое не имеет USB-C, вам понадобится переходник с USB-A на micro-USB; вы можете найти множество таких вариантов на Amazon или практически в любом магазине электроники.) адаптер для подключения внешнего диска к телефону, затем найдите уведомление, подтверждающее подключение диска.

Нажмите на опцию «Исследовать» в уведомлении, и все: теперь вы можете просматривать и получать доступ ко всем файлам на внешнем диске.

JR Raphael / IDG

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

Когда вы закончите, не забудьте вернуться к уведомлению и нажать «Извлечь» перед отключением накопителя.

Обмен файлами между телефоном и компьютером

Помимо поддержки внешних жестких дисков, ваш телефон Android может работать как внешний жесткий диск. Просто подключите свое устройство к любому компьютеру с Windows, Mac или Chrome OS, и вы сможете получить доступ ко всей файловой системе и с легкостью перетаскивать файлы между ним и рабочим столом.

В системе Windows или Chrome OS это, по сути, так же просто, как подключи и работай. На Mac вам сначала нужно установить специальную программу на свой компьютер, прежде чем можно будет установить соединение.

Для получения пошаговых инструкций по любому из этих направлений перейдите к моему подробному руководству по передаче файлов Android.

Беспроводная передача файлов между устройствами

Хотите передавать файлы между телефоном Android и компьютером (или другим телефоном Android, iPhone и т. Д.)) без проводов? Без проблем.

Самый простой вариант — обратиться к посреднику, в частности, к облачной службе хранения, такой как Google Drive, Dropbox или Microsoft OneDrive. Просто загрузите файлы в папку в соответствующем приложении на своем телефоне Android, а затем найдите папку в том же приложении на принимающем устройстве (или наоборот).

Тем не менее, вы можете стать более продвинутым — и в результате значительно облегчить себе жизнь. Если вы переключаетесь между двумя устройствами Android в одной и той же физической области, собственное приложение Google Files (которое, как ни странно, , а не , то же самое, что и вышеупомянутое приложение Files, которое предустановлено на многих устройствах) выполнит свою работу с минимальными усилиями. и хлопот.Просто установите приложение на оба устройства, коснитесь вкладки «Поделиться» внизу, а затем нажмите кнопку «Отправить» или «Получить», чтобы настроить передачу. Приложение автоматически зашифрует любые отправляемые данные.

Если вы используете устройства на разных платформах и / или устройства, которые не в одном и том же физическом месте, — полезный инструмент, который стоит рассмотреть, — это мультиплатформенное приложение под названием Join (которое также имеет возможность шифровать свои передачи, хотя вам нужно заглянуть в настройки приложения, чтобы активировать эту опцию).Установите приложение на свое устройство Android, а затем установите то же приложение, версию Chrome или версию Windows 10 на любое другое устройство, с которым вы хотите обмениваться файлами. Вы также можете получить доступ к сервису через обычный веб-сайт на любом настольном компьютере — если, например, вы используете Mac вместе с браузером, отличным от Chrome.

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

На компьютере, тем временем, отправить файл так же просто, как открыть приложение или расширение Join, выбрать свой телефон в качестве принимающего устройства и затем перетащить файл в окно.

JR Raphael / IDG

Перетащите файл в «Присоединиться» на рабочем столе (слева), и через секунду он появится на вашем устройстве Android (справа).

Join имеет множество других функций, в том числе возможность отправлять уведомление в стиле «Заметка для себя» с компьютера на ваш телефон и даже вставлять текст с компьютера прямо в буфер обмена вашего телефона — но даже если вы просто используете его для беспроводной передачи файлов его стоит иметь под рукой.Приложение поставляется с бесплатной (с рекламой) пробной версией на один месяц, а затем требует единовременной покупки за 5 долларов, если вы хотите продолжать его использовать.

Синхронизация памяти телефона Android с компьютером

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

Вы не поверите, но на самом деле это довольно легко осуществить. Просто возьмите приложение для Android под названием AutoSync, которое доступно для использования с Google Диском, Microsoft OneDrive, Dropbox и Box.Это позволит вам создавать пары между локальной папкой на вашем телефоне и облачной папкой — бесплатно с одной парой папок и файлами размером менее 10 МБ или за единовременный платеж в размере 5 долларов без каких-либо реальных ограничений.

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

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

Вот и все!

Поздравляем: вы официально получили звание мастера файлов Android. (На самом деле — вы даже можете ввести его в документ, распечатать и приклеить на стол, чтобы все знали.)

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

Эта статья была первоначально опубликована в сентябре 2017 года, а последнее обновление — в феврале 2020 года.

Авторские права © 2020 IDG Communications, Inc.

Как увидеть воспоминания в Instagram и опубликовать как историю

Ранее в этом году Instagram незаметно представил на своей платформе функцию «Воспоминания». Подобно Facebook, он показывает пользователям старую публикацию, которой они поделились в тот же день, год назад или даже раньше.

Однако, в отличие от Facebook, здесь нет специальной настройки для просмотра воспоминаний Instagram.Instagram скорее показывает уведомление « в этот день, » для любых существующих воспоминаний в самом приложении. Затем вы можете повторно поделиться предложенными воспоминаниями со своими друзьями и подписчиками в виде истории в Instagram.

Воспоминания в Instagram

Помимо вкладки уведомлений, вы можете найти воспоминания в папке «Архив» в Instagram. Хотя большинство пользователей не знают о существовании воспоминаний в архивах, вероятно, потому, что они спрятаны глубоко внутри. Выполняя поиск воспоминаний вручную, вы не пропустите ни одного из них, даже если Instagram не уведомит вас об определенном воспоминании.

А теперь давайте посмотрим, как запечатлеть воспоминания в историях из Instagram.

Как найти воспоминания в Instagram

  1. Откройте приложение Instagram.
  2. Перейдите на вкладку профиля снизу справа. Коснитесь меню (значок гамбургера) вверху справа и выберите «Архивировать».
  3. Нажмите раскрывающееся меню вверху и выберите «Архив историй».
  4. Прокрутите вниз, чтобы увидеть свои воспоминания.

Память « в этот день », если она есть, будет отображаться сразу же.Обратите внимание, что только вы можете видеть свои воспоминания и заархивированные истории, если вы не решите поделиться ими.

Примечание : проверьте воспоминания в «Архиве сообщений», если вы не можете найти их в своем архиве историй.

СОВЕТ : Откройте «Активность» (вкладка «Сердце»), чтобы найти воспоминания, которые вы, возможно, пропустили ранее.

Найдите более ранние воспоминания на вкладке «Активность» в Instagram

ТАКЖЕ ЧИТАЙТЕ: Как включить уведомления о публикациях в Instagram

Как опубликовать воспоминания в Instagram Story

После просмотра старых воспоминаний вы можете поделиться ими с хэштегом #throwback или #memories.Для размещения памяти,

  1. Нажмите кнопку «Поделиться» рядом с памятью.
  2. Коснитесь изображения или видео, добавленного в память, чтобы переключить его вид.
  3. По умолчанию на странице отображается наклейка с воспоминаниями. Нажмите, чтобы изменить ее на «В этот день».
  4. Добавьте любые персонализации, стикеры или эффекты, если хотите.
  5. Нажмите «Отправить» и поделитесь ею со своей историей, близкими друзьями или конкретными людьми.
Вид по умолчанию Измененный вид Поделиться в историю

При желании вы можете удалить наклейку с датой и годом из памяти.Для этого нажмите и удерживайте наклейку с датой, а затем перетащите ее в корзину внизу.

Тем не менее, вы также можете поделиться историей из своего архива историй, когда захотите.

Nearby Share: как передавать файлы между двумя телефонами Android

Уже почти десять лет у пользователей Apple есть AirDrop, который позволяет пользователям мгновенно обмениваться файлами между устройствами Apple. Теперь Google также представил собственную версию AirDrop для Android под названием Nearby Share. Google работает над этой новой функцией обмена файлами с 2019 года, и теперь она, наконец, доступна для ряда смартфонов Android.В этом руководстве мы расскажем вам все, что вам нужно знать о функции Nearby Share на Android.

Nearby Share: поддерживаемые устройства

Google сообщает, что Nearby Share доступен для телефонов на Android 6.0 или выше. Чтобы проверить, поддерживает ли ваш телефон Android эту новую функцию, выполните следующие действия.

  1. Зайдите в настройки вашего телефона > прокрутите немного вниз> выберите Google .
  2. Tap Подключение устройств .
  3. Если ваш телефон поддерживает функцию Nearby Share, вы найдете эту опцию на следующей странице.
  4. Теперь нажмите Nearby Share , чтобы настроить его параметры.
  5. Вы можете включить или выключить . Вы также можете выбрать свою учетную запись Google , а также установить имя устройства . Кроме того, вы также можете установить видимость устройства вместе с контролем использования данных .

Nearby Share: как использовать и передавать файлы

Если вы хотите поделиться фотографией, видео, приложением из Google Play или даже вашим местоположением из Google Maps, Nearby Share справится со всем.Где бы вы ни заметили кнопку «Поделиться» на своем телефоне Android, вы можете использовать функцию «Поделиться рядом». Чтобы узнать, как обмениваться файлами с помощью Nearby Share, выполните следующие действия.

  1. Откройте файл, которым хотите поделиться> коснитесь значка общего доступа > коснитесь общего доступа . Ваш телефон начнет поиск устройств поблизости.
  2. Человек, которому вы отправляете файл, также должен будет включить функцию Nearby Share на своем телефоне Android.
  3. Как только ваш телефон обнаружит телефон получателя, вы просто коснетесь его имени устройства .Одновременно получателю нужно будет нажать Принять на своем телефоне, чтобы начать передачу.
  4. В течение нескольких секунд, в зависимости от файлов, которыми вы поделились, передача будет завершена.

Вот как вы можете обмениваться файлами между двумя телефонами Android с помощью Nearby Share.

Для получения дополнительных руководств посетите наш раздел «Как сделать».


Сдерживает ли Android One смартфоны Nokia в Индии? Мы обсуждали это в Orbital, нашем еженедельном технологическом подкасте, на который вы можете подписаться через Apple Podcasts, Google Podcasts или RSS, загрузить выпуск или просто нажать кнопку воспроизведения ниже.

Чтобы быть в курсе последних технических новостей и обзоров, подписывайтесь на Gadgets 360 в Twitter, Facebook и Google News. Чтобы смотреть самые свежие видео о гаджетах и ​​технологиях, подпишитесь на наш канал на YouTube.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *