三步搞定android应用图片缓存

如何彻底删除Android设备上的照片缓存 本文详细介绍了如何使用Coolmuster Android Cleaner等工具删除Android设备上的照片缓存,释放存储空间并提高设备性能。同时,提供了其他删除缓存的方法和最佳实践,确保用户能够有效管理设备存储。 阅读详情

目前很多商业应用都会涉及到从网络上读取图片数据的问题,为了节约用户流量,应用一般会将图片缓存起来。图片缓存一般分为内存缓存和外存缓存。内存 缓存运用java的缓存机制,在程序完全退出后,缓存所在的内存空间可能被其它应用程序占用从而丢失。外存缓存一般放在程序特有的访问空间或者sd卡中, 在sd卡中存放的资源为公有资源,其它程序也可以访问,且对用户来讲没有一个强制清除缓存的规范机制。综合以上,本文采用将缓存图片放置在程序的特有空间 中, 其它应用程序无法访问,且用户可以在应用程序管理中的"清除数据"选项中清除缓存。 

      本文提供三种缓存策略:(1)LRU算法,固定缓存图片数量(max_num),当图片数量超出max_num时,将缓存中最近用的最少的图片删除。 (2)FTU算法,固定每张图片的缓存时限,以最后一次使用算起,超过时限后删除。(3)FMU算法,在存储器中固定一定大小的存储空间,超过固定空间后 将缓存中占用最大尺寸的图片删除。使用时只需要向方法体中传递图片的URL即可。

 

使用方法:

    1.导入jar;

    2. 获取服务;

    3.提交url,交给程序去判断是否下载。

复制代码
public class ImagecachetacticsdemoActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item);

        /*FMU*/
        imageCacheManager = ImageCacheManager.getImageCacheService(this,
                ImageCacheManager.MODE_FIXED_MEMORY_USED, "memory");
        imageCacheManager.setMax_Memory(1024 * 1024);

        /*FTU*/
        // imageCacheManager = ImageCacheManager.getImageCacheService(this,
        // ImageCacheManager.MODE_FIXED_TIMED_USED, "time");
        // imageCacheManager.setDelay_millisecond(3 * 60 * 1000);

                   /*LRU*/
        // imageCacheManager = ImageCacheManager.getImageCacheService(this,
        // ImageCacheManager.MODE_LEAST_RECENTLY_USED, "num");
        // imageCacheManager.setMax_num(5);

        // imageCacheManager = ImageCacheManager.getImageCacheService(this,
        // ImageCacheManager.MODE_NO_CACHE_USED, "nocache");

        mImageView = (ImageView) findViewById(R.id.imageView);
        new DownloadTask()
                .execute("http://www.touxiang99.com/uploads/allimg/110417/1_110417112640_2.jpg");
    }

    private class DownloadTask extends AsyncTask<String, Void, Bitmap> {

        @Override
        protected Bitmap doInBackground(String... params) {
            try {
                return imageCacheManager.downlaodImage(new URL(params[0]));
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Bitmap result) {

            mImageView.setImageBitmap(result);
            super.onPostExecute(result);
        }

        @Override
        protected void onPreExecute() {
            mImageView.setImageResource(R.drawable.ic_launcher);
            super.onPreExecute();
        }

    }

    private ImageView mImageView;
    private ImageCacheManager imageCacheManager;

}  
 
demo(内含jar)
安卓图标加载同时把图片缓存到自定义文件夹(源代码) 立即下载

相关推荐

Android开发之删除项目缓存的方法

本文实例讲述了Android开发之删除项目缓存的方法。分享给大家供大家参考,具体如下: 如何删除项目的缓存: getCacheDir()能够得到当前项目的缓存地址 在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下 打开关闭使用缓存,一共有五个种类 //优先使用缓存: WebView.getSettings().setCacheMode(WebSettings.L

android view setbackgroundresource,解决Android加载图片时内存溢出的问题 setBackgroundResource setImageResource...

public static Bitmap readBitMap(Context context, int resId){BitmapFactory.Options opt = new BitmapFactory.Options();opt.inPreferredConfig =Bitmap.Config.RGB_565;opt.inPurgeable = true;opt.inInputShar...

weixin_42452642的博客 1206

学习海康VisionMaster之圆查找

(1):ROI选中位置修正,并且修正信息需要选择刚刚创建的位置修正组件输出信息,这里的话后续的检测窗口一般都需要做这一步,因为大部分的应用场景都是需要用到实时跟踪的。圆查找模块是用于查找指定区域的圆,并且会输出该圆的相关参数信息,比如圆中心点,圆半径,圆是否存在等信息。7):剔除点数:和高级参数里面的剔除距离搭配使用的,就是过滤较远的边缘点,让拟合圆心出来的轮廓更加接近。中的圆查找,相当于就是拟合圆心,这个在视觉软件中的应用也是非常广泛的,通常用于定位,测量项目。

yuhouxiyang的专栏 2104

android中Resources的资源缓存机制

