Android性能相关--工具篇
来源:互联网 发布:淘宝香云纱 编辑:程序博客网 时间:2024/06/06 15:45
Android System Trace
功能:主要用于发现性能瓶颈,可展示每个Frame的情况(Frame),查看有性能问题的点(Alert)
用法:Android Device Monitor -> Device -> Capture System Wide Trace ;收集一段时间内某进程的信息
Alert
Frame
Traceview
功能:卡顿检测,可展示每个方法的用时,调用次数
用法:两种打开姿势(AndroidStudio或Android Device Monitor)
- AndroidStudio
- Android Device Monitor -> Device -> Start/Stop Method Profiling
HierarchyViewer
功能:查看UI布局信息,优化布局
用法:Android Device Monitor -> Device -> Dump View HierachyViewer for UI automator
MAT
功能:内存泄露分析
用法:个人经验,内存泄露就是无用的对象无法被GC回收,很粗浅的一个判断就是,假设你怀疑一个Activity有内存泄露情况,可以在AndroidStudio中观察内存变化,然后进入Activity做操作,退出再进入再操作如此重复N次,如果内存不断地增加则很有可能发生内存泄露了。而MAT可以帮我们找出泄露的是哪个对象。MAT的用法这里引用大神的一个系列
- Android最佳性能实践(一)——合理管理内存
- Android最佳性能实践(二)——分析内存的使用情况
- Android最佳性能实践(三)——高性能编码优化
- Android最佳性能实践(四)——布局优化技巧
Lint
Android Lint可以在以下几个层面分析代码:correctness正确性,security安全性,performance性能,usability可用性,accessibility可访问性和internationalization国际化
解决的问题
- 遗漏文案翻译或者冗余文案翻译
- 布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多)
- 未使用到资源
- 不一致的数组大小
- 国际化问题(硬编码)
- 图标的问题(重复的图标,错误的大小)
- 可用性问题(如不指定的文本字段的输入型)
- manifest文件的错误
手机自带功能
- Debug GPU Overdraw:用来检测UI的重绘次数
- Profile GPU Rendering:用来检测UI绘制帧的速率和耗时
- 窗口动画缩放/过渡动画缩放/动画程序时长缩放:动效出问题的时候用得上,能帮你看到许多东西
- 严格模式:报告与线程及虚拟机相关的策略违例,监视那些本不应该在主线程中完成的工作或者其他的一些不规范和不好的代码(包括:主线程里:disk读、disk写、网络访问)
- adb shell dumpsys gfxinfo com.letv.android.supermanager 查看掉帧率
- adb shell am start -W 包名/Activity路径 查看Activity启动时间,调用后会自动启动Activity。eg:adb shell am start -W com.android.demo/.activity.DemoActivity
am、pm命令
一、am
1.am启动一个activity,可以输出activity启动时间
adb shell am start -W -n com.android.gallery3d/.MainActivity
-n使用包名加类名,还有a动作,c CATEGORY等
2.am发送一个广播,使用action
adb shell am broadcast -a magcomm.action.TOUCH_LETTER
3.am发送一个带参数的广播,使用action
adb shell am broadcast -a magcomm.action.TOUCH_LETTER –es letter “e”
4.am启动一个服务,不带参数时默认使用包名加类名启动,参数时n,a,c
adb shell am startservice com.android.music/.MediaPlaybackService
5.关闭一个activity或者服务之类,使用包名就行,只是强制退出,相当于Home按键,应用处于后台
adb shell am force-stop com.android.gallery3d
二、pm
1、可以列出手机上安装的apk与对应的软件包,由于使用命令删除apk时,需要知道包名,通过这条命令加上grep或者find就能找到需要的软件的包名
adb shell pm list packages -f
2、找出对应包的安装目录路径,两条指令结合,可以知道要拷贝给别人的软件位于手机什么地方
adb shell pm path com.android.gallery3d
2.可以列了使用的权限
adb shell pm list permission-groups
adb shell pm list permissions
cpu命令查看
命令:cat /proc/stat
其他
- Battery Historian:耗电分析工具
- Bugly:定位各种闪退的BUG http://bugly.qq.com/
- GT:各种测 http://gt.tencent.com/index.html
- BlockCanary(阿里)ANR检测
- LeakCanary 内存泄露自动探测,一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM问题
- 弱网络环境工具:Fiddler http://blog.csdn.net/kittyboy0001/article/details/38492567
- Android性能相关--工具篇
- Android性能工具相关教程
- 性能相关工具
- Android性能相关--经验篇
- android性能优化----工具篇
- percona-toolkit 性能相关工具
- Android 性能优化相关
- Android性能优化相关
- android性能优化相关
- Android-性能相关
- 改善android性能工具篇【zipalign】
- Android性能优化——工具篇
- Android性能优化——工具篇
- Android性能优化——工具篇
- Android性能优化之工具篇
- Android性能优化——工具篇
- Android性能优化——工具篇
- Android性能优化——工具篇
- 22
- pat-1086. Tree Traversals Again 树的构建
- 【机器学习】Tensorflow:概率编程初步印象
- golang mgo的mongo连接池设置:必须手动加上maxPoolSize
- 反引号与$()的区别以及eval的作用
- Android性能相关--工具篇
- Codeforces 557D
- event的使用例子
- 如何往Github上提交项目(二)—SSH方式
- bzoj 1016: [JSOI2008]最小生成树计数
- C#窗口控件大小随窗口大小而改变
- PAT-A-1017. Queueing at Bank (25)
- 整除个数
- 单例模式类型(一)