改善重型布局的加载时间

时间:2014-01-29 07:19:38

标签: android performance android-layout android-fragments android-ui

我有一个应用程序,它有很多活动,所有活动的布局都有很多视图(TextViews,以不同的样式显示不同类型的数据,ImageViews等)。

当活动加载时,它们会花费太多时间来加载布局/ UI(超过一秒钟)。

问题:有没有办法减少加载活动所需的时间,因为加载UI需要很长时间?

对我所拥有的简短描述:

  • 所有布局至少有30-35个视图
  • 我正在使用相对布局
  • 我没有嵌套布局,大多数视图彼此平行,并且透支最多为2x
  • 所有文字视图都是自定义的,为它们设置自定义字体
  • 用户界面正在活动的onCreate()中加载

我正在考虑做以下任何一件事:

  • 以一种活动数量较少,碎片数量较多的方式将应用程序转换为碎片。例如,有一个Home Activity加载第一个片段,并且与app的进一步交互通过Fragment Transactions在不同目的之间保持片段之间的加载/切换。只有当我遇到片段的限制时,我才会产生一个新的活动 它会帮助提高速度吗?

  • 在活动开始后,视图中加载了最基本的UI,并且所有其他UI元素在后台线程(AsyncTask)中都是inflated,然后{ {1}}到当前视图的根目录。

在不同的意见中,哪种方法会更好?
有没有更好或更标准的方法来解决这个问题?

欣赏所有输入。提前谢谢!

1 个答案:

答案 0 :(得分:1)

以下是您已经要做的更多建议。

  1. 如果您在onCreate()方法中注入视图,请确保使用设计时注入框架(Bufferknife或AndroidAnnotations)而不是运行时注册框架(Guice,RoboGuice)。运行时框架肯定会减慢启动时间。

  2. 如果您有最初对用户不可见的观看次数,则可以使用ViewStub并按需加载。