android缓存巨大的布局膨胀

android缓存巨大的布局膨胀,android,caching,layout,Android,Caching,Layout,不知何故,我对Android还是新手,所以我可能没有必要的布局专业知识来确保我不会创建不必要的视图节点。目前,我的主要XML布局非常庞大(大约770行),因此需要花费太多的时间来加载(大约2秒,这使它感觉没有响应) 我学习了膨胀命令,它可以解析XML并返回视图,因此我认为可以在启动屏幕期间使用AssyncTask缓存这些视图,并在主活动的onCreate()中使用它 这能解决问题吗?还有什么我应该调查的吗?我目前意识到内存泄漏的可能性,所以我会密切关注 编辑:我尝试过预充气,但我似乎根本没有实现

不知何故,我对Android还是新手,所以我可能没有必要的布局专业知识来确保我不会创建不必要的视图节点。目前,我的主要XML布局非常庞大(大约770行),因此需要花费太多的时间来加载(大约2秒,这使它感觉没有响应)

我学习了膨胀命令,它可以解析XML并返回视图,因此我认为可以在启动屏幕期间使用AssyncTask缓存这些视图,并在主活动的onCreate()中使用它

这能解决问题吗?还有什么我应该调查的吗?我目前意识到内存泄漏的可能性,所以我会密切关注

编辑:我尝试过预充气,但我似乎根本没有实现性能提升

LayoutInflater inflater = LayoutInflater.from(this);
View layout = inflater.inflate(R.layout.question, null, false);
然后在另一个活动中,一段时间后:

setContentView(layout);

但仍然需要同样的2秒钟才能打开。我错过什么了吗?我的预膨胀方式真的不应该带来任何改进吗?

是的,您可以使用
LayoutInflater
类“预膨胀”视图。不过,我建议您使用工具来评估布局性能,以确定哪里出了问题。罗曼·盖伊(Romain Guy)有几段关于如何使用这个工具的视频。您还可以使用Lint提供的提示(它已经取代了旧的layoutopt工具)来优化布局。详细信息如下。

我尝试过预充气,但没有效果。我是否不得不重构布局本身?