我们有一种类型的应用程序通过 Socket 与服务器连接。服务器通常会发送一些订单(添加订单、更新订单和删除订单)。服务器每秒发送超过 20 个请求。根据对 Android 客户端的这些请求,我们必须更改 ListView 适配器。我们正在这样做,但是我们有一个巨大的 CPU 负载。
您认为这个问题的根源是什么?
用 ViewHolder 实现的 ListView。我们不知道在哪里测量时间以及我们如何定义这个特定应用程序的瓶颈。我们试图测量请求的 parcing - 没关系。我们还测量 View 通知。看来也不慢。然后通过 View.post() 触发 View 。也许要查看的 MessageQueue 太长了?
编辑:CPU 负载很大,即使我们当前不在 ListView 中(我们没有看到它)
最佳答案
可以引用this amazing blog post made by Romain Guy (主要的 Android Framework 工程师之一)展示了如何使用多种优化工具。显示的大多数工具都已包含在 SDK 中,并且可以非常精确地测量以毫秒为单位的时间等等。
对于任何 android 开发者来说都是非常有用的读物
编辑:
这里只是一个大胆的猜测,考虑到您的描述,也许 CPU 负载来自移动设备必须处理所有信息,即使这些信息与其无关(您说根据请求,您更改适配器) 为什么不让服务器检查此数据并只向设备发送实际使用的数据?
关于Android ListView 和 CPU 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052576/