1

我是一名初級android開發人員。對於android UI設計,我認爲大多數android開發人員將使用XML進行佈局設計。今天,我的高級開發人員說他不使用XML進行佈局設計。所有的UI設計都使用代碼來生成。他說的原因是Android的佈局資源不是由Android自動發佈的。使用JNI發佈佈局資源。他沒有詳細告訴你,因爲他認爲我很低級。佈局內存泄漏?

我想問他是否屬實。我不知道他的觀點。但是,我確信他的代碼無法重用。此外,Android如何在其生命週期中發佈佈局資源。

謝謝。

+0

你應該更喜歡使用XML來設計佈局,因爲它給你一大堆優勢。我懷疑它會導致你任何形式的內存泄漏。 – Egor 2012-07-19 13:41:35

+0

這是不正確的。在通過xml設計佈局時沒有內存泄漏。他可能在跟你開玩笑。 – waqaslam 2012-07-19 13:41:53

+0

@歐格:是的,我認爲是。硬編碼佈局是沒有意義的。 – 2012-07-19 14:00:10

回答

3

他說,原因是佈局資源不是由Android自動釋放

通過膨脹佈局資源創建的「由Android自動釋放」當這些部件從活動除去部件或者活動是否被破壞。換句話說,小部件與其他Java對象一樣被垃圾回收。而且,無論這些小部件是否使用佈局資源創建,都是如此。

可以想象,佈局資源的解析XML由進程緩存,因此如果再次需要相同的佈局,則可以跳過解析步驟。這不會是太多的記憶。避免使用XML佈局資源來避免這種小內存緩存是非常短視的,而不是我對真正的「高級開發人員」所期望的。

使用JNI釋放佈局資源

JNI無關與佈局資源。 JNI與小部件無關。

他沒有詳細告訴你,因爲他認爲我很低級。

歡迎他記錄他的發現,爲他的主張和他的決定提供證據。

+0

太棒了!但是,你怎麼知道佈局資源被緩存? – 2012-07-19 14:21:44

+0

一個很好的答案。我可以問你一個問題嗎?我需要與IOS開發人員合作。他不知道android如何做UI設計。但是,他製作了一個非常有力的UI。你介意去這個鏈接回答我嗎? [鏈接:] http://stackoverflow.com/questions/11563370/how-do-you-design-this-layout-simple謝謝。 – 2012-07-19 15:12:03

+0

@ user1535426:「但是,你怎麼知道佈局資源被緩存?」 - 您需要花費幾個小時來查找Android源代碼,以確定Android是否確實緩存了分析的佈局XML資源。就我個人而言,我不知道他們是否被緩存。 – CommonsWare 2012-07-19 16:28:45