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