You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Layout Inspector是Android studio自带的视图层次结构分析工具(Android Studio 2.2及其之后版本)。Android Studio中的Layout Inspector允许您在运行时从Android Studio IDE中检查应用程序的视图层次结构。当您的布局在运行时构建而不是完全在XML布局中定义时,这尤其有用。
Android Performance Optimization Tool
[TOC]
Android 性能优化工具的汇总
StrictMode
Android 2.3 引入的工具,可以帮助开发者发现代码中的不规范问题。
使用严格模式,系统检测出主线程违例的情况会做出相应的反应,如日志打印,弹出对话框亦或者崩溃等。换言之,严格模式会用不同的策略对应用的违例细节做监控,通过一定的方式暴露给开发者方便优化与改善。
StrictMode通过策略方式来让你自定义需要检查哪些方面的问题,主要有两种策略:
Systrace
Systrace是分析Android性能问题的神器,Google IO 2017上更是对其各种强推. 是分析卡顿掉帧问题核心工具,只要能提供卡顿现场,systrace就能很好定位问题.
原理
在系统的一些关键链路(比如System Service,虚拟机,Binder驱动)插入一些信息(我这里称之为Label),通过Label的开始和结束来确定某个核心过程的执行时间,然后把这些Label信息收集起来得到系统关键路径的运行时间信息,进而得到整个系统的运行性能信息。
TraceView
TraceView 是 Android SDK 中内置的一个工具,它可以加载 trace 文件,用图形的形式展示代码的执行时间、次数及调用栈,主要便于我们分析及优化方法的执行.
生成和分析traceView文件
使用代码
当你调用开始代码的时候,系统会生产 trace 文件,并且产生追踪数据,当你调用结束代码时,会将追踪数据写入到 trace 文件中: /sdcard/Android/data/包名/files/dmtrace.trace 文件.
Android Studio 中 monitor 点击闹钟按钮
Layout Inspector
Layout Inspector是Android studio自带的视图层次结构分析工具(Android Studio 2.2及其之后版本)。Android Studio中的Layout Inspector允许您在运行时从Android Studio IDE中检查应用程序的视图层次结构。当您的布局在运行时构建而不是完全在XML布局中定义时,这尤其有用。
调试GPU过度绘制 & GPU呈现模式分析
调试GPU过度绘制和GPU呈现模式分析是Android手机自带的分析工具。能比较方便的帮助开发者检验是否存在overdraw和卡顿的问题,但是不能帮忙定位问题。
位置:开发者选项
MAT
MAT是Memory Analyzer tool的缩写,是一种快速,功能丰富的Java堆分析工具,能帮助你查找内存泄漏和减少内存消耗。很多情况下,我们需要处理测试提供的hprof文件,分析内存相关问题,那么MAT也绝对是不二之选。 Eclipse可以下载插件结合使用,也可以作为一个独立分析工具使用.
LeakCanary
首先尝试着从ReferenceQueue队列中获取待分析对象(软引用和弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用或弱引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用或弱引用加入到与之关联的引用队列中),如果不为空,那么说明正在被系统回收,如果直接就返回DONE,说明已经被系统回收了,如果没有被系统回收,可能存在内存泄漏,手动触发系统GC,然后再尝试移除待分析对象,如果还存在,说明存在内存泄漏。
CPU Activity
CPU Profiler 可帮助您实时检查应用的 CPU 使用率和线程 Activity,并记录函数跟踪,以便您可以优化和调试您的应用代码.
Memory Profiler
Network Profiler
The text was updated successfully, but these errors were encountered: