Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2D游戏应用程序持续冻结1秒_Android_Lag - Fatal编程技术网

Android 2D游戏应用程序持续冻结1秒

Android 2D游戏应用程序持续冻结1秒,android,lag,Android,Lag,我有一个2D游戏我正在工作,有一个小的几乎不明显的问题。确切地说,每1秒,它就会产生一种小小的打嗝效应。当物体移动时,如果你仔细观察,它们会暂停,几乎就好像它是滞后的 在过去的5个小时里,我一直在浏览我的代码,压缩重复的数据,并确保变量和未正确初始化的内容以防止垃圾收集,但我是一个相对较新的Android和Java程序员 无论哪种情况,我都不知道是什么原因导致了这个问题,因为我已经屏蔽了部分代码,以查看是否有任何代码导致了这个问题。除此之外,我还添加了一个FPS计数器,它可以在屏幕上持续显示,并

我有一个2D游戏我正在工作,有一个小的几乎不明显的问题。确切地说,每1秒,它就会产生一种小小的打嗝效应。当物体移动时,如果你仔细观察,它们会暂停,几乎就好像它是滞后的

在过去的5个小时里,我一直在浏览我的代码,压缩重复的数据,并确保变量和未正确初始化的内容以防止垃圾收集,但我是一个相对较新的Android和Java程序员

无论哪种情况,我都不知道是什么原因导致了这个问题,因为我已经屏蔽了部分代码,以查看是否有任何代码导致了这个问题。除此之外,我还添加了一个FPS计数器,它可以在屏幕上持续显示,并且持续保持在60 FPS以上

还有什么其他原因会导致这种情况吗?除非你仔细观察,否则它是不明显的

在此日志中注意到进程ID并不完全相同,这一点可能很重要。(另一个过程会干扰吗?)

尝试使用来分析应用程序的性能。这是一个很好的工具,可以检测调用某些方法的频率以及它们所用的时间。当我的应用程序出现性能问题时,它对我帮助很大

我还建议调查您的非UI类是否正在尝试访问UI类。在这种情况下,即使是很小的延迟也会很明显,螺纹锁可能是您遇到的问题


希望这有帮助

我们的游戏中也有同样的问题,都是通过安德林制造的。游戏以每秒60+帧的速度运行,但游戏经常延迟。我们尝试过关闭声音、预加载所有内容、优化内存管理以及书中的每一个技巧。还是不走运。似乎我们缺少了一些与安卓游戏开发相关的基础知识。安卓引擎也是如此
04-06 23:35:31.962: DEBUG/KeyguardViewMediator(1082): pokeWakelock(5000)

04-06 23:35:31.962: INFO/power(1082): *** set_screen_state 1

04-06 23:35:31.993: DEBUG/Sensors(1082): using sensors (name=sensors)

04-06 23:35:32.595: DEBUG/SurfaceFlinger(1082): Screen about to return, flinger = 0x120f38

04-06 23:35:33.016: DEBUG/KeyguardViewMediator(1082): pokeWakelock(5000)

04-06 23:35:33.157: DEBUG/KeyguardViewMediator(1082): pokeWakelock(5000)

04-06 23:35:35.696: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 971 objects / 39072 bytes in 50ms

04-06 23:35:36.743: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1350 objects / 53680 bytes in 38ms

04-06 23:35:37.774: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1431 objects / 57032 bytes in 37ms

04-06 23:35:38.813: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1445 objects / 57736 bytes in 37ms

04-06 23:35:39.876: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1457 objects / 58232 bytes in 38ms

04-06 23:35:40.923: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1458 objects / 58424 bytes in 37ms

04-06 23:35:41.977: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1451 objects / 58168 bytes in 37ms

04-06 23:35:43.016: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1446 objects / 58048 bytes in 38ms

04-06 23:35:44.157: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1490 objects / 59648 bytes in 46ms

04-06 23:35:45.032: DEBUG/dalvikvm(1813): GC_EXPLICIT freed 246 objects / 13640 bytes in 1042ms

04-06 23:35:45.282: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1522 objects / 60992 bytes in 37ms

04-06 23:35:46.313: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1456 objects / 58344 bytes in 37ms

04-06 23:35:47.376: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1452 objects / 58192 bytes in 37ms

04-06 23:35:48.454: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1484 objects / 59496 bytes in 37ms

04-06 23:35:49.509: DEBUG/dalvikvm(4970): GC_EXTERNAL_ALLOC freed 1440 objects / 57744 bytes in 45ms

04-06 23:35:49.696: DEBUG/dalvikvm(1836): GC_EXPLICIT freed 46 objects / 2208 bytes in 608ms

04-06 23:35:54.141: DEBUG/dalvikvm(4043): GC_EXPLICIT freed 91 objects / 7984 bytes in 56ms

04-06 23:35:59.180: DEBUG/dalvikvm(4051): GC_EXPLICIT freed 196 objects / 12176 bytes in 92ms

04-06 23:36:09.665: DEBUG/dalvikvm(4000): GC_EXPLICIT freed 37 objects / 2000 bytes in 65ms

04-06 23:36:14.790: DEBUG/dalvikvm(3976): GC_EXPLICIT freed 487 objects / 29960 bytes in 87ms