04-25 23:23:53.917: I/disklrucache(13002): viewcount--1---> maxMemory=256M,totalMemory=25M,freeMemory=8M
04-25 23:23:53.917: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3c453599 V.E..... ......I. 0,0-0,0}
04-25 23:23:53.917: I/disklrucache(13002): instantiateItem
04-25 23:23:53.917: I/disklrucache(13002): viewcount--2---> maxMemory=256M,totalMemory=25M,freeMemory=8M
04-25 23:23:53.917: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3c453599 V.E..... ......I. 0,0-0,0}
04-25 23:23:53.917: I/disklrucache(13002): viewcount--android.widget.FrameLayout{d22a05e V.E..... ......I. 0,0-0,0}
04-25 23:23:53.917: I/disklrucache(13002): instantiateItem
04-25 23:23:57.169: I/disklrucache(13002): viewcount--3---> maxMemory=256M,totalMemory=25M,freeMemory=5M
04-25 23:23:57.169: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3c453599 V.E..... ........ 0,0-1080,1776}
04-25 23:23:57.169: I/disklrucache(13002): viewcount--android.widget.FrameLayout{d22a05e V.E..... ........ 1080,0-2160,1776}
04-25 23:23:57.170: I/disklrucache(13002): viewcount--android.widget.FrameLayout{17cefed1 V.E..... ......I. 0,0-0,0}
04-25 23:23:57.170: I/disklrucache(13002): instantiateItem
04-25 23:23:59.431: I/disklrucache(13002): viewcount--3---> maxMemory=256M,totalMemory=25M,freeMemory=3M
04-25 23:23:59.431: I/disklrucache(13002): viewcount--android.widget.FrameLayout{d22a05e V.E..... ........ 1080,0-2160,1776}
04-25 23:23:59.431: I/disklrucache(13002): viewcount--android.widget.FrameLayout{17cefed1 V.E..... ........ 2160,0-3240,1776}
04-25 23:23:59.431: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3f4e5437 V.E..... ......I. 0,0-0,0}
04-25 23:23:59.431: I/disklrucache(13002): instantiateItem
04-25 23:24:02.279: I/disklrucache(13002): viewcount--3---> maxMemory=256M,totalMemory=25M,freeMemory=1M
04-25 23:24:02.279: I/disklrucache(13002): viewcount--android.widget.FrameLayout{17cefed1 V.E..... ........ 2160,0-3240,1776}
04-25 23:24:02.279: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3f4e5437 V.E..... ........ 3240,0-4320,1776}
04-25 23:24:02.279: I/disklrucache(13002): viewcount--android.widget.FrameLayout{2273b70d V.E..... ......I. 0,0-0,0}
04-25 23:24:02.279: I/disklrucache(13002): instantiateItem
04-25 23:24:03.806: I/disklrucache(13002): viewcount--3---> maxMemory=256M,totalMemory=25M,freeMemory=1M
04-25 23:24:03.806: I/disklrucache(13002): viewcount--android.widget.FrameLayout{3f4e5437 V.E..... ........ 3240,0-4320,1776}
04-25 23:24:03.806: I/disklrucache(13002): viewcount--android.widget.FrameLayout{2273b70d V.E..... ........ 4320,0-5400,1776}
04-25 23:24:03.806: I/disklrucache(13002): viewcount--android.widget.FrameLayout{e1916c2 V.E..... ......I. 0,0-0,0}
04-25 23:24:03.806: I/disklrucache(13002): instantiateItem
04-25 23:24:07.470: I/disklrucache(13002): viewcount--3---> maxMemory=256M,totalMemory=42M,freeMemory=15M
04-25 23:24:07.470: I/disklrucache(13002): viewcount--android.widget.FrameLayout{2273b70d V.E..... ........ 4320,0-5400,1776}
04-25 23:24:07.470: I/disklrucache(13002): viewcount--android.widget.FrameLayout{e1916c2 V.E..... ........ 5400,0-6480,1776}
04-25 23:24:07.471: I/disklrucache(13002): viewcount--android.widget.FrameLayout{1a9fcd3 V.E..... ......I. 0,0-0,0}
04-25 23:24:07.471: I/disklrucache(13002): instantiateItem
为了对viewpager的缓存策略有一个直观的认识,我们在viewpageradapter的instantiateItem方法中打印日志,打印viewpager的viewcount,并打印每个子view的tostring方法,以上为结果日志。
从日志中我们可以看到viewpager默认最多缓存三个view,超过三个view就把倒数第四个view以及之前的view都干掉。