疑似内存泄漏(在Sygic中);如何解释分配跟踪器

时间:2011-10-23 12:05:42

标签: android memory

我有一个使用Sygic Navigation“集成”到应用程序中的应用程序。

我有理由相信Sygic正在泄漏内存,因为如果我在应用程序中禁用Sygic,它可以永远运行。如果我启用了Sygic,我会在几个小时后看到OutOfMemoryException(比如8-10或类似的东西)。

我不能肯定地说它是Sygics的错误,因为错误日志/堆栈跟踪并没有特别指向Sygic。它相当匿名,这里有一部分实际上暗示它与GPS有关:

10-23 13:29:23.204: INFO/dalvikvm(7262): "Binder Thread #1" prio=5 tid=7 RUNNABLE
10-23 13:29:23.204: INFO/dalvikvm(7262):   | group="main" sCount=0 dsCount=0 obj=0x4051aa20 self=0x8c528
10-23 13:29:23.204: INFO/dalvikvm(7262):   | sysTid=7268 nice=0 sched=0/0 cgrp=default handle=574208
10-23 13:29:23.204: INFO/dalvikvm(7262):   | schedstat=( 8254760016 2789215070 4127 )
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Throwable.fillInStackTrace(Throwable.java:~135)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Throwable.<init>(Throwable.java:74)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Error.<init>(Error.java:38)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.VirtualMachineError.<init>(VirtualMachineError.java:36)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.OutOfMemoryError.<init>(OutOfMemoryError.java:34)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Throwable.fillInStackTrace(Throwable.java:-1)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Throwable.<init>(Throwable.java:74)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.Error.<init>(Error.java:38)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.VirtualMachineError.<init>(VirtualMachineError.java:36)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at java.lang.OutOfMemoryError.<init>(OutOfMemoryError.java:34)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at android.os.Message.obtain(Message.java:-1)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at android.location.LocationManager$GpsStatusListenerTransport.onGpsStarted(LocationManager.java:1230)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at android.location.IGpsStatusListener$Stub.onTransact(IGpsStatusListener.java:51)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at android.os.Binder.execTransact(Binder.java:320)
10-23 13:29:23.204: INFO/dalvikvm(7262):   at dalvik.system.NativeStart.run(Native Method)
10-23 13:29:23.449: DEBUG/(2696): [HYPOS] NOMOVE Time 13114, PowerMode 2, GPSWeakSignal 19, GPSFixTime 0, Car 1, DOE 3
10-23 13:29:23.519: INFO/dalvikvm-heap(7262): Clamp target GC heap from 65.442MB to 64.000MB

现在,我打开Sygic,然后使用Allocation Tracker。现在,这就是堆的样子:

enter image description here

这是Allocation Tracker的截图。我看到的是大量的分配。我不知道它是否好看。我注意到的是 android.location.GpsSatellite 很多分配,并且可以通过下面的堆栈跟踪看到,这与Sygic有关:< / p>

enter image description here

我的问题是: 这看起来对你好吗?这些信息中有什么可以说“啊哈,我看到了这个”这里有什么特别的,古怪的等等?我不知道该怎么做,所以我试着这个=)

(PS:我的应用程序刚刚死了,我在LogCat中唯一可以看到的是很多内存地址,但没有提及为什么它会死掉:)

0 个答案:

没有答案