这个演示展示了Allocation Tracker工具在Android Studio中的基本使用方法和流程。

Allocation Tracker记录了一个app的内存分配,列出全部分配对象,用于分析他们调用堆栈。大小和分配代码周期。

它的优势:

  • 确定哪里有很多来至大致同样的回调堆栈,相似的对象类型。在非常短的时间内分配和回收。

  • 找到在你的代码中可能导致低效内存的地方。

在你使用Allocation Tracker之前,使用Memory Monitor工具分析你的代码。假设你看到在非常短的时间内有很多垃圾回收事件。使用Heap Viewver来确定候选对象类型。Allocation Tracker来确定在你的代码哪里发生。

预备条件

----------------------------------------------------------------------------------------

  • 一台打开开发人员选项的手机。

  • 应用程序代码。使用你自己的代码,或者Sunshine演示样例程序。

使用Allocation Tracker

----------------------------------------------------------------------------------------

Allocation Tracker记录了你的应用程序执行分析周期期间的每一个内存分配。你告诉Allocation Tracker開始记录和它的日志分配。知道你告诉它停止。

  1. 将你的手机连接到你的电脑。

  2. 在你的Android Studio中打开你的应用程序。构建源码,在你的设备或者模拟中执行它。

  3. 点击在你的Android Studion窗体底部的Androidbutton。

  4. 假设你使用Andorid Device Monitor。点击在Android DDMS工具栏的RECODERbutton(開始Allocation Tracking tooltip)。假设你使用Android Studion。在Memory Monitor工具栏的点击图标。

  5. 交互你的应用程序。

  6. 点击STOPbutton(同一个)(停止Allocation Tracking tooltip)。

图1.在Android DDMS中启动Allocation Tracker步骤

  1. 几秒之后。一个记录你的数据的窗格打开。注意分配日志记录在设备中,这个数据文件传输到电脑。分析这些信息。并展示。

  2. 表格中的窗格。

    • 每行代表一个内存分配事件。

    • 每列代表关于分配的信息,比如对象类型,线程和它的大小。

    • 每列能够移动,调整大小。

使用过滤器仅仅显示你的App的分配。

  1. 点击一个对象来查看它的完整堆栈。

图2.在Android DDMS中Allocation Tracker输出演示样例。

Android Developer:Allocation Tracker演示的更多相关文章

  1. Android性能测试——Allocation Tracker(Device Monitor)

    Android性能测试--Allocation Tracker(Device Monitor) Allocation Tracker 能做什么? 追踪内存分配信息,按顺序排列,这样我们就能清晰看出来某 ...

  2. 你不知道的Eclipse用法:使用Allocation tracker跟踪Android应用内存分配

    Android Tools中的DDMS带有一个很不错的跟踪内存分配的工具Allocation tracker.通过Alloction tracker,不仅知道分配了哪类对象,还可以知道在哪个线程.哪个 ...

  3. Android内存优化(二)解析Memory Monitor、Allocation Tracker和Heap Dump

    前言 要想做好内存优化工作,就要掌握两大部分的知识,一部分是知道并理解内存优化相关的原理,另一部分就是善于运用内存分析的工具.本篇就来介绍内存分析工具:Memory Monitor.Allocatio ...

  4. Android内存优化(四)解析Memory Monitor、Allocation Tracker和Heap Dump

    相关文章 Android性能优化系列 Java虚拟机系列 前言 要想做好内存优化工作,就要掌握两大部分的知识,一部分是知道并理解内存优化相关的原理,另一部分就是善于运用内存分析的工具.本篇就来介绍内存 ...

  5. Android 性能优化(23)*性能工具之「Heap Viewer, Memory Monitor, Allocation Tracker」Memory Profilers

    Memory Profilers In this document Memory Monitor Heap Viewer Allocation Tracker You should also read ...

  6. android--------性能优化之Allocation Tracker

    Allocation Tracker 能做什么? 追踪内存分配信息,按顺序排列,这样我们就能清晰看出来某一个操作的内存是如何一步一步分配出来的.比如在有内存抖动的可疑点,我们可以通过查看其内存分配轨迹 ...

  7. Android Developer:内存分析器

    Heap Viewer,Memory Monitor和Allocation Tracker是用来可视化你的app使用内存的补充工具. 使用Memory Monitor Tool来发现是否有不好的内存回 ...

  8. [转] This Android SDK requires Android Developer Toolkit version 23.0.0 or above

    问题描述: This Android SDK requires Android Developer Toolkit version 23.0.0 or above.  Current version ...

  9. !! Android developer 最新国内镜像

    Android developer 最新国内镜像: http://wear.techbrood.com, 包含Android最新文档以及Android Wear,Android TV,Android ...

随机推荐

  1. Leetcode 437.路径总和III

    路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...

  2. PHP变量的生命周期

    变量不仅有其特定的作用范围,还有其存活的周期--生命周期.变量的生命周期指的是变量可被使用的一个时间段,在这个时间段内变量是有效的,一旦超出这个时间段变量就会失效,我们就不能够再访问到该变量的值了. ...

  3. 如何杀死linux-zombie僵尸进程

    百科: ZOMBIE:僵尸状态,表示进程结束但尚未消亡的一种状态,此时进程已经结束运行并释放大部分资源,但尚未释放进程控制块. 与ZOMBIE对应的进程状态还有RUNNING(正在运行或等待运行状态) ...

  4. hive查询语法

    1.创建表: >create table value_data(citing INT,cited INT) >row format delimited >fields termina ...

  5. 【Luogu】P2146软件包管理器(树链剖分)

    题目链接 上午跟rqy学了一道超难的概率题,准备颓一会,于是水了这么一道水题. 话说这题真的是模板啊.数据范围正好,描述特别贴近(都不给你绕弯子的),连图都给你画出来,就差题目描述加一句“树链剖分模板 ...

  6. animation总结

    1. animation结束后停在最后一帧 animation-fill-mode : forwards | both; /* 或者 */ animation: anim1 1s linear for ...

  7. Json操作(汇总)

    利用:com.fasterxml.jackson 原文地址:https://blog.csdn.net/joyous/article/details/9448461 说明:Map转化为Json:创建J ...

  8. P2258 子矩阵 (搜索,动态规划)

    题目链接 Solution 搜索+DP. 刚好把搜索卡死的数据范围... 然后应该可以很容易想到枚举行的情况,然后分列去DP. 行的情况直接全排列即可,复杂度最高 \(O(C_{16}^{8})\). ...

  9. kali2 install Nessus

    注册: https://www.tenable.com/products/nessus-home 安装: 设置登录用户名,密码,输入注册码:

  10. 关于postman使用上发现的一点问题

    之前后台用的java,一直用的postman测试接口数据,之前不管是get.post.delete.put请求都是在param传递的数据,java下面是没问题可以测试的.但是今天自己写Node发现po ...