DiskUsageConfiguration
– плагин, предназначенный для мониторинга использования дискового пространства вашим приложением. Он позволяет отслеживать, какие проекты или сборки занимают больше всего места на диске, что может быть полезно дл я управления ресурсами и оптимизации использования хранилища. С помощью этого плагина возможно отслеживать утекающие или забытые файлы и вовремя их удалять. Полезно, чтобы пользователь не удалял ваше приложение, когда на его устройстве закончится место :)
Этот плагин предоставляет информацию о размере и распределении файлов и каталогов на диске. С его помощью также возможно установить оптимальное количество занимаемого на диске пространства, чтобы знать, если ваш проект использует больше места, чем хотелось бы. В самом отчёте это выглядит следующим образом:
Все файлы распределены по 3-ем GlobalDirs
, которые по умолчанию имеют значения:
Директория | Описание |
---|---|
int_data | Внутренние данные приложения: кэши, временные файлы, логи и другие. Это корневая папка приложения, в которой хранятся такие папки, как files , caсhe , shared_prefs и другие файлы, относящиеся к работе приложения. |
ext_data | Данные, предназначенные для обмена с внешними системами или пользователя ми: загружаемые файлы, выгрузки, обменные файлы и другие. Здесь можно найти файлы временных кэшей, журналы, временные файлы сеансов и т. д. |
src_data | Исходные кода приложения: исходные коды программ, скрипты, конфигурации и другие ресурсы. |
Таким образом, плагин помогает контролировать и предотвращать излишнее использование ресурсов. В случае, если занимаемый объем памяти превышает определённый показатель – interestingSizeBytes
, плагин генерирует и отправляет отчёт в Tracer. Сгенерированный отчёт можно найти в разделе «Использование диска», выбрав нужную дату. В самом отчёте содержится основная информация о приложении, данные об устройстве, на котором было запущено приложение, а также сводка по проанализированным файлам приложения и занимаемому ими пространству.
Информация обо всех утечках файлов агрегируется в отдельный отчёт по версии используемого приложения. Найти эти отчёты можно в верхней панели в разделе «Использование диска»:
Внутри сам ого отчёта предоставлена основная информация о проекте и распределении файлов и каталогов на диске с указанием количества утечек. Важно понимать, что инструмент не выгружает данные из вашей файловой системы, а лишь помогает найти путь до необходимых ресурсов на диске:
Перед началом использования плагина в вашем проекте, необходимо подключить зависимости:
В вашем <project>/<app-module>/build.gradle.kts
dependencies { implementation("ru.ok.tracer:tracer-disk-usage:0.4.4") }
Более подробное описание зависимостей можно найти на странице Быстрый старт
После подключения необходимых зависимостей нужно установить плагин в конфигур ацию Tracer:
В вашем Application.kt
class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( DiskUsageConfiguration.build { // ваши опции }, ) }
В конфигурации DiskUsage
есть несколько параметров, которые позволяют настраивать работу плагина. Опции DiskUsageConfiguration.Builder
, с помощью который можно их регулировать:
Опция | Описание |
---|---|
setEnabled | Отвечает за включение/выключе ние плагина. По умолчанию плагин включён. |
setProbability | Вероятность того, что раз в день в фоновом режиме будет произведена проверка использования дискового пространства. По умолчанию имеет значение 0, что равноценно включению плагина. Можно задать собственное значение n – тогда вероятность будет вычисляться как 1/n . При этом отрицательное значение будет равноценно выключению плагина. |
setInterestingSize | Устанавливает пороговое значение занимаемого вашим проектом места на диске. При превышении этого значения SDK будет сигнализировать о проблеме и отправлять отчёт в Tracer. Измеряется в байтах. По умолчанию имеет значение 10Gb. |
setExcludePath | Отвечает за добавление путей к заранее известным большим файлам, которые должны быть исключены из проверки использования дискового пространства. Принимает только пути, сформированные через GlobalDirs . |
ВАЖНО! Указывать путь необходимо от корневой папки приложения. Например:
GlobalDirs.INTERNAL_DATA.excludePath("foo/bar")
– внутреннее хранилище приложения;GlobalDirs.EXTERNAL_DATA.excludePath("foo/bar")
– файлы приложения на SD-карте;GlobalDirs.SRC.excludePath("foo/bar")
– файлы самого приложения;Чтобы проверить, что плагин подключён верно и действительно обрабатывает данные, включите дебажную загрузку данных (подробнее читайте в описании CoreTracerConfiguration
), установите для плагина DiskUsage
в качестве параметра probability
1, задайте минимальный порог занимаемой на диске памяти и запустите приложение – свежий отчёт об использовании диска появится в соответствующем разделе.
В вашем Application.kt
class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( DiskUsageConfiguration.build { setEnabled(true) setProbability(1) setInterestingSize(1) }, ) }