0

我在我的应用 "CellViz"中使用 Android Maps API v2 。该应用程序的一项功能是向移动地图实时添加线条和多边形,以在用户收集数据时表示小区信号覆盖范围。

我的应用程序中当前有一个用户定义的参数(默认值 = 25m),它定义了在添加新线和多边形之前覆盖了多少距离。显然,当重绘大量线条和多边形时,UI 会变得迟缓。

我的问题是,当这种缓慢开始时,就地图上的对象数量而言,严重依赖于硬件。因此,我很难为距离参数选择一个默认值,既能在低端设备上表现良好,又能通过在地图上显示合理数量的信息来使该功能在高端设备上有用。

我在应用程序中有设置,您可以取消选中“显示移动多边形历史”和“显示移动线历史”,当这些设置被关闭时,呆滞消失 - 所以减速肯定是由正在绘制的对象数量引起的在地图上。

我希望能够以编程方式检测 UI 线程何时出现跟不上的问题,因此我可以将距离参数自动调整为更大的值(主要对未来的执行有用),或者简单地删除部分或全部这些当它们在低端设备上成为问题时,从地图中删除对象。

知道如何以编程方式检测由于在地图上绘制对象而导致的 UI 线程上的这种迟缓吗?

4

1 回答 1

0

我能想到的一种方法是解析 logcat 以搜索 GC 及其时间。

如果你在 1 秒内获得超过 100ms 的 GC,那是否足够缓慢?测试应该显示。

于 2013-04-14T14:29:31.953 回答