Ich verwende UrlImageViewHelper, um Bilder in einer Adapteransicht zu laden.Was könnte das Laden in Android 4.1.X verlangsamen und nicht auf 4.2?
Mein Adapter ist:
@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;
}
Ich bin das Herunterladen und Anzeigen von großen Bildern (620x620 jpg) in einer vollen Breite Liste. Sie sind langsam, wenn sie zum ersten Mal heruntergeladen/angezeigt werden. Dieses Problem tritt nicht mehr nach einem Upgrade auf Android 4.2 auf. auf HTC eins.
Ich habe versucht, die Anrufe zu profilieren und ich glaube, dass während der sehr langen Anrufe, es hängt den Socket-Eingangsstrom zu lesen.
Hat jemand einen Hinweis darauf, warum es so einen Leistungsunterschied zwischen den beiden Plattformen gibt?
Logcat Ausgänge: (Timings unter 100 ms sind in der Regel dupliziert)
android 4.1.Galaxy SIII 2 mini
- Zeit: 3217
- Zeit: 4782
- Zeit: 124
- Zeit: 56
- Zeit: 168
- Zeit: 84
- Zeit: 102
- zeit: 2819
- zeit: 2703
- Zeit: 154
- Zeit: 2468
- Zeit: 81
- Zeit: 40
- Zeit: 52
- Zeit: 2495
- Zeit: 37
- Zeit: 2007
- Zeit: 58
- Zeit: 38
- Zeit: 119
- Zeit: 80
- Zeit: 44
- Zeit: 2419
- Zeit: 1651
- Zeit: 40
- Zeit: 2766
- Zeit: 90
- Zeit: 1889
- zeit: 183
- zeit: 2515
- Zeit: 58
- Zeit: 3345
- Zeit: 2661
- Zeit: 81
- Zeit: 2434
- Zeit: 119
meist oberhalb von 1,5 sec. Benutzer muss Elemente eins nach dem anderen scrollen, um das Bild zu sehen
Auf Android 4.3 Nexus 4:
- Zeit: 47
- Zeit 1111
- Zeit: 154
- Zeit: 46
- Zeit: 124
- Zeit: 115
- Zeit: 150
- zeit: 201
- zeit: 332
- Zeit: 366
- Zeit: 450
- Zeit: 82
- Zeit: 167
- Zeit: 81
- Zeit: 150
- Zeit: 224
- Zeit: 224
- Zeit: 143
- Zeit: 185
- Zeit: 66
- Zeit: 183
- Zeit: 66
- Zeit: 218
- Zeit: 98
- Zeit: 169
- Zeit: 49
- Zeit: 148
- Zeit : 65
- zeit: 64
- zeit: 60
- Zeit: 169
- Zeit: 51
konsequent unter 500 ms, Liste ist verwendbar
Vielleicht wird die Zuordnung der UrlImageViewCallback innerhalb der getView-Methode, verlangsamt es, können Sie versuchen, es die gleiche Instanz, immer und immer wieder zu übergeben? –
Die Zeit in der getview-Methode des Adapters liegt konsistent unter 5 ms. Wenn ich den gesamten Rückruf entferne, sehe ich die gleichen Ergebnisse. (Einer ist sehr langsam, der andere ist schnell). Ich denke nicht, dass der Rückruf die Ursache des Problems ist. – alaeri
Sie sind sicher, das ist nicht einfach nur Download-Zeit? Wie groß sind die Dateien? Die letztere Gruppe von Werten zeigt an, dass sie wahrscheinlich aus dem Cache geladen werden. – koush