簡體   English   中英

什么可以使Android 4.1.X中的加載速度慢而不是4.2?

[英]What could make the loading slow in android 4.1.X and not on 4.2?

我正在使用UrlImageViewHelper來加載適配器視圖中的圖片。

我的適配器是:


@Override
public View getView(int position, View convertView, ViewGroup parent) {              
    if(convertView==null){
        convertView=new SquaredImageView(getContext());
    }
    SquaredImageView view= (SquaredImageView) convertView;
    final long time=System.currentTimeMillis();
    UrlImageViewHelper.setUrlDrawable(view,getItem(position).getLook_picture(),
           R.drawable.placeholder_bkp, -1,new UrlImageViewCallback() {
                   @Override
                   public void onLoaded(ImageView imageView, Bitmap loadedBitmap, 
                                              String url, boolean loadedFromCache) {
                       Log.d(TAG,"time : "+ (System.currentTimeMillis()-time));
                   }
    });
    return view;
}

我正在下載並在全寬列表中顯示大圖片(620x620 jpg)。 它們在第一次下載/顯示時速度很慢。 升級到android 4.2后不再出現此問題。 在HTC上。

我試圖分析調用,我相信在很長的調用期間,它會掛起讀取套接字輸入流。

有沒有人知道為什么兩個平台之間的性能有這么大差異?


Logcat輸出:( 100 ms以下的時間通常是重復的

android 4.1.2 Galaxy SIII mini

  • 時間:3217
  • 時間:4782
  • 時間:124
  • 時間:56
  • 時間:168
  • 時間:84
  • 時間:102
  • 時間:2819
  • 時間:2703
  • 時間:154
  • 時間:2468
  • 時間:81
  • 時間:40
  • 時間:52
  • 時間:2495
  • 時間:37
  • 時間:2007年
  • 時間:58
  • 時間:38
  • 時間:119
  • 時間:80
  • 時間:44
  • 時間:2419
  • 時間:1651年
  • 時間:40
  • 時間:2766
  • 時間:90
  • 時間:1889年
  • 時間:183
  • 時間:2515
  • 時間:58
  • 時間:3345
  • 時間:2661
  • 時間:81
  • 時間:2434
  • 時間:119

大多在1.5秒以上。 用戶需要逐個滾動項目才能看到圖片

在android 4.3 nexus 4上:

  • 時間:47
  • 時間:1111
  • 時間:154
  • 時間:46
  • 時間:124
  • 時間:115
  • 時間:150
  • 時間:201
  • 時間:332
  • 時間:366
  • 時間:450
  • 時間:82
  • 時間:167
  • 時間:81
  • 時間:150
  • 時間:224
  • 時間:224
  • 時間:143
  • 時間:185
  • 時間:66
  • 時間:183
  • 時間:66
  • 時間:218
  • 時間:98
  • 時間:169
  • 時間:49
  • 時間:148
  • 時間:65
  • 時間:64
  • 時間:60
  • 時間:169
  • 時間:51

始終低於500毫秒,列表可用

這與手機上運行的操作系統無關。 可能的原因和最可能的原因是設備上其他應用程序正在消耗的RAM內存量。 出於測試目的,嘗試在運行的應用程序不多的新設備上運行相同的代碼。

(我不希望這個答案拿到賞金)
UrlImageViewHelper使用HttpURLConnection對提供圖像的Web服務器進行http調用。 我們已經使用了HttpURLConnection(並嘗試了大多數其他類來進行http獲取)我們發現它是最不易碎的(特別是在Android 2.3上)通常不穩定的類(例如org.apache.http東西等)。 有一次,我在我們的網絡服務器上使用了協議分析器(tcpdump或tshark),發現ACK沒有及時回復,我認為(這是一年多前)我發現或多或少相同WiFi和小區數據(t-mobile GSM)上的東西。 我總結說這些課程中存在低級問題,也許Dalvik本身存在問題。 再說一次,我不希望這個答案能得到賞金,我沒有試圖證明我的斷言,我只是在敘述我在調查中得到的類似問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM