ドロウアブルのメモリ、それはAPKの外に、APK内のリソースを持っている方が良いですかそれはメモリに同じですか?
質問
私はグラフィックスの多くを描画し、それらを変更するアプリケーションを持っています。 私は多くのグラフィックスを持っているので、私は必要に応じて、インターネットからダウンロードしたAPK、外部の画像を有していると考えられており、ファイルのアプリケーションフォルダに保存されます。
しかし、私はのOutOfMemory例外を取得するために開始します。
質問です:?いアンドロイドハンドルメモリ異なる私は「ディスク」からそれをロードする場合よりも、APKからグラフィックを読み込む場合は、
APKを使用してコード:
topView.setBackgroundResource(R.drawable.bg);
のコードイメージはAPK外である場合:
描画領域D = Drawable.createFromPath(パス名)。 topView.setBackgroundDrawable(D)
おかげ
ダニエル
解決
いいえ、内部的には同じように処理されます。ほとんどの場合、あなたは画像をリークしている、または早くあなたができる限り、それらをクリーンアップしません。あなたはそれをクリーンアップするには、Androidを強制するために、画像を完了したらBitmap.recycle();
を呼び出してみます。
他のヒント
実行時には、あなたが見ているメモリフットプリントは関係なく、あなたがそれをロードした方法とほぼ同じであってはなりません。 Androidはロード時間を改善する必要がありAPKに内部リソースをバイト整列するユーティリティを使用します。
所属していません StackOverflow