我在Android 3.2上开发并测试了一个应用程序,它与SQLite数据库交互并在屏幕上显示结果。我没有动画或任何花哨的东西。我所拥有的是很多ListViews向用户显示数据。
应用程序的数据库非常大,有些表的行数超过300k。我们尝试在与数据库的每次交互中使用AsyncTask,但我们仍然需要一些点来优化性能。
问题是该公司将部分平板电脑更新为冰淇淋三明治,该应用程序比Honeycomb慢得多。我在两个设备中加载了相同的代码,使用相同的db,一个运行ICS,另一个运行Honeycomb。该应用程序在3.2设备中表现更好。我也尝试使用<uses-sdk android:minSdkVersion="14" />
,但它没有做得更好。
我有什么办法可以优化4.0的性能吗?我也很想知道为什么会发生这种情况,以及是否有任何可能导致这种情况发生的事情(某些组件或类在4.0上运行不正常)。
谢谢!
更新:我找到了应用主屏幕的解决方案。我正在呈现一个作为水平列表的片段,它是一个HorizontalScrollView
,它加载了大量的数据并创建了很多LinearLayout
来呈现在ScrollView中。我找到了一个HorizontalListView的小部件,用它来加载我的列表。只是这使应用程序更快。但是我没有找到为什么它在ICS上速度慢的答案。
我也试过分析应用程序,但这是一件非常难的事情,有很多信息。我可能会在接下来的几周内继续这样做以加速应用程序。感谢您的所有答案和评论!
答案 0 :(得分:2)
我的猜测是hardware acceleration与default enabled for ice cream sandwich有关。硬件加速很好但是sometimes comes with a performance decline。
Dianne Hackborn在谷歌上有另外一个关于Android硬件加速的有趣read +我建议你去看看。