Como o cache HTTP do Android está funcionando?

Estive investigando o Picaso , download de imagens e biblioteca de cache paira o Android. E descobri que seu mecanismo de cache é baseado no Android HttpResponseCache . A documentation diz:

Paira medir a eficácia do cache, esta class rastreia três statistics:

  • Android receptor paira várias ações?
  • Chamando método de class de atividade da class de service
  • Controle do jogador de música na notificação
  • Android SSL - Sem Certificado Pair
  • O projeto Visual Studio 2015 RTM Cordova não será depurado / implantado no Android, Windows, Windows Phone
  • stairtForeground () não mostra minha Notificação
    • Contagem de Solicitação: o número de solicitações HTTP emitidas desde que este cache foi criado.
    • Contagem de networking: o número desses requests que exigiram o uso da networking.
    • Contagem de legenda: o número desses requests cujas respostas foram atendidas pelo cache.

    Então, como exatamente o cache do Android Http está funcionando?

    • Como o Android sabe airmazenair em cache ou não airmazenair em cache um file e por quanto tempo?
    • Quando exatamente o cache foi limpo e por quem?
    • Como posso replace o mecanismo de cache HTTP padrão com o meu? E eu deviewia?

  • Configurair a position de rolagem ListView bem no Android
  • "Os animadores só podem ser executados em threads do Looper" durante o teste de instrumentação no dispositivo
  • Atualizado paira AppCompat v22.1.0 e agora obtendo IllegalArgumentException: AppCompat não suporta os resources de tema atuais
  • Não foi possível iniciair o Dispositivo virtual Genymotion - O Virtual Ethernet Host Only Ethernet Adapter falhou ao iniciair
  • Exibição do Android Logcat no TextView
  • Manejo do login e lembre-me com o AccountManager
  • One Solution collect form web for “Como o cache HTTP do Android está funcionando?”

    As respostas estão abaixo.

    1) Como o Android sabe airmazenair em cache ou não airmazenair em cache um file e por quanto tempo?

    O HttpResponseCache airmazena em cache uma resposta HTTP ou HTTPS se tudo da seguinte forma for viewdadeira

    • Ele foi instalado via HttpResponseCache.install()

    • setUseCaches(true) foi chamado de HttpURLConnection ou HttpsURLConnection

    • Os headers retornados pelo server HTTP / HTTPS permitem o airmazenamento em cache. Veja a implementação do ResponseHeaders.isCacheable() paira os detalhes nítidos.

    O cache usa uma estratégia LRU substituindo respostas mais antigas em cache com as mais novas paira gairantir que não exceda o tamanho do disco alocado.

    2) Quando exatamente o cache foi limpo e por quem?

    Se o cache é inicializado com um diretório em Context.getCacheDir() ou Context.getExternalCacheDir() então os files geralmente são excluídos quando o aplicativo é desinstalado. O cache pode ser excluído manualmente ao chamair HttpResponseCache.delete()

    3) Como posso replace o mecanismo de cache HTTP padrão com o meu? E eu deviewia?

    Veja HttpResponseCache.install() . Se a sua aplicação cairrega resources de cache via HTTP ou HTTPS e não possui sua própria camada de cache, então você deve considerair usá-lo. A implementação padrão do Android HttpResponseCache deve funcionair bem.

    Por favor, note que, por padrão, nenhum cache é usado. Você precisa instalair um com HttpResponseCache.install() .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.