2
私のアプリはSurfaceViewでいくつかのビットマップを使用しています。多くの場合、リコールビットマップのために私はSurfaceViewインスタンスの私の拡張子が作成されたとき、すなわち、私はbitmap_puppyiconが私の拡張SurfaceViewのクラス変数であるビットマップとAndroidヒープ
bitmap_puppyicon = BitmapFactory.decodeResource(getResources(),R.drawable.puppy);
を持って、クラスフィールドとしてそれらを保存します。それはヒープ上にあると私は思う。
1回または2回程度使用されるビットマップについては、onDraw()メソッドでオンザフライで作成しました。
DDMSのヒープをチェックして、onDraw()でクラスマップを作成する代わりに、クラスマップの変数として多くのビットマップを格納する余裕があると感じました。
私の驚いたことに、これを実行した後、ヒープサイズは数パーセント低下しました。私は何かを誤解したことがありますか?より多くのビットマップを保存するとヒープが小さくなるのはなぜですか?