1

我对 Android 还是很陌生,所以我可能没有必要的布局专业知识来确保我不会创建不必要的视图节点。目前,我的主要 XML 布局很大(大约 770 行),因此加载时间过长(大约 2 秒,感觉没有响应)。

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

这可以解决问题吗?还有什么我应该研究的吗?我目前知道内存泄漏的可能性,所以我会留意这一点。

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

LayoutInflater inflater = LayoutInflater.from(this);
View layout = inflater.inflate(R.layout.question, null, false);

然后在另一个活动中,过了一会儿:

setContentView(layout);

但仍然需要同样的 2 秒才能打开。我错过了什么吗?预充气我这样做的方式真的不应该有任何改善吗?

4

1 回答 1

0

是的,您可以使用类“预膨胀”您的视图LayoutInflater但是,我建议您使用Hierarchy Viewer工具评估您的布局性能,以查明问题所在。Romain Guy 有几个关于如何使用这个工具的视频。您还可以使用 Lint 提供的提示(它已经取代了旧的 layoutopt 工具)来优化您的布局。有关此的详细信息在这里

于 2012-11-09T09:59:14.757 回答