> [Speed up your app](http://blog.udinic.com/2015/09/15/speed-up-your-app?from=timeline&isappinstalled=0)

# Android Studio版的特点

Allocation Tracker(AS)工具比Allocation Tracker(Eclipse)工具强大的地方是更炫酷,更清晰,但是能做的事情都是一样的。

# Allocation Tracker启动

![](https://box.kancloud.cn/2015-12-31_56849d2bf2a2f.jpg)

在内存图中点击途中标红的部分,启动追踪,再次点击就是停止追踪,随后自动生成一个alloc结尾的文件,这个文件就记录了这次追踪到的所有数据,然后会在右上角打开一个数据面板:

![](https://box.kancloud.cn/2015-12-31_56849d2c1fd9f.jpg)

面板左上角是所有历史数据文件列表,后面是详细信息,好,现在我们来看详细介绍信息面板:

![](https://box.kancloud.cn/2015-12-31_56849d2c4afef.jpg)

下面我们用字母来分段介绍

## A:查看方式选项

A标识的是一个选择框,有2个选项

![](https://box.kancloud.cn/2015-12-31_56849d2c6a943.jpg)

* Group by Method:用方法来分类我们的内存分配

* Group by Allocator:用内存分配器来分类我们的内存分配

不同的选项,在D区显示的信息会不同,默认会以Group by Method来组织,我们来看看详细信息:

![](https://box.kancloud.cn/2015-12-31_56849d2c83b2a.jpg)

从上图可以看出,首先以线程对象分类,默认以分配顺序来排序,当然你可以更改,只需在Size上点击一下就会倒序,如果以Count排序也是一样,Size就是内存大小,Count就是分配了多少次内存,点击一下线程就会查看每个线程里所有分配内存的方法,并且可以一步一步迭代到最底部:

![](https://box.kancloud.cn/2015-12-31_56849d2c9d939.jpg)

![](https://box.kancloud.cn/2015-12-31_56849d2cc4710.jpg)

当你以Group by Allocator来查看内存分配的情况时,详细信息区域就会变成如下:

![](https://box.kancloud.cn/2015-12-31_56849d2cf20b1.jpg)

默认还是以内存分配顺序来排序,但是是以每个分配者第一次分配内存的顺序:

![](https://box.kancloud.cn/2015-12-31_56849d2d167b6.jpg)

这种方式显示的好处,是我们很好的定位我们自己的代码的分析信息,比如上图中,以包名来找到我们的程序,在这次追踪中包民根目录一共有五个类作为分配器分配了78-4-1=73次内存。

## B:Jump To Source按钮

如果我们想看内存分配的实际在源码中发生的地方,可以选择需要跳转的对象,点击该按钮就能发现我们的源码,但是前提是你有源码:

![](https://box.kancloud.cn/2015-12-31_56849d2d167b6.jpg)

如果你能跳转到源码,Jump To Source按钮才是可用的,都是跳转到类。

## C:统计图标按钮

该按钮比较酷炫,如果点击该按钮,会弹出一个新窗口,里面是一个酷炫的统计图标,有柱状图和轮胎图两种图形可供选择,默认是轮胎图,其中分配比例可以选择分配次数和占用内存大小,默认是大小Size

## 轮胎图

![](https://box.kancloud.cn/2015-12-31_56849d2d4f3d6.jpg)

轮胎图是以圆心为起点,最外层是其内存实际分配的对象,每一个同心圆可能被分割成多个部分,代表了其不同的子孙,每一个同心圆代表他的一个后代,每个分割的部分代表了某一带人有多人,你双击某个同心圆中某个分割的部分,会变成以你点击的那一代为圆心再向外展开。如果想回到原始状态,双击圆心就可以了。

1.起点

![](https://box.kancloud.cn/2015-12-31_56849d2d7990f.jpg)

圆心是我们的起点处,如果你把鼠标放到我图中标注的区域,会在右边显示当前指示的是什么线程(Thread1)以及具体信息(分配了8821次,分配了564.18k的内存),但是红框标注的区域并不代表Thread1,而是第一个同心圆中占比最大的那个线程,所以我们现在把鼠标放到第一个同心圆上,可以看出来,我们划过同心圆的轨迹时可以看到右边的树枝变化了好几个值:

![](https://box.kancloud.cn/2015-12-31_56849d2da7d6c.jpg)

2.查看某一个扇面

我们刚打开是全局信息,我们如果想看其中某个线程,详细信息,可以顺着某个扇面向外围滑动,当然如果你觉得不还是不清晰,可以双击该扇面全面展现该扇面的信息:

![](https://box.kancloud.cn/2015-12-31_56849d2e2f1eb.jpg)

在某个地方双击时,新的轮胎图是以双击点为圆心,你如果想到刚才的圆,双击圆心空白处就可以:

![](https://box.kancloud.cn/2015-12-31_56849d2e8d9ad.jpg)

3.一个内存的完整路径

![](https://box.kancloud.cn/2015-12-31_56849d2ee1d7f.jpg)

![](https://box.kancloud.cn/2015-12-31_56849d2f1b0f1.jpg)

## 柱状图:

![](https://box.kancloud.cn/2015-12-31_56849d2f7b49c.jpg)

柱状图以左边为起始点,从左到右的顺序是某个的堆栈信息顺序,纵坐标上的宽度是以其Count/Size的大小决定的。柱状图的内容其实和轮胎图没什么特别的地方

1.起点

![](https://box.kancloud.cn/2015-12-31_56849d2fadbd1.jpg)

2.查看某一个分支

![](https://box.kancloud.cn/2015-12-31_56849d2fe7e19.jpg)

3.Count/Size切换

![](https://box.kancloud.cn/2015-12-31_56849d3035985.jpg)

android统计测试题,Allocation Tracker(Android Studio)相关推荐

  1. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )

    文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...

  2. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  3. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  4. 开发可统计单词个数的Android驱动程序(2)

    开发可统计单词个数的Android驱动程序(1) 五.指定与驱动相关的信息 虽然指定这些信息不是必须的,但一个完整的Linux驱动程序都会指定这些与驱动相关的信息.一般需要为Linux驱动程序指定如下 ...

  5. Android(一)——Eclipse+ADT 和 Android Studio 开发环境搭建及介绍

    文章目录 1. 前言介绍 1.1 JDK安装与配置 1.2 IDE开发APP流程 1.3 相关术语的解析 1.4 ADB相关指令 1.5 APP程序打包与安装流程 2. 开发环境搭建 2.1 Ecli ...

  6. Android入门(一) | Android Studio的配置与使用

    文章目录 安装+配置Android Studio 使用Android Studio 模拟器 更改Android SDK的路径 Hello World! 安装+配置Android Studio 从这一步 ...

  7. android搭建opencv开发环境,Android Studio搭建opencv开发环境

    文章不配图片,阅读需要有Android开发基础并熟悉Android Studio. 一.搭建基于Java开发环境 以下内容介绍如何搭建基于Java jni的opencv开发环境. 1.准备工作 从op ...

  8. android统计流量,Android 获取手机整体流量使用情况以及某个应用的流量的统计

    很多安全卫士类软件都实现了网速监测功能,也算是一个比较实用的功能.Android下,TrafficStats类实现了对流量的统计. /proc/uid_stat/uid/tcp_send        ...

  9. 用苹果电脑开发Android应用,MAC OS Android Studio环境安装

    用苹果电脑开发Android应用,需要分别安装Android Studio.JDK和Android SDK 1.Android Studio for MAC 下载安装: http://www.andr ...

  10. Android神兵利器之Image Asset Studio

    -- 简书作者 谢恩铭 转载请注明出处 Android Studio自带图标制作利器 Image Asset Studio 曾几何时, Android开发没有那么方便, 制作一个图标也许都要请美工, ...

最新文章

  1. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
  2. 互联网协议 — RTSP 实时流传输协议
  3. STM32使用非8M晶振时如何修改代码
  4. linux 列出内存/cpu使用率前10的进程
  5. 我们可以无损放大一个Transformer模型吗?
  6. vue组件库(一):前期准备工作
  7. Java乔晓松-android中调用系统拍照功能并显示拍照的图片
  8. 机器学习与数据挖掘之ROC与AUC
  9. Python生成Wifi二维码 一键联网
  10. 小学生听力测试软件,中小学英语听力软件
  11. SQL练习(less-3)字符型注入 union联合查询
  12. DENON AVR-X510BT 功放设置记录
  13. 狂野飙车显示无法连接服务器,狂野飙车(极速版)无法连接服务器是什么原因...
  14. Linux云计算【第一阶段】第十二章:网络管理、进制及SSH管理与攻防
  15. 家用空气净化器除甲醛什么品牌好 能除甲醛吗
  16. CISSP考点拾遗——SDLC(1)
  17. matlab中啥叫字符串,在matlab中( )用于括住字符串.
  18. PHP开发的仿山楂岛留言程序源码
  19. HTML5里video标签支持哪些格式的视频文件?
  20. Python图片字符化(表情包)

热门文章

  1. 《无线网络:理解和应对互联网环境下网络互连所带来的挑战》——2.2 IEEE
  2. MyRocks之备份恢复
  3. DTCMS插件的制作实例电子资源管理(二)Admin后台页面编写
  4. SCCM2012系列之十,SCCM2012软件分发
  5. 黑苹果(1)为什么是黑苹果PPT?
  6. 基本数据类型与引用数据类型
  7. phpstorm激活码生成器地址
  8. ...提升网站程序开发安全的6大诀窍...
  9. 我在这战斗的一年里(阎阳生)
  10. 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化