Как почистить кэш android studio
Перейти к содержимому

Как почистить кэш android studio

  • автор:

Каким образом можно очистить кэш всех приложений на устройстве Android?

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

Отслеживать
задан 9 июн 2020 в 5:25
Evgeniy Kozlov Evgeniy Kozlov
43 5 5 бронзовых знаков

stackoverflow.com/a/4605604/9363441 — вероятнее всего никак не получится, разве что через рут и другие костыли

9 июн 2020 в 5:38

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Стороннее приложение не может удалить кэш другого приложения начиная с Android 6.0+. Уровень защиты Manifest.permission.CLEAR_APP_CACHE изменен с «dangerous» на «signature | privileged» или «system | signature» в Android 6.0+.

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

Если приложение не установлено как системное приложение или у вас нет root прав, вы не сможете удалить кэш приложений в версии Android 6.0+.

Как приложение «Настройки» справляется с этим? Давайте посмотрим на код. В строках AppStorageSettings.java 172 — 178 мы видим:

if (v == mClearCacheButton) < // Lazy initialization of observer if (mClearCacheObserver == null) < mClearCacheObserver = new ClearCacheObserver(); >mPm.deleteApplicationCacheFiles(mPackageName, mClearCacheObserver); > 

Итак, приложение «Настройки» использует скрытый метод PackageManager.deleteApplicationCacheFiles(String, IPackageDataObserver) . Он может сделать это, потому что он имеет разрешение системного уровня «android.permission.CLEAR_APP_USER_DATA» (разрешение, которое не может иметь стороннее приложение).

Внешний кэш

Однако очистка внешнего кэша все еще поддерживается. Вы можете запросить разрешение WRITE_EXTERNAL_STORAGE , получить все установленные пакеты PackageManager , получить каталог внешнего кэша приложения и удалить каталог.

Root доступ

Конечно, если у вас есть root-доступ, вы можете удалить кэш другого приложения. Вот быстрый пример использования root-доступа для удаления всего кэша приложения:

PackageManager pm = getPackageManager(); List installedApplications = pm.getInstalledApplications(0); for (ApplicationInfo applicationInfo : installedApplications) < try < Context packageContext = createPackageContext(applicationInfo.packageName, 0); Listdirectories = new ArrayList<>(); directories.add(packageContext.getCacheDir()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) < Collections.addAll(directories, packageContext.getExternalCacheDirs()); >else < directories.add(packageContext.getExternalCacheDir()); >StringBuilder command = new StringBuilder("rm -rf"); for (File directory : directories) < command.append(" \"" + directory.getAbsolutePath() + "\""); >Shell.SU.run(command.toString()); > catch (PackageManager.NameNotFoundException wtf) < >> 

Очистка кэша при выходе из программы и полная остановка, как реализовать?

Хочется при выходе из программы чистить кэш и по возможности полностью выгрузить его из ОЗУ.

Нашел пару набросков кода, но не знаю какой будет эффективный и более правильный:
Здесь 1 вариант, Здесь 3 варианта

По поводу выгрузки из ОЗУ, как я понял даже при выходе из программы она весит в ОЗУ и в списке недавно запущенных приложений, если ее од туда убрать, то ОЗУ увеличивается.
Такое чувство что с программы не вышел, а свернул ее, хотя пользуюсь вот этим: finish();

И еще подскажите какая разница между finish(); и System.exit(); — что дают значиния int в System.exit(?);

  • Вопрос задан более трёх лет назад
  • 2768 просмотров

Комментировать
Решения вопроса 1

thelongrunsmoke

Александр Варакосов @thelongrunsmoke
Программист

1. Кэш приложения чистится очень просто. Надо вызвать getCacheDir() на контексте, после чего удалить возвращённую папку. Ещё надо добавить разрешение

2. По поводу выхода из приложения. Вы немного не понимаете как система работает с памятью.
На данный момент, рекомендовано пользоваться finish(). А оперативка будет очищена сборщиком мусора, если будет такая необходимость. В AsynkTask и сервисах используйте слабые ссылки, иначе очистка занимаемой ими памяти не гарантируется.

