Внимание! Если вам дали ссылку на эту статью в ответ на ваш вопрос типа «Моё приложение сломалось, как его починить?», то можете сразу переходить к разделу «2.2. Как очистить базу данных?». Но потом, пожалуйста, прочитайте и всю остальную статью тоже.
Приложения Telegram при работе скачивают данные с сервера и сохраняют их на устройстве. Благодаря тому, что данные сохранены на устройстве, приложения выполняют некоторые операции — например, поиск — намного быстрее, чем если бы прихолилось каждый раз обращаться к серверу.
Но иногда данных на устройстве становится слишком много, а кроме того, при их сохранении могут возникать сбои. И тогда приложение Telegram может не только начать работать медленнее, но и вовсе перестать отображать корректные данные. Наиболее часто с этим сталкиваются пользователи Telegram Android, но и другие официальные приложения Telegram тоже могут потребовать очистки накопленных данных. В этой статье мы рассказываем, как это сделать.
Содержание:
Общая информация
Приложения Telegram хранят на вашем устройстве данные разных типов:
- Фото и видео, скачанные в чатах. Хранятся в виде файлов в в директориях приложения Telegram, а их хранилище называется «кеш»1.
- Тексты сообщений и некоторая дополнительная служебная информация о чатах. Хранилище этих данных называется «база данных».
- Техническая информация обо всех событиях, которые происходят в приложении, хранится в специальных текстовых файлах, которые называются «логи».
1. Кеш
Переполнение кеша редко приводит к нестабильной работе приложения. Тем не менее, если кеш содержит миллионы файлов и занимает десятки гигабайт, то это может мешать не только приложению Telegram, но и всей операционной системе.
1.1. Как посмотреть?
В разделе «Настройки › Данные и память › Использование памяти» вы можете
- Увидеть общий размер кеша, то есть объём памяти устройства, которое он занимает.
- Посмотреть, сколько места занимают данные каждого типа.
- Очистить кеш частично или полностью.
- Увидеть, сколько места занимают медиа из каждого отдельного чата.
Обратите внимание:
- Приложение может некорректно определять тип скачанных данных. Например, скачанные видео могут отображаться на диаграмме как данные типа «Фото профиля». Карточка с описанием этого бага доступна по ссылке https://bugs.telegram.org/c/42580.
- Настройка «Максимальный размер кэша» не всегда работает корректно. Например, если вы установите в этой настройке значение «5 гигабайт», то это не даст гарантии, что кеш приложения никогда не будет занимать больше места. Карточка с описанием этого бага доступна по ссылке https://bugs.telegram.org/c/42579.
- Если в вашем приложении выполнен вход в несколько аккаунтов, то раздел «Использование памяти» будет отображать данные неочевидным образом:
- Диаграмма с разбивкой по типам данных отображает данные, скачанные всеми аккаунтами. Так же как и список типов данных под ней. Кнопка «Очистить кэш» удалит данные, скачанные не только текущим аккаунтом, но и всеми остальными.
- В разделе «Автоудаление закешированных медиа» приложение отображает настройки только текущего аккаунта. Для разных аккаунтов вы можете задать разные настройки автоудаления.
- Следующая настройка «Максимальный размер кэша» опять общая для всех аккаунтов: если вы измените её в одном аккаунте, то она изменится также и во всех остальных.
- Ещё ниже все окончательно перепутано: вкладка «Чаты» отображает только чаты текущего аккаунта, а вкладки «Медиа» и «Файлы» — данные всех аккаунтов.
Карточка с предложением более детально информировать пользователя о том, что именно он видит в приложении, доступна по ссылке https://bugs.telegram.org/c/42582.
1.2. Как очистить?
В разделе «Настройки › Данные и память › Использование памяти» нажмите кнопку «Очистить кэш» и подтвердите очистку.
1.3. Что изменится после очистки?
Все скачанные медиа удалятся с вашего устройства, но сохранятся невредимыми на сервере Телеграма. Вы без каких-либо проблем сможете заново скачать их из тех чатов, откуда они были скачаны ранее. Однако если вы привыкли просматривать медиа, скачанные в кеш, с помощью своей Галереи, то будьте готовы к тому, что эти медиа из неё исчезнут, и их нужно будет скачивать снова.
1.4. Как настроить автоочистку?
В том же разделе «Настройки › Данные и память › Использование памяти» вы можете
- Задать срок хранения медиа, скачанных из личных чатов, групп, каналов или историй, от 1 дня до вечности, а также задать исключения для каждого из этих типов чатов: например, установить срок хранения «1 день» для всех личных чатов, кроме нескольких отдельных.
- Установить максимальный размер кеша. Значения, доступные в этой настройке, зависят от общего объёма памяти устройства.
1.5. Как настроить автоскачивание?
Для этого нужно вернуться в раздел «Настройки › Данные и память».
В разделе «Автозагрузка медиа» вы можете включить или отключить автоматическое скачивание данных для любого из трёх типов подключения к сети интернет. Кроме того, нажав на название любого из этих трёх типов подключения, вы можете задать более детальные настройки в зависимости от типа данных. А нажав на любой тип данных, ещё более тонко настроить скачивание из чатов разных типов.
В этом же разделе вы можете настроить, из каких типов чатов медиа должны автоматически отображаться в Галерее вашего устройства, а из каких — не должны. Нажав на любой из типов чатов, вы сможете задать более тонкие настройки сохранения в Галерею.
К сожалению, операционные системы на устройствах некоторых производителей (например, Huawei, но не только этого бренда) могут игнорировать настройки приложения и отображать медиа в Галерее даже в том случае, если вы отключили эту опцию.
Кроме того, вы можете задать место хранения кеша: во внутренней памяти устройства или на карте памяти. Эта настройка отображается только в том случае, если в устройстве установлена карта памяти.
2. База данных
База данных хранит технические данные, которые невозможно просмотреть в приложении Telegram. Их объём намного меньше, чем у кеша, но сбои и ошибки в базе данных могут мешать работе приложения намного сильнее.
Из-за некорректной работы базы могут начать неправильно работать следующие функции:
- Отображение списка чатов. Чаты могут не отображаться в общем списке, хотя они там точно есть, и даже успешно находятся поиском.
- Скачивание медиа с сервера на устройство и их загрузка с устройства на сервер. Данные могут не загружаться, или их загрузка может зависать, или после загрузки может оказаться, что данные не были сохранены. Такие ошибки могут быть вызваны не только сбоями базы данных, но и переполненным кешем.
- Загрузка историй с сервера на устройство или с устройства на сервер.
Другие функции приложения иногда тоже начинают работать некорректно.
Обратите внимание: каждому из аккаунтов, в которые выполнен вход в вашем приложении, соответствует своя отдельная база данных. Поэтому для того, чтобы исправить некорректную работу приложения, может потребоваться поочерёдно войти в каждый из аккаунтов и очистить его базу.
2.1. При каком размере базы её точно нужно очищать?
Точный размер, при котором базу пора очищать, назвать невозможно. Многие пользователи не испытывают никаких проблем при использовании приложения с базой данных, занимающей целый гигабайт, в то время как другие практически не могут нормально использовать приложение, база данных которого занимает лишь несколько десятков мегабайт.
Тем не менее, авторы этой статьи придерживаются мнения, что нормальный размер базы данных — до 100 мегабайт. Но, повторимся, это лишь ориентировочное значение.
2.2. Как очистить базу данных?
2.2.1. Telegram Android
- Перейдите в раздел «Настройки › Данные и память › Использование памяти».
- Нажмите кнопку с тремя точками, расположенную в правом верхнем углу экрана.
- Выберите пункт «Очистить базу данных».
- Запомните, сколько места она занимала на устройстве до очистки (это важно!).
- Подтвердите её очистку и дождитесь завершения процесса. Обычно очистка базы занимает несколько десятков секунд, но в некоторых случаях может длиться до 10 минут или даже дольше.
- Снова нажмите кнопку с тремя точками и выберите пункт «Очистить базу данных».
- Посмотрите, сколько места база занимает после очистки.
Дело в том, что если в базе данных накопились достаточно серьёзные ошибки, то даже её собственный механизм очистки может начать работать неправильно. Нормальный размер базы после очистки — несколько десятков мегабайт. Если размер базы не изменился после очистки или по-прежнему превышает 100 мегабайт, значит, очистка базы не сработала или сработала некорректно. В этом случае необходимо выйти из аккаунта («Настройки › кнопка с тремя точками в правом верхнем углу экрана › Выход › Выход»), а потом заново войти в него, предварительно убедившись в том, что у вас есть доступ к сим-карте аккаунта или к другим устройствам с выполненным входом, а также что вы помните облачный пароль аккаунта, если он задан в настройках.
Обратите внимание: очистка базы данных одного аккаунта никак не затрагивает базы данных других аккаунтов, в которые выполнен вход в вашем приложении.
Также у пользователей Android есть возможность сбрасывать кеш чатов. Этот сброс иногда тоже устраняет некоторые проблемы в работе приложения.
- Перейдите в раздел «Настройки» и дважды нажмите+подержите надпись с номером версии приложения. Приложение отобразит дебаг-меню.
- В открывшемся меню выберите пункт «Сбросить кэш чатов».
2.2.2. Telegram iOS
Пользователям iOS доступно несколько разных способов очистки базы данных приложения. Все нужные кнопки находятся в так называемом «дебаг-меню». Для того, чотбы его открыть, быстро нажмите 10 раз подряд на кнопку настроек (самая правая кнопка в нижней части экрана).
- Clear Database. Удаляет все локально сохранённые данные, включая секретные чаты. Этой опцией необходимо пользоваться тогда, когда не помогла оптимизация базы: см. пункт 3.
- Clear Database and Cache. То же, что и предыдущий пункт, но очищается еще и весь кеш медиа.
- Optimize Database. Более щадящая очистка базы. Оставляет на устройстве некоторые данные, включая секретные чаты, но при этом способна восстановить корректную работоспособность приложения.
2.3. Что изменится после очистки?
Никакие данные ниоткуда не исчезнут: все ваши сообщения по-прежнему останутся в тех чатах, где были и раньше («Clear Database» в Telegram iOS — исключение). Но приложению потребуется некоторое время, чтобы заново скачать с сервера те данные, которые нужны для корректной и быстрой работы разных функций. Пока эти данные не будут скачаны, приложение может «тормозить»: например, медленнее переключаться с одних экранов на другие, или дольше выполнять поиск по тексту. Обычно через несколько минут после очистки базы все функции снова начинают работать не хуже и не медленнее, чем до очистки, а зачастую даже быстрее.
2.4. Как настроить автоочистку?
К сожалению, никак. Редакция @tginfo даже не уверена, что приложение вообще умеет автоматически удалять из базы данных ненужные или некорректные данные: никто и никогда не видел, чтобы размер базы уменьшился без её ручной очистки. Мы советуем всем пользователям Telegram Android регулярно открывать экран очистки базы данных и проверять, не пора ли очистить её вручную.
Карточка с предложением автоматически очищать базу данных при достижении определённого размера во время бездействия приложения доступна по ссылке https://bugs.telegram.org/c/22630.
Карточка с предложением вернуть кнопку очистки базы данных в раздел «Использование памяти», где она была расположена ранее и обращала на себя внимание пользователей, доступна по ссылке https://bugs.telegram.org/c/42700.
3. Логи
Приложение Telegram Android может хранить логи — текстовые файлы с описанием технических событий, которые происходят в приложении.
Такие события записываются в логи не всегда:
- Стабильная версия приложения по умолчанию не ведёт логов, но их можно включить вручную. При этом важно не забыть отключить их после того, как в них отпадёт необходимость, иначе со временем они могут начать занимать значительную часть свободного места в памяти устройства. Отключить логи можно там же, где и включить.
- А вот в бета-версия приложения логи включены по умолчанию, и их невозможно отключить. В ней особенно важно регулярно очищать логи, чтобы они не слишком разрастались.
3.1. Как очистить логи?
Очистить накопившиеся логи можно двумя способами:
- В меню приложения перейдите в раздел «Настройки» и в самом низу выберите пункт «Очистить лог». Если его там нет, значит, в данный момент ведение логов в вашем приложении отключено.
- В разделе «Настройки › Данные и память › Использование памяти» отметьте галочкой пункт «Лог» и нажмите кнопку «Очистить кэш».
Автоматическая очистка логов в приложении, к сожалению, не предусмотрена. Карточка с предложением добавить в приложение настройку «Максимальный размер логов» доступна по ссылке https://bugs.telegram.org/c/42581.
- В сети продолжается дискуссия на тему того, как правильно писать на русском языке слово «cache» в значении «память». В разных местах интерфейса приложений Telegram используется разное написание: например, «Очистить кэш», но «Автоудаление закешированных медиа». Авторы этой статьи предпочитают вариант «кеш», поскольку именно такое написание зафиксировано в Русском орфографическом словаре под ред. В. В. Лопатина и О. Е. Ивановой.
↩︎