![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
缓存
yangxi_001
这个作者很懒,什么都没留下…
展开
-
Android清除本地数据缓存代码
import java.io.File;import android.content.Context;import android.os.Environment;/** * 本应用数据清除管理器 */public class DataCleanManager { /** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param co转载 2014-10-10 15:16:14 · 705 阅读 · 0 评论 -
Android应用开发之(利用好图片缓存)
在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下(例如使用 ListView, GridView 或者 ViewPager控件),显示在屏幕上的图片以及即将显示在屏幕上的图片数量是非常大的(例如在图库中浏览大量图片)。在这些控件中,当一个子控件不显示的时候,系统会重用该控件来循环显示 以便减少对内存的消耗。同时垃圾回收机制还会释放那些已经载入内存中转载 2013-11-27 00:11:49 · 719 阅读 · 0 评论 -
Android 加载大图片时报OOM的解决方案(源码)
在Android中: 1.一个进程的内存可以由2个部门组成:java 施用内存 ,C 施用内存 ,这两个内存的和必需小于16M,不然就会出现各人熟悉的OOM,这个就是熬头种OOM的情况。 2.一朝内存分配给Java后,以后这块内存纵然开释后,也只能给Java的施用,这个估计跟java虚拟机里把内存分成好几块进行缓存的原因有关,反正C就别想用到这块的内存了,所以要是Jav转载 2013-11-26 13:15:15 · 726 阅读 · 0 评论 -
【Google官方教程】第四课:在UI中显示Bitmap
http://my.oschina.net/ryanhoo/blog/88484译者:Ryan Hoo来源:https://developer.android.com/develop/index.html译者按: 在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮转载 2013-06-24 18:08:00 · 730 阅读 · 0 评论 -
【Google官方教程】第三课:缓存Bitmap
http://my.oschina.net/ryanhoo/blog/88443译者:Ryan Hoo来源:https://developer.android.com/develop/index.html译者按: 在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮转载 2013-06-24 18:07:25 · 607 阅读 · 0 评论 -
【Google官方教程】第二课:在非UI线程处理Bitmap
http://my.oschina.net/ryanhoo/blog/88344译者:Ryan Hoo来源:https://developer.android.com/develop/index.html译者按: 在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮转载 2013-06-24 18:06:41 · 645 阅读 · 0 评论 -
【Google官方教程】第一课:高效地加载大Bitmap(位图)
http://my.oschina.net/ryanhoo/blog/88242译者:Ryan Hoo来源:https://developer.android.com/develop/index.html译者按: 在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮转载 2013-06-24 18:06:12 · 657 阅读 · 0 评论 -
【Google官方教程】前言:高效的Bitmap显示
http://my.oschina.net/ryanhoo/blog/88153译者:Ryan Hoo来源:https://developer.android.com/develop/index.html译者按: 在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮转载 2013-06-24 18:05:19 · 617 阅读 · 0 评论 -
Android Bitmap图像优化
在Android应用开发中不可避免的会用到图形图像,这样就会生成Bitmap对象。如果在开发过程中没有处理好Bitmap对象就很容易产生Out Of Memory(OOM)的异常。以下列举几点使用Bitmap对象需要注意的地方: 一个Android应用程序最多只能使用16M的内存,在Android的 Android Compatibility Definition Document (C转载 2013-06-24 17:42:33 · 698 阅读 · 0 评论 -
Android开发优化之——对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问转载 2013-06-24 17:41:31 · 805 阅读 · 0 评论 -
【构建Android缓存模块】(一)吐槽与原理分析
摘要:在我翻译的Google官方系列教程中,Bitmap系列由浅入深地介绍了如何正确的解码Bitmap,异步线程操作以及使用Fragments重用等技术,并且在最后给出了非常强大的独家秘笈:BitmapFun,让猿媛们得以一窥究竟Google的攻城师们是如何高屋建瓴地秒杀OOM的。 前言 在下载到BitmapFun.rar这个神圣的压缩包以后,我是双手颤抖,似乎是打开上转载 2013-11-27 17:47:55 · 580 阅读 · 0 评论 -
Android系统应用信息中存储和缓存的计算方法
转自:进行如下操作:设置->应用->选择一个应用->应用信息会到达如下界面:可以看到这个应用占用的磁盘空间。先说结果,这几项会计算哪些文件(夹)。1.应用,由三项相加组成/data/data/com.myapp/lib,即so库文件夹大小/data/app/com.myapp-1.apk,原始apk文件的复制/data/dal转载 2014-11-11 14:02:52 · 828 阅读 · 0 评论 -
Android技术积累:图片缓存管理
如果每次加载同一张图片都要从网络获取,那代价实在太大了。所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了。从内存缓存读取图片是最快的,但是因为内存容量有限,所以最好再加上文件缓存。文件缓存空间也不是无限大的,容量越大读取效率越低,因此可以设置一个限定大小比如10M,或者限定保存时间比如一天。因此,加载图片的流程应该是:1、先从内存缓转载 2013-11-28 22:23:48 · 780 阅读 · 1 评论 -
Android 之 远程图片获取和本地缓存
概述对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用消耗掉了他手机流量的话,那么可想而知你的应用将面临什么样的命运。另外一个问题就是加载速度,如果应用中图片加载速度很慢的话,那么用户同样会等到崩溃。那么如何处理好图片资源的获取和管理呢?转载 2013-11-28 19:42:55 · 875 阅读 · 1 评论 -
android 缓存管理及LRU算法
1、为什么要用缓存缓存是存取数据的临时地,因为取原始数据代价太大了,加了缓存,可以取得快些。缓存可以认为是原始数据的子集,它是从原始数据里复制出来的,并且为了能被取回,被加上了标志。在android开发中,经常要访问网络数据比如大量网络图片,如果每次需要同一张图片都去网络获取,这代价显然太大了。可以考虑设置本地文件缓存和内存缓存,存储从网络取得的数据;本地文件缓存空间并非是无限大的转载 2013-11-28 21:44:27 · 737 阅读 · 0 评论 -
App缓存管理
无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户。Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一。 采用缓存,可以进一步大大缓解数据交互的压力,特此,我们简略列举转载 2013-11-28 19:45:55 · 667 阅读 · 0 评论 -
图片缓存(源于SDK文档)
大家都知道,现在的手机屏幕分辨率是越来越大了,虽然之前我们介绍了异步加载图片的方法。但要知道,一个应用可用的内存是有限的。我们不可能将所有的内存都用来存储图片,也不可能为了内存而每次取图片时都上网下载(流量费是很贵滴,而且下载也很耗电啊)。因此,对于已下载的图片,我们需要在本地维持一个缓存。内存缓存LurCache是一个内存缓存类(Android3.1引入,通过v4的支援包,可以在AP转载 2013-11-28 10:29:22 · 758 阅读 · 0 评论 -
【构建Android缓存模块】(二)Memory Cache & File Cache
上节课我们讲到普通应用缓存Bitmap的实现分析,根据MVC的实现原理,我将这个简单的缓存实现单独写成一个模块,这样可以方便以后的使用,对于任意的需求,都属于一个可插拔式的功能。 之前提到,这个缓存模块主要有两个子部件: Memory Cache:内存缓存的存取速度非常惊人,远远快于文件读取,如果没有内存限制,当然首选这种方式。遗憾的是我们有着16M的限制(当然大多转载 2013-11-27 17:48:44 · 791 阅读 · 0 评论 -
android读取大图片并缓存
最近开发电视版的云存储应用,要求”我的相册“模块有全屏预览图片的功能,全屏分辨率是1920*1080超清。UI组件方面采用Gallery+ImageSwitcher组合,这里略过,详情参见google Android API。相册图片预取缓存策略是内存缓存(硬引用LruCache、软引用SoftReference)、外部文件缓存(context.getCachedDir()),缓存中取不到转载 2013-11-28 09:23:52 · 690 阅读 · 0 评论 -
【构建Android缓存模块】(三)Controller & 异步图片加载
上节课我们学习了缓存模块的实现, 缓存分做两份:Memory Cache和File Cache。方法也很简单,分别是:存储文件按唯一key值索引文件清空缓存 区别在于内存缓存读取优先,因为它读写的速度更快。但是考虑到内存限制,退而选用文件存储,分担内存缓存的压力。 原理非常简单,在第一课中已经详细分析了。那么要怎么才能将这个缓存模块与UI模块的显示关联起来呢转载 2013-11-27 17:51:00 · 665 阅读 · 0 评论 -
Android提供的LruCache类简介
package android.util; import java.util.LinkedHashMap; import java.util.Map; /** * A cache that holds strong references to a limited number of values. Each time * a value is acce转载 2013-06-24 17:41:08 · 660 阅读 · 0 评论 -
Android4.0以上源码中的DiskLruCache类简介
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.转载 2013-06-24 17:39:36 · 896 阅读 · 0 评论 -
listview中图片的异步加载,双缓存
//整理了网上的一些资料,运用了内存缓存和文件缓存两种技术,希望对大家有用public class BitmapManager { private static HashMap> cache; //图片缓存是当有加载过相同的图片的时候,可以快速重复使用,比如同一个人的头像。 private static ExecutorService pool转载 2013-06-09 10:41:43 · 825 阅读 · 0 评论 -
Android之如何删除项目的缓存
如何删除项目的缓存:getCacheDir()能够得到当前项目的缓存地址在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下打开关闭使用缓存,一共有五个转载 2013-05-07 10:03:08 · 1189 阅读 · 0 评论 -
关于android 端,人人网以及新浪网 webview 页面缓存问题
前一段时间就在开放新浪的oauth 2.0。我是用的java的SDK,而且用到了webView。 在我第一次授权成功的时候,新浪端应该是做了页面缓存的。而在我第二次授权的时候,会出现自动登录的现象。 这样就导致了,该用户只能用一个帐号登录的。这样是与设计要求不符合的。用户体验也是相当的不好。在网上也找到了相关的资料。 其中Java代转载 2013-05-07 10:01:16 · 895 阅读 · 0 评论 -
Android WebView删除缓存
1.删除保存于手机上的缓存.// clear the cache before time numDaysprivateint clearCacheFolder(File dir,long numDays) {int deletedFiles =0; if (dir!=null && dir.isDirectory()) {try {for (File c转载 2013-05-07 10:06:11 · 947 阅读 · 0 评论 -
Android异步加载图像(含线程池,缓存方法) .
研究了android从网络上异步加载图像:(1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法。 在主线程中new 一个Handler对象,加载图像方法如下所示[java] view plaincopyprint?private void loadImage(final String转载 2013-01-17 14:27:56 · 613 阅读 · 0 评论 -
Android中使用SoftReference缓存图片对象
Java中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。 SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不转载 2013-01-16 11:43:46 · 442 阅读 · 0 评论 -
Android 之图片本地缓存解决方案
对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用消耗掉了他手机流量的话,那么可想而知你的应用将面临什么样的命运。对于图片资源来说,你不可能让应用每次获取的时候都重新到远程去下载,这样会浪费资源,但是你又不能让所有图片资源都转载 2013-01-16 11:42:41 · 541 阅读 · 0 评论 -
三步搞定android应用图片缓存
目前很多商业应用都会涉及到从网络上读取图片数据的问题,为了节约用户流量,应用一般会将图片缓存起来。图片缓存一般分为内存缓存和外存缓存。内存 缓存运用java的缓存机制,在程序完全退出后,缓存所在的内存空间可能被其它应用程序占用从而丢失。外存缓存一般放在程序特有的访问空间或者sd卡中, 在sd卡中存放的资源为公有资源,其它程序也可以访问,且对用户来讲没有一个强制清除缓存的规范机制。综合以上,本文采用转载 2013-01-16 11:38:10 · 534 阅读 · 0 评论 -
android读取大图片并缓存
最近开发电视版的云存储应用,要求”我的相册“模块有全屏预览图片的功能,全屏分辨率是1920*1080超清。UI组件方面采用Gallery+ImageSwitcher组合,这里略过,详情参见google Android API。相册图片预取缓存策略是内存缓存(硬引用LruCache、软引用SoftReference)、外部文件缓存(context.getCachedDir()),缓存中取不到转载 2013-01-16 11:37:10 · 484 阅读 · 0 评论 -
ListView适配器及缓存机制
ListView和适配器的基础:它是如何工作的:ListView 向适配器说“给我的每个条目一个布局”一个新的布局创建出来并显示出来下一个问题:当我们有10亿个条目的时候怎么办,难道新创建一个新的布局并显示出来吗?答案肯定是“不”。Android会为你把布局缓存起来。这一部分在Android中称呼为"Recycle - 回收利用"。以下为它的具体实现过程图。转载 2013-06-09 10:25:53 · 682 阅读 · 0 评论 -
Listview异步加载缓存图片,解决快速滑动问题
搜了大量资料见的大多避免oom的方法有压缩和缓存,这里也采用这2种方法吧。 压缩就不用我说了,缓存图片我用的LruCache这个类,本身已经实现了同步,这里就不再多说什么了,不知道的同学可以去研究下,这里主要想讲的的异步加载的时机。在这里写下也只是分享下我的体验,欢迎拍砖~~~ 大家做过这个的都碰到过,快速滑动时由于大量异步加载和message消息的等待排队,当快速滑动停止时转载 2013-06-09 10:31:09 · 1413 阅读 · 0 评论 -
Android 缓存Bitmaps
Android中加载一个Bitmap(位图)到你的UI界面是非常简单的,但是如果你要一次加载一大批,事情就变得复杂多了。在大多数的情况下(如ListView、GridView或者ViewPager这样的组件),屏幕上的图片以及马上要在滚动到屏幕上显示的图片的总量,在本质上是不受限制的。像这样的组件在子视图移出屏幕后会进行视图回收,内存使用仍被保留。但假设你不保留任何长期存活的引用,垃圾回收转载 2013-06-24 17:37:31 · 673 阅读 · 0 评论 -
【构建Android缓存模块】(三)Controller & 异步图片加载
http://my.oschina.net/ryanhoo/blog/93432 上节课我们学习了缓存模块的实现, 缓存分做两份:Memory Cache和File Cache。方法也很简单,分别是:存储文件按唯一key值索引文件清空缓存 区别在于内存缓存读取优先,因为它读写的速度更快。但是考虑到内存限制,退而选用文件存储,分担内存缓存的压力。转载 2013-06-24 17:37:09 · 708 阅读 · 0 评论 -
【构建Android缓存模块】(二)Memory Cache & File Cache
http://my.oschina.net/ryanhoo/blog/93406 上节课我们讲到普通应用缓存Bitmap的实现分析,根据MVC的实现原理,我将这个简单的缓存实现单独写成一个模块,这样可以方便以后的使用,对于任意的需求,都属于一个可插拔式的功能。 之前提到,这个缓存模块主要有两个子部件: Memory Cache:内存缓存的存取速度非常惊转载 2013-06-24 17:36:20 · 797 阅读 · 0 评论 -
【构建Android缓存模块】(一)吐槽与原理分析
http://my.oschina.net/ryanhoo/blog/93285 摘要:在我翻译的Google官方系列教程中,Bitmap系列由浅入深地介绍了如何正确的解码Bitmap,异步线程操作以及使用Fragments重用等技术,并且在最后给出了非常强大的独家秘笈:BitmapFun,让猿媛们得以一窥究竟Google的攻城师们是如何高屋建瓴地秒杀OOM的。 前言转载 2013-06-24 17:32:59 · 831 阅读 · 0 评论 -
Android应用开发之(利用好图片缓存)
Android Developer: 在用户界面(UI)加载一张图片时很简单,然而,如果你需要加载多张较大的图像,事情就会变得更加复杂,。在许多情况下(如与像的ListView GridView或ViewPager的组件),屏幕上的图片的总数伴随屏幕上滚动的骤然增加,且基本上是无限的。为使内存使用保持在稳定范围内,这些组件会在子view在屏幕中消失后,对其进行资源回收,垃圾回收机制会转载 2013-06-24 17:30:36 · 747 阅读 · 0 评论 -
DiskLruCache分析
DiskLruCache是Android提供的一个管理磁盘缓存的类。该类可用于在程序中把从网络加载的数据保存到磁盘上作为缓存数据,例如一个显示网络图片的gridView,可对从网络加载的图片进行缓存,提高程序的可用性。一.文件例如对于一组从网络加载的图片进行缓存,则在DiskLruCache的工作目录下面,可以看到如下所示的文件: 前8行是对八张图片的缓存文件,转载 2013-06-24 17:29:13 · 1165 阅读 · 0 评论 -
Android 缓存
缓存 Bitmap在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下(例如使用 ListView, GridView 或者 ViewPager控件),显示在屏幕上的图片以及即将显示在屏幕上的图片数量是非常大的(例如在图库中浏览大量图片)。在这些控件中,当一个子控件不显示的时候,系统会重用该控件来循环显示 以便减少对内存的消耗。同时垃圾转载 2013-06-24 17:28:06 · 723 阅读 · 0 评论