Могу ли я изменить местоположение кэша dalvik, например. с символической ссылкой?

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

При изменении ПЗУ кеш dalvik стирается, и когда телефон перезапускается, вы видите индикатор выполнения, говорящий, что Android оптимизирует приложения. Поэтому, учитывая разумное количество приложений, кеш dalvik заполняет хранилище задолго до того, как link2sd может что-то предпринять.

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

8 голосов | спросил Eshwar 6 MarpmTue, 06 Mar 2012 13:20:32 +04002012-03-06T13:20:32+04:0001 2012, 13:20:32

2 ответа


1

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

В соответствии с несколькими темами форума A2SDGUI - графический интерфейс Darktremor A2SD должно быть приложением для перемещения кэша Dalvik на вашу SD-карту.

ответил Izzy 3 PM00000030000002231 2012, 15:11:22
1

Конечно, вы можете. Хотя кажется, что нет никакой проблемы, чтобы перенести dalvik-cache в обычную файловую систему SD-карты (наиболее распространенный, vfat), по-прежнему настоятельно рекомендуется отформатировать SD-карту до ext4 (или то же, что и ваш /data), чтобы все работало нормально.

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

Сначала создайте папку, в которую вы хотите перенести свой dalvik-cache. Затем chmod и chown новую папку для match /data/dalvik-cache. Если вы используете ОС Android с поддержкой SELinux, не забудьте соответственно изменить контексты безопасности. Запустить

ls -dlZ /data/dalvik-cache
ls -lZ /data/dalvik-cache

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

Затем скопируйте все файлы из /data/dalvik-cache в новое место, например /storage/sdcard1/dalvik-cache. Вы можете использовать команду cp -a, чтобы сохранить атрибуты файла, что упростит ситуацию.

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

Затем rm -r /data/dalvik-cache и создайте символическую ссылку на новое местоположение, используя

ln -s /storage/sdcard1/dalvik-cache /data/dalvik-cache

Вот и все. Были сделаны. Перезагрузите телефон (не обязательно, но рекомендуется).

Некоторые уведомления об этом процессе:

  1. Занятобок может не всегда хорошо работать, поскольку Android основан на сильно модифицированном ядре Linux. Например, почти все связанные с SELinux функции работают неправильно. Вы можете проверить это, как показано ниже.

    toolbox ls -Z /data
    busybox ls -Z /data
    toolbox getenforce
    busybox getenforce
    

    Однако они могут работать правильно, в зависимости от версии Android:

    busybox chcon <context> <files...>
    busybox runcon <context <program> [args...]
    
  2. Никогда не удаляйте свою SD-карту. Если вы переформатируете SD-карту, убедитесь, что она по-прежнему ext4 И создайте папку dalvik-cache назад до , перезагрузив телефон в первый раз.

ответил iBug 20 Jpm1000000pmFri, 20 Jan 2017 17:05:24 +030017 2017, 17:05:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132