问题标签 [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 投票
2 回答
2314 浏览

android - Android Studio 3.2:打开 HPROF 转储文件时找不到分析器任务窗格

我正在尝试使用 Android Profiler 分析应用程序的内存泄漏。大多数在线教程(以及本网站上的答案)都说要创建一个堆转储,使用 .hprof 扩展名保存它,然后在 Android Studio 中打开它。我能够做到这一点,但找不到这些教程引用的“分析器任务”窗格,如下面的屏幕截图所示:

示例截图

我试过到处找。这就是我看到的所有内容:

我所看到的

我在哪里可以找到它?

0 投票
1 回答
37 浏览

android - 活动轮换释放

我创建了一个 hello world 简单活动并开始。我查看 android profiler ,当我旋转屏幕时,在堆(android profiler 监视器)中总共显示了 2 个 MainActivity。为什么第一个活动没有解除分配?

0 投票
0 回答
67 浏览

android-studio-3.0 - 如何读取导出内存分析器 - android studio 3.2.1

我正在从那里得到出口memory profiler并得到我memory-20181208T151741.alloc,我在哪里可以阅读它?

0 投票
1 回答
119 浏览

android - 带有可观察对象的 Android 片段。何时添加 vs 替换其他片段

另一个片段问题。

对于上下文:

  • 具有两个片段的单个活动应用程序,主页和设置。
  • 当应用程序启动时,我的活动会立即添加主页。
  • 在这个屏幕上,用户可以点击设置图标来查看设置片段。

正是在这一点上,我不确定是否应该使用#add#replace来显示我的设置片段。


让我解释一下为什么。

  1. 代替

替换片段非常酷。它对两个片段都有一个很好的进入/退出动画。并且调用 Home 中的生命周期方法 paused->destroy,允许它删除任何 observables 并释放不再需要的引用,因为视图不再显示。

但是,当我按下后退按钮以弹出设置时,主页现在必须重新创建自己。由于发生了一些事情并且列表有些复杂,因此我将单帧的帧率降至 60fps 以下(使用gpu 分析工具)。一些手机可以通过这个来供电,但像 Nexus 5 这样的手机不能,并且在点击按钮后视图实际弹出之前具有难看的过渡效果和延迟延迟(可能是 500 毫秒 - 1 秒)。

  1. 添加

添加片段也很酷。转换回来时没有帧率问题。所以它在我所有的测试设备上看起来都很好而且很流畅。

但是它实际上并没有退出视图。所以没有退出动画。释放观察者的生命周期事件也不会被调用,因此即使用户没有看到它,它仍然会将视图修改为它收到的更改。


那么哪个是适合我的情况的解决方案?对此有传统的答案吗?或者还有什么我应该做的吗?我应该重构大量代码以优化替换片段吗?或者 Home 可以坐在后台听事件?

0 投票
2 回答
389 浏览

android - 我们可以在 Android Network Profiler 面板中格式化 JSON 响应吗?

我想在 Android Network Profiler 中获取格式化的 JSON 响应,而不是复制并粘贴到其他工具来格式化 JSON 响应。

Android Network Profiler 是检查网络流量的便捷工具。但我无法立即读取响应数据,因为我们的 JSON 数据显示在一行字符串中。

有没有办法在 Android Network Profiler 面板中获取格式化的 JSON 响应?

0 投票
0 回答
1507 浏览

android - 导致应用程序崩溃的 Android Memory Profiler 潜在错误

我的 React Native 应用程序有一些本地实现,我在其中运行 OpenCV 和 Tensorflow。没有 Android Profiling,应用程序运行顺畅,不会崩溃。启用 Android Profiling 后,在调用本机函数的那一刻,应用程序会冻结并显示以下错误消息。

然后,会出现像下面这样的其他警告,如果没有探查器,这些警告就不会发生。

0 投票
0 回答
50 浏览

android - 识别内存泄漏

我已经使用 Android Studio Memory Profiler捕获了堆转储。我知道如何使用堆转储检查泄漏活动。我想检查内存泄漏 Not in Activity 只是因为我的应用程序包含较少的活动并且大多数操作不与用户交互我的示例应用程序。

Q. 1 如何检查调用者不是活动的代码中是否存在MemoryLeak。

Q2。MAT是否必须分析堆转储?

0 投票
2 回答
3511 浏览

android-profiler - Android Studio 3.3,Advanced Profiling 对所选进程不可用

我将我的 android studio 更新到 3.3 版,并遇到了 android profiler 问题“所选进程无法使用高级分析”。

我尝试了以下但没有任何效果

  1. 运行配置 -> 启用高级分析
  2. minifyEnabled 假(https://stackoverflow.com/a/39051307/1925394
  3. 不同的 compileSdkVersion 25、26、28

感谢您的时间和帮助。

0 投票
1 回答
1443 浏览

android-studio - 如何在 Flutter 项目中使用 AndroidStudio 3 中的 Android Profiler 和 Logcat

通过 Android Studio 使用 API 28 或 27 运行模拟器,Flutter配置成功启动应用程序并且没有其他问题,即所有其他功能都可以正常工作。

为什么 Android Profiler 没有检测到设备?没有描述类似问题的资源。

尝试查看Logcat时也会出现类似问题:

0 投票
1 回答
340 浏览

java - 尽管所有视图都被回收,但仍调用 Recyclerview onCreateViewHolder?

短篇小说: 我有一个(预缓存)CustomLinearLayoutManagerRecyclerView、 CustomRecyclerView.Adaptor、 CustomRecyclerView.ViewHolder设置。我只有一个 viewType 和轻量级绑定函数。它真的没什么特别的,这就是为什么我希望我不需要发布代码。我也不想与所有不相关的代码混淆。

我遇到的问题是,尽管没有回收任何视图,但仍然偶尔调用 onCreateViewHolder(在初始行膨胀之后),这让我想知道也许我有内存泄漏?你认为是这样吗?为什么?是什么决定了我的应用仍然需要创建更多视图而不是回收?

我将添加一件事,可能会以某种方式考虑在内。我的行有两种视觉状态(它们展开和折叠),看起来在不同状态下更随机地混合行会使问题恶化。

全文: 我注意到我的RecyclerView. 使用 android studio 的分析器,我注意到以下几点:

  1. 我所有的bindViewHolder方法都非常快,并且不会阻碍滚动。
  2. OnCreateViewHolder是什么导致口吃。这就解释了为什么在第一次滚动时总是有一些口吃。此外,它的通货膨胀占 CPU 时间的比例高得离谱。
  3. 使用 构建项目/行布局ConstraintLayout时,onMeasure函数性能不佳,破坏了较弱设备上的滚动性能。
  4. 使用LinearLayouts 构建项目/行布局后,性能显着提高。然而,观点的膨胀仍然需要足够长的时间来引起轰动。

有了这些信息,我尽可能简化了我的行项目的布局,确保使用LinearLayouts. 无论如何,recyclerview 的项目的呈现不应该在第一个项目出现在屏幕上后导致口吃,因为一个,行都是相同的,除了绑定到它们的数据和两个,RecyclerView应该回收行。所以onCreateViewHolder最初应该被调用很多,然后很少再次调用。预缓存呢?我发现这是滚动时请求新视图的原因之一。我设置了缓存并创建了一个自定义LinearLayoutManager,该自定义覆盖了名为的预缓存(预取?)方法getExtraLayoutSpace(RecyclerView.State state)并调整这两者,以便有足够的现有可回收视图来覆盖滚动期间的请求。我的测试证实,在初始滚动后,转换​​到滚动状态时不会请求新视图。

所有这一切,我还有两个问题。其中一个onCreateViewHolder是在使用应用程序期间经常被调用,这会导致一些小问题。我在Log.w()里面放了一个onFailedToRecycleView()视图,以查看任何视图都没有被回收,看起来视图正在被回收。所以现在我认为存在一些内存泄漏,并且内存分析器显示在调用时经常发生内存使用量的跳跃onCreateViewHolder