私はUrlImageViewHelperを使用して、アダプタビューで画像をロードしています。アンドロイド4.1.Xではローディングが遅くなり、4.2ではローディングが遅くなることがありますか?
私のアダプタは次のとおりです。
@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 1で
私は呼び出しをプロファイルしようとしましたが、私は非常に長い呼び出しの間に、それがソケットinputstreamの読み取りをハングすると思います。
2つのプラットフォーム間でパフォーマンスにこのような違いがある理由を知りたい人は誰ですか?
Logcat出力:
アンドロイド4.1(100ミリ秒下タイミングは通常複製です)。2ギャラクシーSIIIミニ
- 時間: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
- 時間:ほとんどが1.5秒以上の119
。ユーザーは画像を1つずつスクロールして画像を表示する必要があります。
アンドロイド43つのネクサス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ミリ秒の下で、リストは
おそらく、getViewメソッド内でUrlImageViewCallbackを割り当てて、それを遅くすると、同じインスタンスを繰り返し渡すことができますか? –
アダプタのgetviewメソッドで費やされた時間は、一貫して5ミリ秒以下です。コールバック全体を削除すると、同じ結果が表示されます。 (1つは非常に遅く、もう1つは速い)。コールバックが問題の原因だとは思わない。 – alaeri
これは単なるダウンロード時間ではないことは確かですか?どのくらいのファイルがありますか?後者の値はキャッシュからロードされている可能性が高いことを示します。 – koush