Ответ написан более трёх лет назад
Нравится 2 6 комментариев

Chvalov

Chvalov @Chvalov Автор вопроса
Александр Варакосов Как мне вызвать метод trimCache в

public void onClick(DialogInterface dialog, int id) <>

Или просто убрать static ?

@Override public boolean onOptionsItemSelected(MenuItem item) < // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int //noinspection SimplifiableIfStatement if (id == R.id.action_settings) < return true; >if (id == R.id.action_exit) < AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle(getResources().getString(R.string.ExitApplication)); alertDialogBuilder .setMessage(getResources().getString(R.string.ClickYesToExit)) .setCancelable(false) .setPositiveButton(getResources().getString(R.string.Yes), new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int id) < moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); >>) .setNegativeButton(getResources().getString(R.string.No), new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int id) < dialog.cancel(); >>); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); return true; > return super.onOptionsItemSelected(item); > @Override protected void onStop() < super.onStop(); >//Fires after the OnStop() state @Override protected void onDestroy() < super.onDestroy(); try < trimCache(this); //if trimCache is static >catch (Exception e) < // TODO Auto-generated catch block e.printStackTrace(); >> // Очистка кэша при выходе public static void trimCache(Context context) < try < File dir = context.getCacheDir(); if (dir != null && dir.isDirectory()) < deleteDir(dir); >> catch (Exception e) < // TODO: handle exception >> public static boolean deleteDir(File dir) < if (dir != null && dir.isDirectory()) < String[] children = dir.list(); for (int i = 0; i < children.length; i++) < boolean success = deleteDir(new File(dir, children[i])); if (!success) < return false; >Log.i("OvisLog", "Кэш удален"); > > // The directory is now empty so delete it return dir.delete(); > >

thelongrunsmoke

Александр Варакосов @thelongrunsmoke

Простейший способ, использовать getParent(), для обращения к родительской активити. А ещё лучше вынести этот метод в отдельный класс.

Chvalov

Chvalov @Chvalov Автор вопроса

b5f60874314e4c65a6d39e876662d847.png

Александр Варакосов: Вынес в отдельный класс ClearCache, но все таки как же вызвать trimCache ?

thelongrunsmoke

Александр Варакосов @thelongrunsmoke
Chvalov: Передавай ему контекст приложения, а не диалога.

Chvalov

Chvalov @Chvalov Автор вопроса

Александр Варакосов: Спасибо, еще вопрос, можно ли ее полностью остановить, а то если зайти и приложения и выбрать свою программу то там активная кнопка «Остановить»

thelongrunsmoke

Александр Варакосов @thelongrunsmoke

Chvalov: Эта кнопка отправляет приложению броадкаст, по которому вызывается один из методов родительского класса активити, не знаю как сейчас, но раньше там одинокий finish().

Руководство по очистке Android Cache на Android

Для пользователей Android, когда вы сталкивались с проблемой приложения или программного обеспечения на телефоне Android, вам, возможно, давали советы, такие как «очистить кэш на Android» или «очистить данные приложения». Действительно, очистка кэша Android может стать действительно эффективным способом ускорить работу вашего телефона Android и решить проблемы с Android, такие как Android-приложение, работающее медленно.

Так как же очистить кеш на Android? Есть ли простой способ удалить кеш Android? В этой статье вы узнаете несколько простых руководств по очистке кэша Android. Теперь освободите пространство Android и улучшите производительность своего Android!

Очистить кеш на Android

Очистить кеш на Android

  • Часть 1. Очистка кэшированного на Android (данные приложений)
  • Часть 2. Очистить кеш на Android (Chrome)
  • Часть 3. Очистить кэш Android с помощью приложения для очистки кеша Android

Как очистить кеш на Android (данные приложений)

Очистить кешируется на Android (данные одного приложения)

Что значит кеш? Каждый раз, когда вы используете приложение на Android, будет создаваться кеш, который поможет вам улучшить работу с браузером, но позже станет бесполезным. Очистка кэша приложения может быть очень хорошей, если приложение падает или отстает. Процесс довольно прост, как следует:

