Главная > Android > Перенос приложений на SD карту в ОС Android

Перенос приложений на SD карту в ОС Android


20 октября 2011. Разместил: dimon
Экскурс в философию приложений робота:

Каждое приложение в операционной системе Android состоит из одного *.apk-файла, который является с одной стороны установочным, а с другой и установленным.

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

• apk-файл переименовывается в соответствии с классом и помещается в /data/app/

• создаётся папка данных, совпадающая с классом пакета, например /data/data/com.google.android.youtube с подкаталогами, предназначенными для различных данных:

    lib – бинарные библиотеки приложения, *.so-файлы.
    files – различные файлы приложения, возможен любой контент.
    shared_prefs – xml-описание настроек.
    cache – кэш, временные файлы, который может быть очищен системой при нехватке места в памяти.
    databases – базы данных (sqlite), основное хранилище данных.

• создаётся dalvik-кеш исполняемого файла - распаковывается dex-файл для более быстрого обращения

• если в приложении присутствуют бинарные библиотеки, они распаковываются в папку /lib для более быстрого обращения

so-файлы пишутся на С/С++ и поэтому обладают с одной (положительной) стороны максимальной производительностью, а с другой (отрицательной) – большим размером.

Из-за ограниченности основной памяти устройств для хранения большого количества приложений в системе сторонние разработчики придумали модуль A2SD, который автоматически переносит все пользовательские программы (/data/app/*.apk) и весь dalvik-cache на SD карту, в заранее подготовленный дополнительный раздел на карточке в формате ext2/3/4.

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

Для увеличения количества устанавливаемых приложений используются:

• A2SD -перенос данных приложений на карту памяти в ext раздел;
• A2SD+ в дополнение к A2SD переносит туда же dalvik-cache;
• A2SD++ следующее расширение, позволяющее использовать файловую систему ext4 вместо ext3. (однако, при использовании ext4 генерируется больше циклов записи чем при использовании ext3, что быстрее приведет карту памяти к выходу из строя).

Подробно описывать, как на карте памяти сделать раздел с файловой системой ext3/ ext4 я наверное не буду. Для этого подойдет - Acronis Disk Director, Partition Magic или любая другая утилита для работы с разделами на жестких дисках.

Единственный нюанс на который стоит обратить внимание – подготавливаемый нами раздел должен быть Primary иначе A2SD работать не будет.
Теперь после установки карты памяти в телефон или планшетник можно перенести часть приложений на SD карту с помощью Настройки – Приложения – Управление приложениями там выбираем приложение и щелкаем по кнопке Переместить на SD карту

Следующее поколение ОС - Андроид 2.3 порадовал своих поклонников еще большей эффективностью встроенного A2SD. Хотя изменения и не были кардинальными, но они позволили вместе с apk-пакетом перенести и часть данных приложения – тех которые хранятся в папке /lib, которая обычно занимает больше всего места.

Вернуться назад