【譯】緩存指示器,日志與狀態(tài)

緩存指示器

如果閱讀了之前的所有文章,那么你一定記得Picasso使用了兩種緩存策略:磁盤緩存和內(nèi)存緩存。最后才就是耗時(shí)的網(wǎng)絡(luò)加載。

對(duì)于開(kāi)發(fā)者而言,研究圖片的來(lái)源是非常重要的。最簡(jiǎn)單的辦法就是通過(guò)調(diào)用.setIndicatorsEnabled(true);激活緩存指示器。示例如下:

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

所有圖像請(qǐng)求后,都會(huì)在左上角顯示一個(gè)小型指示器。

每一種顏色都代表一種來(lái)源:

  • 綠色(來(lái)自內(nèi)存,效率最高)
  • 藍(lán)色(來(lái)自磁盤,效率良好)
  • 紅色(來(lái)自網(wǎng)絡(luò),效率最低)

日志

因?yàn)轭伾甘酒髂軌驇椭ㄎ痪彺鎭?lái)源,因此可以在一定程度上解決圖像加載緩慢的問(wèn)題。如果問(wèn)題依然不能得以解決,可以通過(guò)在Picasso請(qǐng)求上調(diào)用.setLoggingEnabled(true)來(lái)打開(kāi)日志輸出(默認(rèn)情況下關(guān)閉日志輸出)。

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

這會(huì)影響到所有的Picasso請(qǐng)求上,并把日志輸出到Android logcat上(直到調(diào)用.setLoggingEnabled(false))。一旦開(kāi)始加載圖像,便可以通過(guò)logcat查看關(guān)于Picasso請(qǐng)求的詳細(xì)信息。Picasso將打印所有相關(guān)數(shù)據(jù)。

比如,強(qiáng)制要求Picasso從網(wǎng)絡(luò)加載圖片:

Picasso  
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[2])
    .memoryPolicy(MemoryPolicy.NO_CACHE)
    .networkPolicy(NetworkPolicy.NO_CACHE)
    .into(imageViewFromNetwork);

它將在logcat打印類似的輸出:

D/Picasso﹕ Main        created      [R0] Request{http://i.imgur.com/rT5vXE1.jpg}  
D/Picasso﹕ Dispatcher  enqueued     [R0]+21ms  
D/Picasso﹕ Hunter      executing    [R0]+26ms  
D/Picasso﹕ Hunter      decoded      [R0]+575ms  
D/Picasso﹕ Dispatcher  batched      [R0]+576ms for completion  
D/Picasso﹕ Main        completed    [R0]+807ms from NETWORK  
D/Picasso﹕ Dispatcher  delivered    [R0]+809ms  

狀態(tài)快照

最后,但并非最不重要,你可能需要了解大局情況。通過(guò)StatsSnapshot來(lái)了解累計(jì)和平均值,而不是分析單個(gè)請(qǐng)求。

為了訪問(wèn)這些數(shù)據(jù),只需調(diào)用:

StatsSnapshot picassoStats = Picasso.with(context).getSnapshot();  

返回的對(duì)象可以通過(guò)Android debugger來(lái)分析,也可以打印在logcat中。

Log.d("Picasso Stats", picassoStats.toString());  

輸出信息類似于如下示例:

D/Picasso Stats﹕ StatsSnapshot{
maxSize=28760941, 
size=26567204, 
cacheHits=30, 
cacheMisses=58, 
downloadCount=0, 
totalDownloadSize=0, 
averageDownloadSize=0, 
totalOriginalBitmapSize=118399432, 
totalTransformedBitmapSize=96928004, 
averageOriginalBitmapSize=2466654, 
averageTransformedBitmapSize=2019333, 
originalBitmapCount=48, 
transformedBitmapCount=41, 
timeStamp=1432576918067}]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容