简述
Screenshot_20181026-094023.png
最近任务卡片上的图片资源主要有应用图标和缩略图。应用图标一般是固定的,加载后就放在缓存里,不需要每次从系统里加载。缩略图则有可能会经常变化,所以经常需要实时加载,加载的时候一般使用异步加载。
图标和缩略图从加载到显示在卡片上的流程可以分为三部分。
1. 从系统预加载资源
2. 界面绘图
3. 线程异步加载资源,加载后更新到界面
4. Android缓存策略——LruCache
1. 从系统预加载资源
最近任务模块启动后,会在两个回调函数中从系统预加载资源。分别是
RecentsImpl.onBootComplete
android.app.TaskStackListener mTaskStackListener.onTaskStackChanged
onBootComplete函数是在系统启动完成后被调用的,onTaskStackChanged是在ActivityManager发现系统的TaskStack发生变化以后调用的。
这两个函数调用RecentsTaskLoader.loadTasks函数以同步的方式从系统加载资源。
loadTasks最终会调用两个函数分别加载图标和缩略图。
加载图标的函数是:RecentsTaskLoader.getAndUpdateActivityIcon
加载缩略图的函数是:RecentsTaskLoader.getAndUpdateThumbnail
这两个函数首先从缓存中查找图标&#