2011-08-12 21 views
2

たとえば、ビューを持っていて、画面からスクロールしてViewの高さを0にするアルゴリズムがあるとします。このビューはフルサイズの場合と同じ量のメモリを消費しますか? View.INVISIBLEまたはView.GONEについて同じ質問をする必要がありますか?Android:高さとメモリ消費量が0で表示する

答えて

1

はい - ViewObjectであり、Objectが存在する限り(それがUIオブジェクトであろうとなかろうと)、まったく同じ量のメモリを使用します。その時点で、OOP環境のObjectが存在しなくなり(破壊/参照解除され、ガベージコレクトされた時点)、メモリをまったく使用しません。間にあまり存在しません。

UIオブジェクトを非表示にするか、幅/高さを0にすると、画面上にあるかどうかに関係なく、同じ方法でGPUが処理する必要はありません。

+0

これは興味深いことです。私の同僚はC#でスクロールグリッドを実装し、メインループでグリッドをスクロールすると、表示されないもののサイズは0になります。彼は自分のアプリのメモリ消費量を1.4GBから600MBに減らしました。おそらくC#にはAndroidにはない最適化機能がいくつかありますか? –

+0

あなたの同僚のコードを知らないとコメントすることは難しいですが、私は彼の主張について少し懐疑的です。彼が開発しているシステム(おそらく、GPUなしでレンダリングし、ハードウェアに依存するのではなくソフトウェアでレンダリングする)によっては、可能かもしれません。要点は、どのオブジェクト指向環境においても、オブジェクトが目に見えるかどうかにかかわらず、AndroidオブジェクトであるかPOJOであるかにかかわらず、必要なだけのスペースをとることです。私はC#でWindows用にプログラムしていますが、Android用Javaよりもメモリを管理する能力が大幅に変わるとは思えません。 – Squonk

+0

HMm..それでは、もう一つの方法はビューを削除することだと思っています。しかし、それはガベージコレクタをトリガし、アニメーション/スクロール中に吃音につながるでしょうか? –

関連する問題