【发布时间】:2010-10-12 20:42:20
【问题描述】:
我开发了一个使用许多服务的 Android 应用程序,包括 GPS 和方向(指南针)。该应用程序的类型是 AR(增强现实),我根据手机方向实时在屏幕上移动图像视图。但是,过了一会儿,手机会冻结一秒钟,然后重新启动(摩托罗拉 Droid)。我找不到有关此事件的任何有用日志。手机重启后清除Eclipse中的日志;我使用“adb logcat”命令将日志写入我 PC 上的文件。最后有意义的信息行是:
I/ActivityManager( 1272): Displayed activity com.zlatko/.Main: 2656 ms (total 2656 ms)
D/CameraHal( 1050): Zoom callback param1: 65536, param2: 1
D/CameraHal( 1050): processZoom/1:0. stopped=1
D/CameraHal( 1050): Stored Zoom Data/0/1:0
D/dalvikvm( 1272): GC freed 8444 objects / 453552 bytes in 268ms
D/dalvikvm( 1656): GC freed 13158 objects / 456056 bytes in 257ms
D/dalvikvm( 1656): GC freed 23844 objects / 787840 bytes in 98ms
D/dalvikvm( 1656): GC freed 22942 objects / 756408 bytes in 94ms
我怎样才能找到这种令人沮丧的行为的原因?日志不提供洞察力,没有抛出明确的异常,系统不确定(这意味着,我无法确定手机在什么时间点准确重启)......
有什么推荐吗?
【问题讨论】:
-
您是否使用 Log 类手动记录内容?我会大量记录重要的类/函数调用以获得更详细的行为。
-
不,我不手动登录。当然,这是一件好事,但奇怪的是,任何地方都没有抛出异常,手机重启的那一刻或多或少是随机的。也许,我发现的一种模式是,当我向多个方向快速移动手机时,手机会重启。
-
@Zlatko:对于可能是摩托罗拉特有的问题,您可以考虑在 MOTODEV 支持论坛上发布您的查询(提供更多信息,因为我知道他们会要求)。
-
请注意,重新启动(硬件重置)和重新启动(Android 应用程序框架死亡并重新启动)之间存在差异。通常在重新启动时,您会在启动动画之前看到一个额外的徽标屏幕(例如 Moto 徽标)。如果是重新启动,内核日志中可能有一些内容。如果你能在重启后获取“adb bugreport”并查找previous内核恐慌日志,你可能会发现一些东西。
-
@fadden 感谢您提供的 shell 命令。不知道它是用于内核日志的,虽然在论坛的某个地方看到过。实际上,我的应用程序正在硬件级别重新启动,因为一开始 Moto 徽标出现,随后是 Android 徽标。会看一下日志。
标签: android gps screen-orientation