Android Studio 3,移动开发入门书籍 您所在的位置:网站首页 android基础教程第三版电子版 Android Studio 3,移动开发入门书籍

Android Studio 3,移动开发入门书籍

2024-07-15 01:21| 来源: 网络整理| 查看: 265

Android 提供一个托管内存环境—当它确定您的应用不再使用某些对象时,垃圾回收器会将未使用的内存释放回堆中。 虽然 Android 查找未使用内存的方式在不断改进,但对于所有 Android 版本,系统都必须在某个时间点短暂地暂停您的代码。 大多数情况下,这些暂停难以察觉。 不过,如果您的应用分配内存的速度比系统回收内存的速度快,则当收集器释放足够的内存以满足您的分配需要时,您的应用可能会延迟。 此延迟可能会导致您的应用跳帧,并使系统明显变慢。

尽管您的应用不会表现出变慢,但如果存在内存泄漏,则即使应用在后台运行也会保留该内存。 此行为会强制执行不必要的垃圾回收 Event,因而拖慢系统的内存性能。 最后,系统被迫终止您的应用进程以回收内存。 然后,当用户返回您的应用时,它必须完全重启。

为帮助防止这些问题,您应使用 Memory Profiler 执行以下操作:

在时间线中查找可能会导致性能问题的不理想的内存分配模式。 转储 Java 堆以查看在任何给定时间哪些对象耗尽了使用内存。长时间进行多个堆转储可帮助识别内存泄漏。 记录正常用户交互和极端用户交互期间的内存分配以准确识别您的代码在何处短时间分配了过多对象,或分配了泄漏的对象。

如需了解可减少应用内存使用的编程做法,请阅读管理您的应用内存。

Memory Profiler 概览

当您首次打开 Memory Profiler 时,您将看到一条表示应用内存使用量的详细时间线,并可访问用于强制执行垃圾回收、捕捉堆转储和记录内存分配的各种工具。Memory Profiler 的默认视图如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TbXmOpCK-1636431872330)(https://user-gold-cdn.xitu.io/2018/8/7/1651358b73ca33ff?imageView2/0/w/1280/h/960/ignore-error/1)]

如图所示,Memory Profiler 的默认视图包括以下各项:

用于强制执行垃圾回收 Event 的按钮。 用于捕获堆转储的按钮。 用于记录内存分配情况的按钮。 此按钮仅在连接至运行 Android 7.1 或更低版本的设备时才会显示。 用于放大/缩小时间线的按钮。 用于跳转至实时内存数据的按钮。 Event 时间线,其显示活动状态、用户输入 Event 和屏幕旋转 Event。 内存使用量时间线,其包含以下内容: 一个显示每个内存类别使用多少内存的堆叠图表,如左侧的 y 轴以及顶部的彩色键所示。 虚线表示分配的对象数,如右侧的 y 轴所示。 用于表示每个垃圾回收 Event 的图标。

不过,如果您使用的是运行 Android 7.1 或更低版本的设备,则默认情况下,并不是所有分析数据均可见。 如果您看到一条消息,其显示“Advanced profiling is unavailable for the selected process”,则需要启用高级分析以查看下列内容:

Event 时间线 分配的对象数 垃圾回收 Event

在 Android 8.0 及更高版本上,始终为可调试应用启用高级分析。

如何计算内存

您在 Memory Profiler 顶部看到的数字取决于您的应用根据 Android 系统机制所提交的所有私有内存页面数。 此计数不包含与系统或其他应用共享的页面。 Memory Profiler 顶部的内存计数图例,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCVDjQ58-1636431872382)(https://user-gold-cdn.xitu.io/2018/8/7/16513597eb498e14?imageView2/0/w/1280/h/960/ignore-error/1)]

内存计数中的类别如下所示:

Java: 从 Java 或 Kotlin 代码分配的对象内存。 Native: 从 C 或 C++ 代码分配的对象内存。

即使您的应用中不使用 C++,您也可能会看到此处使用的一些原生内存,因为 Android 框架使用原生内存代表您处理各种任务,如处理图像资源和其他图形时,即使您编写的代码采用



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有