如果我在我的开发设备上运行top我可以看到,当我的应用程序是它使用.6%cpu的背景时,如果我把它带到前台它使用5-6%的cpu.问题是,它没有做任何事情.没有服务正在运行,没有后台线程,只
有没有办法在adt或通过其他工具找出哪个线程正在吃cpu所以我可以知道从哪里开始寻找问题?
是的,它甚至是免费的.它被称为 DDMS,是Eclipse的ADT插件的一部分.通过USB连接您的设备,启动您的应用程序,然后打开DDMS视图,您将能够快速找到您的CPU密集型线程.
请注意,为程序生成的线程提供人类可读的名称是一种很好的做法.您的用户永远不会使用这些名称,但它会使线程调试/分析更简单:
Thread.currentThread().setName("DB-Access-Thread");