Android Очистить кеш приложений

Шаг 1 Перейдите в «Настройки» и нажмите «Диспетчер приложений» (или «Приложения»).

Шаг 2 Здесь будут перечислены все загруженные приложения. Нажмите на желаемое приложение, которое вы хотите очистить кэшированные данные, и это приведет к деталям.

Шаг 3 Там вы можете увидеть общее пространство, занимаемое кешем. Нажмите «Очистить кеш», после чего все кэшированные приложения на Android будут удалены.

Следуя тем же шагам, вы можете очистить кеш Facebook или другой кэш приложения на Android по одному.

Очистить кеш на Android (все приложения)

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

Очистить кэш Android Все приложения

Шаг 1 Зайдите в «Настройки» и нажмите «Хранилище».

Шаг 2 Вы увидите общий объем хранилища и другую полезную информацию, такую ​​как «Используемое пространство», «Системная память» и т. Д. Нажмите «Параметр кэшированных данных», после чего появится всплывающее окно с надписью «Это очистит кэшированные данные для всех приложений».

Шаг 3 Нажмите «ОК», все кэшированные данные приложений будут удалены одновременно.

Лучший iPhone Cache Eraser — Как очистить кэш iPhone

  • FoneLab — самая мощная утилита для постоянного и тщательного удаления всего содержимого и настроек iPhone.
  • Сотрите все содержимое и настройки на устройстве iOS.
  • Три стирающих уровня для очистки кэша на iPhone.
  • Поддержка iPhone, iPad, iPod.
  • Удалите все данные iOS, чтобы лучше защитить вашу конфиденциальность.

Как очистить кэш на Android (Chrome кеш)

Технически, вы можете использовать Chrome как приложение, и очистить данные приложения — это нормально. Но история Chrome может немного отличаться от кэшированных данных, и есть еще очистить историю Chrome на Android, Очистка кеша браузера не доставляет особых хлопот. Вы можете выполнить следующие действия:

Очистить кэш Android (на Chrome)

Шаг 1 Откройте Chrome и нажмите на три вертикальные точки в верхней правой части экрана.

Шаг 2 Выберите «Настройки» из выпадающего меню. В «Настройках» нажмите «Конфиденциальность».

Шаг 3 В нижней части экрана вы увидите еще три точки по вертикали, нажмите на них и выберите «Очистить данные браузера».

Шаг 4 В меню «Очистить данные браузера» установите флажок «Очистить кэш». Вы также можете выбрать другие параметры, такие как «Очистить историю просмотров», «Очистить историю просмотров», как вам нужно. Затем нажмите «Очистить».

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

Как очистить кэш Android с помощью приложения очистки кеша Android

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

Clean Master

Очиститель App Cache

Очиститель 1 Tap

Быстрая очистка

В этой статье мы рассмотрели несколько способов очистки кэша на телефоне Android. Вы можете использовать встроенное приложение настроек для очистки кеша в Android, или вы можете обратиться за помощью к очистителю кеша в Android-приложении. Еще есть вопросы по очистке кеша приложений на Android? Не стесняйтесь оставлять свои комментарии ниже.

Что вы думаете об этом посте.

Рейтинг: 4.8 / 5 (на основе рейтингов 179)

04 января 2019 года 17:16 / Обновлено Луиза Уайт в Удалить данные Android

Более Чтение

Значок Disqus

Оставьте свой комментарий и присоединяйтесь к нашему обсуждению

Главная Удалить данные Android Очистить кеш на Android

Aiseesoft

Авторские права © 2024 Aiseesoft Studio. Все права защищены.

Как очистить кэш приложений на смартфоне Samsung Galaxy

Приложения используют внутреннюю память Samsung Galaxy, чтобы сохранять временные файлы для быстрого доступа при последующих запусках. Например, фотографии, документы и другие файлы.

Если на Samsung Galaxy уменьшилась память, рекомендуем очистить кэш приложений. В этой статье вы узнаете, как это сделать.

Как очистить кэш приложений

Как включить сортировку по размеру приложения

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *