2016-07-28 133 views
0

從XML膨脹需要訪問光盤是一個衆所周知的事實,所以它通常應該比通過創建View實例從Java代碼膨脹UI佈局要慢。從XML和Java代碼膨脹佈局

我試圖找到任何現成的解決方案來從XML生成Java佈局,但沒有找到任何。所以我做了我自己的測量,並且讓我大吃一驚,發現在快速設備上(帶有Android 6.0的S6和Nexus5),嵌套元素的複雜RelativeLayouts比XML代碼更快地膨脹得比Java代碼快!

你知道爲什麼會發生這種情況嗎?

+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