为Android应用程序创建通用标头

时间:2011-03-11 05:47:43

标签: android performance header memory-management

我希望为Android活动创建一个通用标头,并有3种可能的方法来解决相同问题。我想知道哪个是性能和内存使用方面的最佳解决方案。

  1. 在所有XML布局中复制XML:我相信这是使用大量内存的最不令人印象深刻的解决方案

  2. 创建一个自定义HeaderView,然后我可以根据需要使用它。缺点:它仍然会产生很多实例。

  3. 使用<include >包含XML组件,不确定它如何帮助提高性能并减少内存使用量。

  4. 那么哪种方法最好,还是有更好的方法?

4 个答案:

答案 0 :(得分:1)

第三种方式看起来是一个好的候选人......所有这些方式之间的表现差异并不大。另一方面,它的可维护性差异。因此,第三个选项允许更清晰的解决方案,因为您没有样板代码,并且允许您在将来轻松更改标题而无需修改其他视图。

第二种解决方案很不错,但它带来了不必要的复杂性。你打算用这个标题使用三个以上的活动吗?您是要分享HeaderView还是在其他项目中重复使用?如果没有......那么它就不值得了。更糟糕的是,它会让你编写Java代码,这比几行XML更难维护。

答案 1 :(得分:1)

我认为你担心错误的事情。选择最适合您的项目的开发或可维护性。请记住,根据Android活动生命周期,视图都是一个活动的一部分,用户可以随时看到它。如果需要进行垃圾收集,框架有责任清理不可见的活动。如果您对视图效果感到担心,请使用SDK附带的Hierarchy Viewer来平整您的观看次数。

答案 2 :(得分:0)

在我看来,我会选择第三个虽然它在内存方面没有任何区别,但它会使代码更清晰 - 至少对于xml。我可能错了,但这只是我的意见

答案 3 :(得分:0)

我最终使用第2步并在onPause中将我的头对象设置为null并在onResume中重置它,这样垃圾收集器可以释放资源。谢谢@Morrison Chang: - )