Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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应用程序性能问题?_Android_Performance_Memory Leaks_Android Bitmap_Android Profiler - Fatal编程技术网

如何检测和解决android应用程序性能问题?

如何检测和解决android应用程序性能问题?,android,performance,memory-leaks,android-bitmap,android-profiler,Android,Performance,Memory Leaks,Android Bitmap,Android Profiler,我试图弄清楚,为什么当用户在活动之间切换以及创建对话框时,我的应用程序会结巴 我转储我的应用程序性能,以便使用探查器检测异常,并在一段时间内玩应用程序 与其他对象相比,我发现的唯一异常是位图的“本机大小”数量相对较大: 但我真的不知道它是否异常,如果是,如何调查和解决它 该应用程序相当大,因此我认为最好是共享整个回购协议,以便您能够查看代码: 打开您认为滞后的活动,如果您发现该活动,请在logcat filter bywordChoreographer 跳过了60帧 在logcat中,这意味

我试图弄清楚,为什么当用户在活动之间切换以及创建对话框时,我的应用程序会结巴

我转储我的应用程序性能,以便使用探查器检测异常,并在一段时间内玩应用程序

与其他对象相比,我发现的唯一异常是位图的“本机大小”数量相对较大:

但我真的不知道它是否异常,如果是,如何调查和解决它

该应用程序相当大,因此我认为最好是共享整个回购协议,以便您能够查看代码:


打开您认为滞后的活动,如果您发现该活动,请在logcat filter byword
Choreographer

跳过了60帧

在logcat中,这意味着应用程序可能在其主线程上做了太多的工作

然后,您可以优化该活动的呼叫和处理

  • 我注意到在您的内存截图中,内存分析器检测到四个泄漏。您是否尝试单击标签以查看它们是什么
  • 要调试丢失的帧,请使用CPU探查器记录系统跟踪。看见找到红色帧(大于60 Hz阈值)后,查看渲染/UI线程中可能导致瓶颈的长时间运行的跟踪事件。这可能会有所帮助

  • …代码在哪里?我们如何在没有看到任何代码行的情况下评论或注意到一个bug?看起来您创建了很多位图,所以从这里开始…我不知道代码的哪一部分与本例相关,因为我不知道问题的原因是什么以及在哪里。你能告诉我什么有用吗?内存中分配了近180k的位图,因此我认为你可以使用一些位图或图像方法从加载它们的位置开始…但是如果不看代码,很难更精确。我玩了整个应用程序(主要由3个活动和一些片段组成)我只得到了3个编舞日志,都跳过了60帧以下,尽管我实时看到了应用程序ui的结巴。它不应该跳过任何帧,这是ui结巴的原因。我的日志是一个e.G必须强调的…当我在屏幕上移动大约20-30秒时,应用程序只跳过了3帧。即使没有跳过任何帧,ui也会结巴。