Nano Hash - криптовалюты, майнинг, программирование

Как переместить кеш webView на SD?

Я видел некоторые приложения, такие как браузер дельфинов (не HD-версия, а обычная), использующие кэш-память для веб-просмотра, но я не могу понять, как это сделать, кто-нибудь знает, как это сделать или указать мне в правильном направлении? Любая помощь приветствуется! Спасибо :)

02.08.2010

Ответы:


1

Что ж, объект WebSettings имеет несколько методов set...Path(). Неясно, предназначены ли какие-либо из них для фактического кеша. Также есть объект CacheManager, у которого есть куча статических методов, связанных с кешем, но нет очевидного способа изменить расположение кеша.

02.08.2010
  • Я также не смог найти никаких ответов с помощью поиска в Google, но мне действительно интересно, как другим удалось полностью переместить свой кеш с внутренней памяти устройства на SD-карту. Есть ли другие идеи? 03.08.2010
  • Да, ws.setAppCachePath(cachedir) существует, но все, что он делает, это создает пустой файл /cachedir/ApplicationCache.db. Я не знаю, как решить эту проблему. 27.03.2014

  • 2

    Вот статья, в которой точно описывается, как изменить хранилище кеша веб-просмотра для использования SD-карты: http://www.devahead.com/blog/2012/01/saving-the-android-webview-cache-on-the-sd-card/

    Я уже протестировал его в своем приложении, и он доказал свою эффективность.

    public class MainApplication extends Application {
        // ...
    
        @Override
        public File getCacheDir() {
            // NOTE: this method is used in Android 2.2 and higher
            File cachePath = this.getExternalCachePath();
            return cachePath != null ? cachePath : super.getCacheDir();
        }
    
        private File getExternalCachePath() {
            if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
                File externalStorageDir = Environment.getExternalStorageDirectory();
                // {SD_PATH}/Android/data/com.package.name/cache
                File extStorageAppCachePath = new File(externalStorageDir, "Android" + File.separator + "data" + File.separator + this.getPackageName() + File.separator + "cache");
    
                return extStorageAppCachePath;
            }
    
            return null;
        }
    }
    
    public class SomeWebViewActivity extends Activity {
        // ...
    
        @Override
        public File getCacheDir() {
            // Android 2.1 and lower
            return this.getApplicationContext().getCacheDir();
        }
    }
    
    28.03.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..