【问题标题】:Avoid high overdraw and long View drawing避免高透支和长视图绘图
【发布时间】:2014-01-22 11:40:25
【问题描述】:

我正在编写的 BI 应用程序有问题。

应用程序将 AChartEngine 用于图表,并且大部分表格数据都以编程方式进行膨胀。我目前面临两个主要问题:

  1. 当应用程序切换方向时,重绘每个仪表板元素(即显示数据)大约需要 8-10 秒。这是透支问题还是其他问题(这发生在 N4、N5、注 3...)。这是不可接受的,我真的需要解决这个问题!
  2. 表格行元素上的透支几乎是 4 倍,我设法将它降低到 getWindow().setBackgroundDrawable(null) 的 2-2.5 倍左右。当一切都从代码中膨胀时,我该如何解决这么多的透支问题? (以下是它的外观示例:http://prntscr.com/2lio5q)。

【问题讨论】:

    标签: android android-layout android-view android-tablelayout layout-inflater


    【解决方案1】:

    关于透支: 您是否查看过 Romain Guy 的 Android 性能案例研究: http://www.curious-creature.org/docs/android-performance-case-study-1.html

    您还可以找到他的几个 Google I_O 视频(其中一些已过时),可能会有帮助。

    【讨论】:

    • 我确实做到了,这就是我尝试优化我的过度绘制的方式(并且部分成功),但我仍然不明白这是否是切换方向需要这么长时间的原因。
    • 您是否尝试过 traceview 来找出为什么绘图需要这么长时间?
    • 我做到了,但我认为我不是 100% 了解结果,这是图表(当我改变方向时出现巨大的峰值)。 docs.google.com/spreadsheet/…
    • 另外,这是应用程序的跟踪,我想你们会看到问题出在哪里(当我旋转手机时)。进程26246:db.tt/7blFrjS3
    【解决方案2】:

    我终于修复了方向工作非常缓慢的问题。我在清单中为我的 FragmentActivity 应用了一些标志,现在效果更好,标志是android:configChanges="screenSize|orientation|keyboardHidden"

    请记住,对于这种事情,使用 FragmentPagerAdapter 比使用 FragmentActivity 更好,并且更像 Android,但我使用我得到的东西。

    希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2011-04-02
      相关资源
      最近更新 更多