EditText性能:了解配置文件GPU渲染上的GPU处理时间

时间:2015-04-22 14:47:43

标签: android performance android-edittext

我正在调查提高EditText性能的方法,特别是在加载时间方面。当加载几千字或更多字的大型文档时,调用setText可以在我的一些测试设备和模拟器上冻结UI几秒钟。

作为回应,我已经探索了几种可能的解决方案,但都没有产生令人满意的结果。我试图按段落拆分大型文档,并将每个段落加载到自己的RecyclerViewListView行中。由于causes jerky scrolling的问题,RecyclerView完全没有希望了。 ListView提供了很好的,几乎是即时的加载时间,并且非常好的滚动(虽然不如一个EditText块好)但是存在EditText阻塞行{{3}的问题}}。我还尝试在EditText中的onProgressUpdate部分更新AsyncTask部分,希望用户可以在部分加载时与文本进行交互,但加载时间基本不受影响。

我探索过的最有希望的途径涉及改变AndroidManifest.xml中的以下元素:

    android:hardwareAccelerated="false"

我在Google Developers频道上观看了lose focus when selected的以下细分后得到了这个想法。当我打开GPU配置文件渲染时,我发现每次调用setText时橙色条(代表“处理时间”)都在飙升。当我关闭硬件加速时,setText性能大幅提升,尽管其他领域(如滚动)变得更糟。

我想了解的是 - 为什么会发生这种情况?另外,有没有办法可以使用这些信息来进一步提高性能?我可以简单地以编程方式关闭和打开硬件加速吗?

值得一提的是,一些设备,如运行API 22的Nexus 7 2013,在大型文档上调用setText时不会遇到任何问题,而其他设备真的很难加速硬件加速。我只想了解更好的情况,以便我可以尝试解决它!谢谢。

修改

以下是YouTube clip,任何人都可以下载我的一个示例测试应用来复制上面列出的问题。我还在网站上发布了三个视频,展示了这些问题,我将在下面进行讨论:

  

我做了三个视频演示,显示这个应用程序正在运行   a link to a GitHub Repository hardwareAccelerated属性设置为true   AndroidManifest,然后使用具有相同属性的同一部手机   设置为false,并启用硬件加速的单独Huawei Honor Holly running KitKat 4.4.2。在每种情况下都会启用GPU分析。

     

Nexus 7 (2013) running Lollipop 5.1

     

Honor Holly - Acceleration On

     

Honor Holly - Acceleration Off

0 个答案:

没有答案