问题标签 [android-profiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
158 浏览

android - 为什么附加了 Android Studio 分析器后我的 Android 应用程序更快?

我正在开发一个使用 DJI Mobile SDK 将 DJI 无人机的视频流发送到 ANT 媒体服务器的 android 应用程序。使用 SDK 方法,使用 RTMP 协议对视频进行编码和发送。使用 ANT RTMP 到 WEBRTC,由于延迟非常低,我注意到一个问题:

  • 一旦开始流式传输,延迟大约为 600 毫秒
  • 大约 2-3 秒后,延迟开始线性下降,每 3-4 分钟损失大约 1 秒

我还用 DJI 提供的 Mobile SDK Sample 进行了测试,行为是相同的。考虑到性能问题,然后我附加了 Android Studio Profiler,我注意到一个非常奇怪的行为:附加分析器后,流式传输性能非常完美。4-500ms 的恒定延迟,即使在数小时后也没有任何损失。如果我在附加分析器的情况下立即启动应用程序或将其附加到打开的应用程序,则没有区别,重要的是在开始流式传输之前附加分析器。

分析环境和非分析环境有什么区别?在 Android Profiler 执行期间是否在系统/应用程序上设置了某些参数(线程优先级、系统计时器分辨率、无设备优化......?)?

编辑

这是设置 rtmp URL 并开始流式传输的代码片段,不需要更多代码。所有的魔法都由 DJI Mobile SDK 完成。

0 投票
0 回答
180 浏览

java - Android 应用程序在本机堆中消耗过多内存 - Android 分析器

在使用多片段方法(MVC 设计模式)的单个活动之后,我可以看到应用程序在 android 分析器中消耗了大约 200 MB。我已经解决了应用程序中存在的大部分泄漏,但本机和图形内存正在消耗大部分内存,如附图中所述。在此处输入图像描述

我的主要活动包括 2 个片段,每个片段都有背景图像。一旦主要活动启动,内存消耗约为 95 MB(本机 ~60MB 和图形 ~30MB),但一旦我开始打开其他片段,例如设置屏幕(新片段),这些消耗第一次突然增加了大约 50 MB,并且从下一次连续启动此设置片段开始导致约 10 MB 的加息。

我已经从 android profiler 中获取了堆转储,其中 Bitmap(~40 MB),BitmapDrawable(~25Mb) 所消耗的大部分内存附加了 pic 2 在此处输入图像描述

我尝试了多种方法,例如:

  1. 通过执行一些缩放在代码中动态加载图像 - 影响图像分辨率
  2. 销毁片段后清除对象 - 没有改进
  3. 删除不必要的 gradle 库 - 没有改进
  4. 解决应用程序中存在的泄漏 - 几乎没有改进(减少约 15 MB)

一旦我删除了活动顶部存在的所有打开的片段,为什么这些本机和图形内存没有得到释放并恢复到初始内存消耗(~95 MB)。

0 投票
1 回答
236 浏览

android - 获取类实例列表后,如何使用 Android Studio Profiler 获取引用中内存泄漏的确切点?

我的项目中有内存泄漏。为了找出漏洞,我决定使用 Android Studio Profiler。经过大量研究。我停留在实例列表和参考之间如何识别确切的泄漏点。

下面是我的分析器的屏幕截图:

内存分析器

请帮助我了解确切的泄漏原因以避免内存泄漏。

提前致谢。

0 投票
2 回答
204 浏览

android - 提高 UI 性能

我使用 Android Studio Profiler(记录的系统跟踪)检查了我的 UI,得到了以下结果: 在此处输入图像描述 正如您在此处看到的,当我打开我的片段时,加载一帧需要 28 毫秒。我们还可以看到,几乎所有的时间都被遍历和测量所占用。我试图重构我的 xml,现在它看起来像:

它只是一个复杂的 UI,里面有很多嵌套的卡片,里面可以有 recycleview 和其他内容。如您所见,在我重构之后,帧时间仍然存在一些问题。有没有办法提高我的 UI 性能,或者至少可以获得有关问题的更详细信息以及为什么绘制 UI 需要这么长时间?

0 投票
2 回答
285 浏览

java - Android 内存:如何在不使用 Profiler 的情况下检查内存?

我的应用程序出现 OOM 错误 (OutOfMemory) 问题。这似乎是由于一个对象在内存中占用越来越多的空间,但我无法找到哪个。

我想使用 Android Profiler 来查找问题。但是我有一个使用大量设备处理器和内存的实时应用程序,当我使用 Profiler 时,应用程序变得非常慢并且几乎无法使用(我需要以正常速度使用该应用程序至少 3 分钟才能看到内存逐渐增长)。

我的问题是:

  • 有没有办法在没有这个减速问题的情况下使用 Profiler?
  • 如果没有,是否有任何其他工具或方法可以帮助我找到内存中增长的对象?

谢谢 !

0 投票
1 回答
1192 浏览

react-native - React Native 中的 JS 线程的 fps 较低

当我在 android 设备上运行我的 react 本机应用程序时,我有显着的 JS 线程帧丢失(低 fps)。它会影响 RAM 较少的设备上的屏幕响应能力。关于如何检测丢帧的任何建议(任何工具或分析器),即哪个组件导致丢帧?

0 投票
1 回答
197 浏览

android - Android Profiler 线程和进程按 Id 查找

我正在尝试使用 Android Studio 的探查器工具之一调试我的应用程序。

我试图准确地找到我的 CameraActivity 的主线程在跟踪文件中的位置。

我正在使用 perfetto UI 以将跟踪作为网页打开。请看附图在此处输入图像描述

我看到我可以缩小到我的包裹。但是我试图找到实际的主线程。特别是它可能导致内存泄漏的处理程序。

为了得到进程Id和线程Id,我把这个Log.d调用放在了Handler的handleMessage方法里面。

这个 Log.d 调用给了我结果:

20815-20815 D/iinnside_:参见:2 字符串:Thread[main,5,main]

根据我对日志输出配置的理解,数字:20815-20815 代表我需要的进程和 ID。但是我无法通过 perfetto UI 显示找到它们。此外,根据上面的 Log.d 调用,主线程的 id = 2。

在软件工程中,必须为应用程序的主线程分配一个公共编号。最常用的数字是什么?

如何理解我的应用程序线程上的这些进程 ID?

0 投票
0 回答
204 浏览

android - Flutter 的问题:构建我的应用程序的问题

我正在对 Flutter 和 Apache Cordova 进行速度测试比较,我使用 Flutter 创建了一个非常简单的应用程序,并听说过 Android Profiler。由于我想比较它们,我想将 Android Profiler 与 Flutter 和 Cordova 一起使用,而不是任何其他替代方案。我在运行 Android Profiler 时遇到了问题:

在配置文件模式下在 SM G991B 上启动 lib\main.dart...
运行 Gradle 任务 'assembleProfile'...
拾取 _JAVA_OPTIONS: -Xmx512m
√ 内置 build\app\outputs\flutter-apk\app-profile.apk (11.2MB )。
运行 com.example.weatherapp2 时出错。未找到默认活动
无法从 C:\Users\asd\Documents\weatherapp2\build\app\outputs\flutter-apk\app.apk 读取清单信息。
例外:构建 Android 应用程序时出现问题:请参阅上述错误。

自从我在其他帖子上发现此问题但未成功后,我进行了测试:

  • 使缓存无效/重新启动
  • 删除了构建文件夹中的所有 apk
  • 在命令行中使用flutter clean

有什么解决办法吗?

我一直在测试一些东西,现在我得到了这个错误:

运行 com.example.weatherapp2 时出错。未找到默认活动无法从 C:\Users\ara98\Documents\weatherapp2\build\app\outputs\flutter-apk\app.apk 读取清单信息。未找到 TargetPlatform.android_arm64 的应用程序。您的项目是否缺少 android\app\src\main\AndroidManifest.xml?考虑运行“flutter create”。创建一个。

0 投票
0 回答
30 浏览

android - 是否可以将 Android Profiler 与任何混合框架一起使用?

我正在比较 Apache Cordova 和 Flutter 关于电池、CPU、RAM 等硬件组件的使用......

我的问题是可以在这两个平台的 android studio 中使用 Android Profiler 工具,还是只能在编写本机应用程序时这样做?

感谢您的任何回答。

0 投票
2 回答
54 浏览

android - 单击后退按钮时,如何删除活动分配的所有资源

我有两个活动 MainActivity 和 SecondActivity。MainActivity 有一个按钮,当我点击它时,我会转到 SecondActivity,在这个活动中,我在一个单独的线程中进行一些数学计算(执行此计算所需的代码非常大,有 100 个类),当计算是完成后,我在 Textview 中显示结果。当用户单击后退按钮时,它会返回 MainActivity,直到此刻一切都很好,但是当我在 android studio 中分析代码时,我发现保留了许多计算函数的类,例如静态变量、枚举等为了解决这个问题,我试图删除一些静态变量,通过这种方法我减少了保留的代码量,但我不能再进一步了。有没有办法解决这个问题,所以当我点击返回按钮时,