1

私はまだAndroidに慣れていないので、不要なビューノードを作成しないようにするために必要なレイアウトの専門知識を持っていない可能性があります。現在、私のメインの XML レイアウトは巨大 (約 770 行) であるため、読み込みに時間がかかりすぎます (約 2 秒で応答が遅くなります)。

XML を解析してビューを返すことができる inflate コマンドについて学んだので、AssyncTask を使用してスプラッシュ画面でこれらのビューをキャッシュし、メイン アクティビティの onCreate() で使用できると考えました。

これで問題が解決するでしょうか?他に調べるべきことはありますか?現在、メモリリークの可能性があることを認識しているので、注意してください。

編集:事前に膨らませてみましたが、パフォーマンスがまったく向上していないようです。

LayoutInflater inflater = LayoutInflater.from(this);
View layout = inflater.inflate(R.layout.question, null, false);

そして、しばらくして別のアクティビティで:

setContentView(layout);

ただし、開くのに同じ2秒かかります。何か不足していますか?私がやっている方法で事前に空気を入れることは、本当に改善をもたらすはずがないのですか?

4

1 に答える 1

0

LayoutInflaterはい、クラスを使用してビューを「事前に膨らませる」ことができます。ただし、 Hierarchy Viewerツールを使用してレイアウトのパフォーマンスを評価し、何が問題なのかを特定することをお勧めします。このツールの使用方法に関する Romain Guy によるビデオがいくつかあります。レイアウトを最適化するために、Lint (古い layoutopt ツールを置き換えた) によって提供されるヒントを使用することもできます。詳細はこちら

于 2012-11-09T09:59:14.757 に答える