2016-07-28 5 views
0

XMLからの膨らみがディスクへのアクセスを必要とすることはよく知られている事実であるため、JavaコードからViewインスタンスを作成することによってUIレイアウトを膨らませるよりも通常は遅くなるはずです。XMLコードからJavaコードへのレイアウトの膨張

私はXMLからJavaレイアウトを生成するための準備ができているソリューションを見つけようとしていましたが、何も見つかりませんでした。だから私は自分で測定しましたが、私が驚いたことに、高速なデバイス(S6とNexus5 with Android 6.0)では、ネストされた要素を持つ複雑なRelativeLayoutsがJavaコードよりもXMLからさらに速く膨張しています!

これはなぜ起こっているのでしょうか?

+0

いいえ、xmlを使用してより速く作成することはできませんが、全体的な違いはそれほど大きくないはずですので、xmlを使用する方がはるかに簡単できわめて高速です – pskink

+0

結果はレイアウトが15% xmlを使用していますが、複雑なレイアウトや高速デバイスでのみ使用できます。だから誰でも理由を知っているかもしれない。 – mike

+0

だから、あなたのJavaコードに問題がありますなぜそれは遅いです:すべてのXMLから膨らませた後、最初にリソースを読み込み、2)XMLを解析します。3)より遅い 'View'コンストラクタを使用します。スピードデーモン – pskink

答えて

0

すでに別の投稿に回答したとおり、Android xml vs java layouts performanceです。あなたのXMLコードでのパフォーマンスは、悪いJavaコードを書いたことを除いて、あなたのJavaコードより速くすることはできません。

+0

本当に。私は '新しいチェックボックス(コンテキスト)'と '新しいスイッチ(コンテキスト)'がそれぞれ約20msかかることを知りました。それがJavaコードを遅くする理由でした。これらのウィジェットを削除したとき、Javaコードからレイアウトを膨らませることは、そうしなければならないほど速くなりました。 – mike

関連する問題