• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 硅谷新闻9--图片三级缓存,

硅谷新闻9--图片三级缓存,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了青岛蓝色硅谷新闻,美国硅谷新闻,硅谷新闻,硅谷动力图片库,美国硅谷图片等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

硅谷新闻9--图片三级缓存,


1.三级缓存设计步骤:

* 从内存中取图片
* 从本地文件中取图片
   向内存中保持一份
* 请求网络图片,获取图片,显示到控件上
* 向内存存一份
* 向本地文件中存一份

2.网络缓存

线程池类Executors的使用

public static ExecutorService newCachedThreadPool()

创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。注意,可以使用 ThreadPoolExecutor 构造方法创建具有类似属性但细节不同(例如超时参数)的线程池。

public static ExecutorService newFixedThreadPool(int nThreads)

创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。

3.本地缓存

File file = new File(CACHE_DIR, fileName);  FileInputStream FileOutputStream 文件读写方式

演示把图片移除后,在查看
C:\Users\Administrator>adb shell
# cd /mnt/sdcard/atguigu_beijingnews
cd /mnt/sdcard/atguigu_beijingnews
# rm *
rm *

4.内存缓存

引用级别

我们经常会使用一种非常流行的内存缓存技术的实现,即软引用或弱引用 (SoftReference or WeakReference)。
但是现在已经不再推荐使用这种方式了,因为从 Android 2.3 (API Level 9)开始,垃圾回收器会更倾向于回收持有软引用或弱引用的对象;

另外,Android 3.0 (API Level 11)中,图片的数据会存储在本地的内存当中,因而无法用一种可预见的方式将其释放,

这就有潜在的风险造成应用程序的内存溢出并崩溃。所以看到还有很多相关文章还在推荐用软引用或弱引用 (SoftReference or WeakReference),就有点out了

 

Android3.0后提出新的方式
LruCache 缓存的集合,把常用的数据,保留起来,把不常用的给回收。
Lru近期最少使用算法

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 硅谷新闻11--极光推送的集成,硅谷新闻11--极光
  • 硅谷新闻7--顶部轮播图循环播放,7--循环播放
  • 硅谷新闻9--图片三级缓存,
  • 硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--
  • 硅谷新闻4--解决页签手指按下从左到右滑动的bug,硅谷4--
  • 硅谷新闻2--禁止viewpager预加载,2--viewpager

相关文章

  • 2017-05-26Android 手机卫士--导航界面4的业务逻辑,android卫士
  • 2017-05-26Android游戏开发之游戏帧动画的播放与处理,android游戏开发
  • 2017-05-26Android常用命令行-adb,android-adb
  • 2017-05-26android:Activity启动模式之singleTop
  • 2017-05-26Android 如何保证service在后台不被kill,androidkill
  • 2017-05-26Android View体系(二)实现View滑动的六种方法
  • 2017-05-26精品干货丨APP常用导航框架,干货丨app导航
  • 2017-05-26Toast显示图文界面——Android开发之路1,toastandroid
  • 2017-05-26ListView的 addHeaderView,addheaderview
  • 2017-05-26如何编写高效的android代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android仿ios底部弹出框效果,android仿ios底部
    • Android中Activity处理返回结果的实现方式,androidactivity
    • [better practice系列]Android处理好activity正确情况下的生命周期和意外情况下的生命周期浅析
    • 【原】tinker dex文件格式的dump工具tinker-dex-dump,dextinker-dex-dump
    • Android动画三部曲之一 View Animation & LayoutAnimation
    • android开发中常见布局的注意点,android开发布局
    • Android Butterknife 8.4.0 使用方法总结,butterknife8.4.0
    • ViewPager+GridView实现首页导航栏布局分页效果,viewpagergridview
    • android经典Demo(转载),androiddemo
    • Andriod GridView不改变背景色实现网格线效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有