小罗学习笔记之安卓的存储路径(持续完善)

本文介绍了Android应用中使用DiskLruCache作为硬盘缓存的方案,详细解析了郭神的文章《Android DiskLruCache完全解析》。推荐的图片存储路径为/sdcard/Android/data/<application package>/cache,该路径在SD卡上,卸载应用时会自动清理,避免占用内部存储空间。同时讨论了如何处理无SD卡或SD卡移除的情况,提出通过特定方法获取缓存地址的建议。

这两天给app集成了DiskLruCache,参考郭神的文章 Android DiskLruCache完全解析,硬盘缓存的最佳方案 http://blog.youkuaiyun.com/guolin_blog/article/details/28863651

按照郭神文章里的说法,图片的存放路径最好是/sdcard/Android/data/<application package>/cache,原因如下:

1.这个存储在SD卡上,因此即使缓存再多的数据也不会对手机的内置存储空间有任何影响,只要SD卡足够就行。

2.这个路径被Android系统认定为应用程序的缓存路径,当程序被卸载的时候,这里的数据也会一起被清理掉,这样就不会出现删除程序之后手机上还有很多残留数据的问题。(这一点太给力了,以前我就经常末末的吐槽好多应用删掉了还有文件夹,吐槽那些开发人员。。)

方法呢,按照郭神的说法,其中缓存地址前面已经说过了,通常都会放在/sdcard/Android/data/<application package>/cache 这个路径下面,但同时我们又需要考虑如何这个手机没有SD卡,或者SD卡正好被移除了的情况,因此比较优秀的程序员会专门写一个方法来获取缓存地址:

public File getDiskCacheDir(Context context, String uniqueName) {  
    String cachePath;  
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())  
            || !Environment.isExternalStorageRemovable()) {  
        cachePath = context.getExternalCacheDir().getPath();  
    } else {  
        cachePath = context.getCacheDir().getPath();  
    }  
    return new File(cachePath + File.separator + uniqueName);  
}  

记得以前自己都是直接用Environment.getExternalStorageDirectory()貌似也没有什么问题,好像不同的手机用这个接口获取到的路径是不一样的,是不是我以后也要参照郭神这个路径来做呢?

学习一下,后续继续完善。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值