0


実行したいアニメーションがあり、そのアニメーションにドローアブルを設定すると、メモリリークが発生します。それが重要かどうかはわかりませんが、フレームは描画可能なフォルダーにのみあり、特定のdpiフォルダーにはありません。アニメーションを開始する前でも、メモリリークが発生します。アニメーションのリソースを設定すると発生します。ありがとう!

呼び出し:

logoAnimation.setBackgroundResource(R.drawable.logo_animation);

logo_animation.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">

    <item android:drawable="@drawable/logo0" android:duration="35" />
    <item android:drawable="@drawable/logo1" android:duration="35" />
    <item android:drawable="@drawable/logo2" android:duration="35" />
    <item android:drawable="@drawable/logo3" android:duration="35" />
    <item android:drawable="@drawable/logo4" android:duration="35" />
    <item android:drawable="@drawable/logo5" android:duration="35" />
    <item android:drawable="@drawable/logo6" android:duration="35" />
    <item android:drawable="@drawable/logo7" android:duration="35" />
    <item android:drawable="@drawable/logo8" android:duration="35" />
    <item android:drawable="@drawable/logo9" android:duration="35" />
    <item android:drawable="@drawable/logo10" android:duration="35" />
    <item android:drawable="@drawable/logo11" android:duration="35" />
    <item android:drawable="@drawable/logo12" android:duration="35" />
    <item android:drawable="@drawable/logo13" android:duration="35" />
    <item android:drawable="@drawable/logo14" android:duration="35" />
    <item android:drawable="@drawable/logo15" android:duration="35" />
    <item android:drawable="@drawable/logo16" android:duration="35" />
    <item android:drawable="@drawable/logo17" android:duration="35" />
    <item android:drawable="@drawable/logo18" android:duration="35" />
    <item android:drawable="@drawable/logo19" android:duration="35" />
    <item android:drawable="@drawable/logo20" android:duration="35" />
    <item android:drawable="@drawable/logo21" android:duration="35" />
    <item android:drawable="@drawable/logo22" android:duration="35" />
    <item android:drawable="@drawable/logo23" android:duration="35" />
    <item android:drawable="@drawable/logo24" android:duration="35" />
    <item android:drawable="@drawable/logo25" android:duration="35" />
    <item android:drawable="@drawable/logo26" android:duration="35" />
    <item android:drawable="@drawable/logo27" android:duration="35" />
    <item android:drawable="@drawable/logo28" android:duration="35" />
    <item android:drawable="@drawable/logo29" android:duration="35" />
    <item android:drawable="@drawable/logo30" android:duration="35" />
    <item android:drawable="@drawable/logo31" android:duration="35" />
    <item android:drawable="@drawable/logo32" android:duration="35" />
    <item android:drawable="@drawable/logo33" android:duration="35" />
    <item android:drawable="@drawable/logo34" android:duration="35" />
    <item android:drawable="@drawable/logo35" android:duration="35" />
    <item android:drawable="@drawable/logo36" android:duration="35" />
    <item android:drawable="@drawable/logo37" android:duration="35" />
    <item android:drawable="@drawable/logo38" android:duration="35" />
    <item android:drawable="@drawable/logo39" android:duration="35" />
    <item android:drawable="@drawable/logo40" android:duration="35" />
    <item android:drawable="@drawable/logo41" android:duration="35" />
    <item android:drawable="@drawable/logo42" android:duration="35" />
    <item android:drawable="@drawable/logo43" android:duration="35" />
    <item android:drawable="@drawable/logo44" android:duration="35" />
    <item android:drawable="@drawable/logo45" android:duration="35" />
    <item android:drawable="@drawable/logo46" android:duration="35" />
    <item android:drawable="@drawable/logo47" android:duration="35" />
    <item android:drawable="@drawable/logo48" android:duration="35" />
    <item android:drawable="@drawable/logo49" android:duration="35" />
    <item android:drawable="@drawable/logo50" android:duration="35" />
    <item android:drawable="@drawable/logo51" android:duration="35" />
    <item android:drawable="@drawable/logo52" android:duration="35" />
    <item android:drawable="@drawable/logo53" android:duration="35" />
    <item android:drawable="@drawable/logo54" android:duration="35" />
    <item android:drawable="@drawable/logo55" android:duration="35" />
    <item android:drawable="@drawable/logo56" android:duration="35" />
    <item android:drawable="@drawable/logo57" android:duration="35" />
    <item android:drawable="@drawable/logo58" android:duration="35" />
    <item android:drawable="@drawable/logo59" android:duration="35" />

</animation-list>

Logcat出力:

08-08 12:42:10.710: D/dalvikvm(6122): GC_CONCURRENT freed <1K, 3% free 10269K/10567K, paused 2ms+1ms
08-08 12:42:13.135: D/dalvikvm(6122): GC_FOR_ALLOC freed 115K, 3% free 10490K/10759K, paused 10ms
08-08 12:42:13.160: D/dalvikvm(6122): GC_FOR_ALLOC freed 130K, 4% free 10781K/11143K, paused 9ms
08-08 12:42:13.215: D/dalvikvm(6122): GC_FOR_ALLOC freed 195K, 4% free 11155K/11527K, paused 25ms
08-08 12:42:13.265: D/dalvikvm(6122): GC_FOR_ALLOC freed 130K, 4% free 11512K/11911K, paused 20ms
08-08 12:42:13.295: D/dalvikvm(6122): GC_FOR_ALLOC freed 195K, 4% free 11951K/12423K, paused 10ms
08-08 12:42:13.325: D/dalvikvm(6122): GC_FOR_ALLOC freed 260K, 4% free 12535K/12999K, paused 9ms
08-08 12:42:13.360: D/dalvikvm(6122): GC_FOR_ALLOC freed 325K, 4% free 13266K/13767K, paused 9ms
08-08 12:42:13.400: D/dalvikvm(6122): GC_FOR_ALLOC freed 391K, 4% free 14143K/14727K, paused 9ms
08-08 12:42:13.450: D/dalvikvm(6122): GC_FOR_ALLOC freed 521K, 5% free 15313K/16071K, paused 10ms
08-08 12:42:13.510: D/dalvikvm(6122): GC_FOR_ALLOC freed 587K, 5% free 16628K/17415K, paused 10ms
08-08 12:42:13.570: D/dalvikvm(6122): GC_FOR_ALLOC freed 587K, 5% free 17942K/18759K, paused 10ms
4

1 に答える 1

0

60前後の非常に多くの画像を読み込んでいます。これらの画像も比較的大きい場合、メモリリークの原因はOutOfMemoryException.

これはそれに対処する方法についての素晴らしい記事です。
つまり、画像をメモリにロードする前に、画像を縮小する必要があります。

于 2012-08-08T09:53:54.770 に答える