热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用SIGQUIT获取GC性能信息的步骤

使用SIGQUIT获取GC性能信息的步骤-使用SIGQUIT获取GC性能信息的步骤简要说明获取应用包名的方法通过adbshell获取应用包名以及Activity通过解

使用 SIGQUIT 获取 GC 性能信息的步骤

  • 简要说明
  • 获取应用包名的方法
    • 通过adb shell获取应用包名以及Activity
    • 通过解析apk信息获取应用包名
  • 获取该APP 的PID
  • 使用 SIGQUIT 获取 GC 性能信息

简要说明

可以使用GC 时序转储和 Systrace去衡量GC性能,在这篇博文中就先讲使用时序转储。对于时序转储的本质就将 SIGQUIT 发送给正在运行的应用,并造成一次ANR事件,此时会转储与其锁定、线程堆栈和 GC 性能相关的信息。
对于使用GC时序转储,需要做一下前期工作,比如获取应用包名并使用报名定位到应用运行的进程号。
官网上给出的步骤略为简单,以下教程详细地给出获取GC性能信息的步骤,特别注意一定要定位出输出GC转储文件的名称,不然会报出找不到文件的错误,必须在adb root权限下进行GC转储文件的获取,不然会permission deny

获取应用包名的方法

获取应用包名的方法有如下几种,其中一些方法也可获得App相应Activity的信息,这里做出了总结,任选其一即可

通过adb shell获取应用包名以及Activity

  • adb shell am monitor
    在命令行里输入如下命令,然后启动要测试的应用,此时便会输出正在运行的应用的包名
// 这里启动firfox,并且输出包名
adb shell am monitor

  • adb shell pm list package
adb shell pm list package

  • adb shell dumpsys window w | grep / | grep name=
adb shell dumpsys window w | grep \/ | grep name=

通过解析apk信息获取应用包名

  • aapt dump badging /路径/com.taobao.taobao.apk | grep package
    使用aapt解析apk并查找包名
aapt dump badging /home/Downloads/com.taobao.taobao.apk | grep launchable-activity

获取该APP 的PID
  • 在命令行中输入如下命令,即可获得该APP的PID
adb shell pidof yourapp.packagename

使用 SIGQUIT 获取 GC 性能信息
  1. 进入adb root 权限
adb root
  1. 输入以下命令以获得 GC 时序转储,注意官网教程这里写的是大写S,但是正确命令是小写s
adb shell kill -s QUIT PID
  1. 这时会在手机内核 /data/anr/ 中创建一个文件,可使用以下命令查看创建的文件名称
adb shell
cd /data/anr/
ls -a
  1. 输入以下命令pull出已在运行的应用的 GC 时序转储
adb pull /data/anr/trace_xx.txt
  1. 如果不确定是哪个文件,也可将/data/anr/全部pull出,再对照创建时间去确认(这是一个笨办法哈哈哈哈)
adb pull /data/anr/

参考链接
source.android.com/devices/tec…


推荐阅读
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 在开发app时,使用了butterknife后,在androidStudio打包apk时可能会遇到报错。为了解决这个问题,可以通过打开proguard-rules.pro文件进行代码混淆来解决。本文介绍了具体的混淆代码和方法。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
author-avatar
他乡绿树_762
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有