【问题标题】:Why does Facebook's Android app scroll so smoothly为什么 Facebook 的 Android 应用滚动如此流畅
【发布时间】:2012-01-16 11:02:08
【问题描述】:

Facebook 在我的 Android 手机中拥有最流畅的用户界面,我想知道他们如何做到这一点。

在我编写演示时,带有图像的 ListView 似乎总是滞后,而 facebook 的新提要活动行为如此惊人。

谁能告诉我 Facebook 应用程序是使用原生 ListView 但有一些改进,还是只是重写整个视图以获得更好的性能?

编辑:我已经使用了缓存策略,例如使用异步线程,将 ViewHolder 缓存为标记并将图像存储在内存中以进行加速,但我仍然感到迟钝。我真的很想知道 facebook 的工程师是怎么做到的,他们真的很棒

【问题讨论】:

  • 我不知道除了 Facebook 移动开发者之外的其他人是否能够为您回答这个问题。
  • 尝试在清单文件中启用硬件加速,看看是否有影响
  • @xbonez 其实我用不同的设备测试过app,有的根本不具备做硬件加速的能力。但 facebook 应用程序的行为仍然比其他应用程序好得多。
  • 如果你展示一些代码(可能是 github、pastebin 或 gist)也许能够看到你的代码中是否存在任何可能的瓶颈。

标签: android facebook listview smooth


【解决方案1】:

尝试将设备连接到 adb,打开 DDMS 并按下方法分析按钮,然后开始滚动几秒钟。 Traceview 将打开,您会看到什么正在耗尽所有 CPU 时间。

【讨论】:

    【解决方案2】:

    我以前从未使用过 ListView,但如果我不得不猜测,也许他们正在检索结果然后缓存它们,而您每次都在查询结果而不是缓存它们。

    【讨论】:

    • 感谢您的回答!我已经使用了 Google I/O 2009 介绍的缓存策略。此外,我确实将图像存储在内存中以进行加速,但我仍然感到迟钝。尽管只有文本的最简单的列表视图滚动非常流畅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2013-09-14
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多