这个演示展示了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. Python全栈开发第二期课表

     day01-python 全栈开发-基础篇                 01 开课介绍 01:55:13 ★  02 开课介绍02 01:28:31 ★  03 开课介绍03 00:22:55 ...

  2. 谈谈Python中对象拷贝

    你想复制一个对象?因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的. 何谓引用传递,我们来看一个C++交换两个数的函数: void swap(int &a, in ...

  3. fish shell安装和配置

    sudo apt-get install fish whereis fish chsh -s /usr/bin/fish 重启:

  4. BZOJ4817 [Sdoi2017]树点涂色 【LCT + 线段树】

    题目 Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色.Bob可能会进行这 ...

  5. 兼容ie8 rgba()写法

    background: rgba(255,255,255,.1); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#1 ...

  6. Excel VBA基础教程

    https://www.w3cschool.cn/excelvba/excelvba-basics.html Excel VBA语言基础 VBA语言的基础认识 详解VBA编程是什么 excel处理录制 ...

  7. vue 配合 element-ui使用搭建环境时候遇到的坑

    在需要使用element-ui的时候,直接引入文件,发现会报错,解析不了css文件和字体,需要在webpack里面配置上css-loader和style-loader,最好的做法是把element-u ...

  8. APUE 学习笔记(十) 高级I/O

    1. Unix IPC(InterProcess Communication) 同一主机的各个进程间的IPC:管道.FIFO.消息队列.信号量.共享存储器 不同主机上的各个进程间IPC:socket套 ...

  9. 一次向linux开源社区提交补丁的经历

    背景 在开发过程中,偶然发现了spinand驱动的一个bug,满怀欣喜地往社区提补丁.这是怎么样的一个bug呢? static int spinand_mtd_read(struct mtd_info ...

  10. 关于 ajax 动态返回数据 css 以及 js 失效问题(动态引入JS)

    ajax 毕竟是异步的 所以动态加载出来的数据 难免遇到 css 或者 js 失效的问题,所以要动态加载 css ji等文件了 1.公共方法 load //动态加载 js /css function ...