4

我目前正在使用 Picasso 2.0.1(之前也尝试过 1.0.2)并从网络上的图片中获取位图。

一切都很好,我已经看到加载图像的改进......至少看起来更快。

我的问题是,如何从 PICASSO 所做的活动中获取统计数据?我想知道图片是从缓存中获取的还是下载的...

我正在尝试使用 com.squareup.picasso.StatsSnapshot 获取信息,但它似乎没有更新......或者我没有正确使用它。

Picasso pi = Picasso.with(getActivity().getApplicationContext());
Bitmap bitmap = pi.load(url.toString()).get();
Log.d(this.getClass().getSimpleName(),"Cache hits:" + pi.getSnapshot().cacheHits + " Cache misses:" + pi.getSnapshot().cacheMisses);

在加载调用之前和/或之后添加日志总是返回相同的结果

缓存命中:0 缓存未命中:0

我做错了什么或如何获得这些信息?

提前致谢!

马克

4

4 回答 4

5

要获得 David Hewitt 所描述的彩色三角形,您实际上必须像这样使用 setIndicatorsEnabled

Picasso.with(mContext).setIndicatorsEnabled(true);

您可以使用 setLoggingEnabled 像这样在 Picasso 的日志中获取统计信息

Picasso.with(mContext).setLoggingEnabled(true);

您可以使用“毕加索”过滤器搜索日志,并查看毕加索从哪里获取图像以及需要多长时间。非常便利!

于 2014-10-30T02:24:05.147 回答
0

根据这里的网站:http: //square.github.io/picasso/

你可以这样做setDebugging(true),它会在角落或每个图像中放置彩色三角形,以指示它们是从网络、磁盘还是内存中加载的。我找不到有关您在网站上使用的功能的任何具体参考,但这可能会满足您的需求。

于 2013-09-06T14:45:25.847 回答
0

您可以从 Activity 或 Fragment 的 onStop() 或 onPause 调用它

StatsSnapshot picassoStats = Picasso.with(context).getSnapshot();
Log.d("Picasso stats ", picasspStats.toString());

然后从 Android logcat 中选择详细并按毕加索过滤。

您将获得类似于以下内容的日志:

Picasso stats: [main] StatsSnapshot{maxSize=76695844, size=75737296, cacheHits=656, cacheMisses=1091, downloadCount=8, totalDownloadSize=213376, averageDownloadSize=26672, totalOriginalBitmapSize=437547196, totalTransformedBitmapSize=609434304, averageOriginalBitmapSize=527801, averageTransformedBitmapSize=735143, originalBitmapCount=829, transformedBitmapCount=826, timeStamp=1484426664382}
于 2017-01-12T19:48:54.460 回答
-1

'get()' 是同步的并跳过缓存。使用“load()”方法之一来利用毕加索的全部力量。

于 2014-02-25T16:44:19.663 回答