我们正在真实的设备上测试我们的Android应用程序,注意到其中一些应用程序在运行2-3个小时后偶尔会重启。该应用程序由一个具有3个线程的服务(具有GPS和网络)和两个活动组成,其中一个活动消耗资源(显示地图)
Logcat没有帮助,因为在设备重新启动之前,我们没有看到任何重要的消息。有时设备甚至无法启动,只有移除电池才能帮助它再次启动。
这些设备基于不同的硬件,在不同的国家(主要是中国,哈哈)生产,并使用不同的Android版本。
可能导致设备重启的最常见问题是什么?如何进行调试?
发布于 2012-07-02 12:52:15
当GPS接收器打开时,这很可能是过热问题。关闭GPS并从蜂窝网络获取位置后,该应用程序可以连续几个小时平稳运行。
感谢大家的回复和想法!
发布于 2012-06-30 05:57:52
Android中有两种类型的重启:
Zygote会重新启动。常见原因:- Watchdog killed a system\_server process because of deadlock in of services it's running.
- Fatal exception occured in one of system services. However, the actual reason sometimes may be a hardware issue. For example, in some cases after factory reset `ext2` partitions aren't formatted as follows. It leads to errors and `/data/` partition is mounted as read-only, which produces a bunch of errors.
- In rare cases watchdog can be timed out because of high memory and CPU usage.这两种情况都很少见,大多数情况下都可以在猴子测试中重现,而不是在真实情况下。您可能会看到一个使用adb shell终止service_manager进程的logcat输出示例。
/dev/kmsg或从ADB shell:adb shell dmesg阅读它。不幸的是,很难读取它们,因为在大多数设备上,控制台输出都是禁用的,每次重新启动时,kmsg缓冲区都会被擦除。
备注:重新启动可能是由硬件问题引起的。在这种情况下,它不太可能找到任何痕迹,但希望这应该只在特定的设备上重现。
发布于 2012-06-30 05:27:35
我有一个类似的问题(还有gps和网络),我忘了将网络更新计时器设置为生产(15分钟),所以设备每15秒更新一次,不管怎么说,设备过热,索纳或更晚(htc希望)
尽量减少cpu使用率(性能分析)或确保正确的冷却机制
https://stackoverflow.com/questions/11268784
复制相似问题