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

Например, приложение Barcode Scanner занимает:

Итого: 0,96 МБ
Приложение: 0,92 МБ
Данные: 40 КБ

на телефоне. Когда я перемещаю его на SD-карту, он меняется на:

Итого: 524 КБ
Приложение: 484 КБ
Данные: 40 КБ

Как это меняется?

Ответы (3)

Как говорит Брайан (я не могу комментировать, поэтому пришлось добавить еще один ответ...), он не перемещает все приложение. Размер, указанный после перемещения, - это бит, который все еще находится во внутренней памяти - он не дает никакого размера для элементов, которые были перемещены на SD.

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

Какие части приложения перемещаются на SD-карту, а какие остаются на телефоне?

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

См. раздел Где я могу найти свои приложения для Android? о распределении и местоположении приложений.

См. также Какие недостатки переноса приложения на SD-карту?

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

Таким образом odex, файл любого приложения все еще остается и занимает место во внутренней памяти в формате /data/dalvik-cache.