通过梳理下ImageView的setImageResource方法的调用流程,来看下android中Resources的资源缓存机制。 public void setImageResource(int resId) { // The resource configuration may have changed, so we should always // tr

crazy_bomber的博客 1686

Wireshark时间分析实战:精准调试网络延迟与时间同步问题

本文深入探讨了Wireshark在网络延迟与时间同步问题分析中的核心应用。通过实战案例,详细讲解了如何设置时间显示格式、利用时间参考点量化关键路径延迟,以及运用时间平移功能校正错位时间轴。掌握这些时间分析技巧,能帮助网络工程师精准定位隐藏于数据包时序中的性能瓶颈与故障根源。

weixin_29290963的博客 262

在游戏开发中如何使用Unity3D引擎开发麻将游戏

总体来说使用Unity3D引擎开发麻将游戏需要开发人员熟练掌握Unity3D的各种功能和API,并且需要深入了解麻将游戏的规则和背景,以便实现一个质量高、玩法丰富的游戏。在测试的过程中我们需要检查游戏是否符合规则,保证游戏逻辑的正确性,并检查游戏的UI是否和设计图一致,保证游戏的可玩性。Unity3D引擎是一个高度集成的游戏开发工具,可以为开发人员提供很多强大的工具和功能,包括3D建模、物理模拟、粒子系统、动画等等,在游戏开发中可以提高开发效率和游戏质量。在开始开发之前我们需要明确游戏的需求和功能。

a272857154的专栏 1891

【android相册】加载相册中的图片,实现图片缓存

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_45444971的博客 2863

OpenClaw 3.13 + Mac mini M4 集成 qmd 记忆存储:qmd embed 卡死 / 报错 sqlite-vec 不可用 终极解决教程

模型加速让 qmd 从国内镜像下载模型,避免网络超时;SQLite 扩展支持:修改 qmd 源码后,Bun 不再使用内置 SQLite,而是调用 Homebrew 安装的,该版本支持接口,可正常加载vec0.dylib向量扩展;OpenClaw 3.13 适配:核心逻辑与 OpenClaw 3.13 的 qmd 记忆调用逻辑完全兼容,无需额外调整;sqlite-vec 加载:qmd 自动通过sqlite-vec包获取vec0.dylib路径,调用完成向量扩展加载,实现高效向量搜索。

wuanxionglidui的博客 1305

三步搞定ANDROID应用图片缓存

http://www.cnblogs.com/superbearman/archive/2012/01/04/2312112.html 目前很多商业应用都会涉及到从网络上读取图片数据的问题,为了节约用户流量,应用一般会将图片缓存起来。图片缓存一般分为内存缓存和外存缓存。内存缓存运用java的缓存机制,在程序完全退出后,缓存所在的内存空间可能被其它应用程序占用从而丢失。外存缓存一般放在程序

windlake的专栏 840

DeepSeek跨会话协作指南:让AI成为你的「第二大脑」

通过DeepSeek的跨会话协作系统,用户实测工作效率提升63%。

紫夜若涵的博客 1481

Centos7网络配置(设置固定ip)

刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。

个人笔记git:https://gitee.com/tlangp/note.git 8055

三步搞定Glide图片压缩上传:节省80%流量的Android实战教程

你还在为APP图片上传耗流量、加载慢而发愁吗?用户投诉加载卡顿、运营反馈带宽成本居高不下?本文将带你用Android图片加载库Glide([GitHub加速计划/gl/glide](https://link.gitcode.com/i/66b832edb3c883f44889dbc19514d384))的三步压缩上传方案,解决90%的图片传输问题。读完本文你将掌握: ✅ 10行代码实现图片自动...

gitblog_00775的博客 826

用一台笔记本跑起 SAP HANA:从 express edition 的定位,到本地硬件门槛与安装实操

SAP HANA是面向个人开发者、初创团队与教学科研场景的精简发行版,保留了in-memory列存引擎、SQLScriptAFLGraphSpatial等核心能力,可免费用于开发与一定规模的生产用途(上限为 32 GB RAM)。它最大的特征,是能在资源受限的laptop或上快速落地,让你在本地完成从建模、开发到测试的完整闭环。SAP在交付形态上,提供了多种安装包:预配置的VM OVA、面向Linux的二进制安装包,以及历史上出现过的容器化方案;你可以按现有设备与熟悉的运维方式择优选择。官方文档把VM。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 537

android应用图片缓存

三步搞定android应用图片缓存 目前很多商业应用都会涉及到从网络上读取图片数据的问题,为了节约用户流量,应用一般会将图片缓存起来。图片缓存一般分为内存缓存和外存缓存。内存 缓存运用java的缓存机制,在程序完全退出后,缓存所在的内存空间可能被其它应用程序占用从而丢失。外存缓存一般放在程序特有的访问空间或者sd卡中, 在sd卡中存放的资源为公有资源,其它程序也可以访问,且对用户

1083

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2385

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

三步搞定Glide内存缓存动态调整:告别OOM的实战指南

你是否还在为图片加载导致的内存溢出(OOM)而头疼?是否想根据应用不同场景灵活调整缓存大小?本文将带你通过三个简单步骤,掌握Glide内存缓存动态重置的核心技巧,让你的应用在图片加载时既高效又安全。 ## 一、Glide内存缓存机制初探 Glide作为Android开发中最流行的图片加载库,其内存管理机制直接影响应用性能。默认情况下,Glide会根据设备内存自动分配缓存大小,但在实际开发中,我...

gitblog_00958的博客 395

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

安卓B站缓存视频合并终极指南:3分钟搞定碎片整合与弹幕播放

还在为B站缓存视频碎片化而烦恼吗?每次想要离线观看喜欢的视频,却发现文件被分割成无数个小片段,无法正常播放?今天我要为你介绍一款神器——**BilibiliCacheVideoMerge**,这款安卓工具能轻松解决你的痛点,将零散的缓存视频合并为完整的MP4文件,同时完美保留弹幕播放功能。无论你是安卓5.0还是最新的安卓13系统,这款免费开源工具都能为你提供简单快速的解决方案。 ## 痛点场景:

gitblog_00052的博客 280

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Android里Service的bindService()和startService()混合使用深入分析
下一篇: 实用的代码片段
codingbuddy
博客等级 码龄14年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值