当前位置: 首页 > 科技观察

Android性能分析工具的使用

时间:2023-03-16 10:02:35 科技观察

1.AndroidStudio-MemoryMonitor的使用方法运行你的项目,找到MemoryMonitor窗口,选择Memory[transfer]memorychangewaveformgraph另外,还可以选择查看CPU和GPU和网络使用情况。Networkusagewaveformdiagram.png其中,频繁使用NetWork是应用耗电的关键。大约70%的电量用于报告数据、查看位置信息和定期检索后台广告信息。如何平衡两者的功耗非常重要。2.如何使用AndroidStudio1.5Preview新玩具——HeapSnapshot以同样的方式运行项目。执行一些操作后,单击左下角的“DumpJavaHeap”按钮。每次点击后,都会生成一个.hprof文件。点击一个.hprof文件查看在右侧的analyzer测试中,可以看到两个选项,一个是'DetectLeaekedActivites',另一个是'FindDuplicateStrings',点击右上角的绿色播放按钮,然后堆转储将被自动分析以定位泄漏的活动和重复的字符串,出现以下分析结果。该面板中的信息可以分为三种类型:appheap/imageheap/zygoteheap。它们分别代表app堆内存信息、image堆内存信息、zygote进程堆内存信息。各属性中英文对照表名称TotalCountHeapCountSizeofShallowsizeRetainedSizeMeaning内存中该类对象数堆内存中该类对象数Physicalsize该类占用内存大小objectitself释放对象后保存的内存大小名称depthShallowSizeDominatingSize是指深度对象本身的内存大小。由它控制的内存大小。3.如何使用Eclipse-AllocationTracker点击“StartTracking”,在应用程序中执行一个操作,然后点击“GetAllocations”。分配跟踪器的特点需要进行间歇操作b.可以定位到具体的代码行4.hierarchyviewer使用hierarchyviewer查看待检查页面的层次,检查最深的页数,官方建议将hierarchyviewer的布局层次控制在10层以内优化方案:1).自定义控件使用合并标签减少不必要的根节点;2).使用drawbleft而不是添加imageview;3).有时使用relativelayout需要比linearlayout更少的层来实现效果;4)。使用viewstub隐藏控件,ViewStub中的布局只会在你需要的时候渲染到主界面;...5.leakcanary(Android和Java内存泄漏检测框架)AndroidStudiohttps://github.com/square/leakcanaryEclipsehttps://github.com/SOFTPOWER1991/LeakcanarySample-Eclipse六、手机设置->开发者选项1.ShowGPUOverdrawShowGPUOverdraw蓝色、浅绿、浅红、深红代表4个不同的级别在Overdraw的情况下,我们的目标是最小化红色Overdraw并查看更多蓝色区域。优化解决方案:Overdraw有时是因为你的UI布局中有很多重叠的部分,有时是因为不必要的重叠背景。比如一个Activity有背景,那么里面的Layout有自己的背景,子View分别有自己的背景。仅仅通过去除不需要的背景图片,就可以减少大量的红色Overdraw区域,增加蓝色区域的比例。该措施可以显着提高程序性能。ProfileGPURendering-选择Onscreenasbars选项。每条小节线包含三个部分。蓝色代表测量绘制DisplayList的时间,红色代表OpenGL渲染DisplayList需要的时间,黄色代表CPU等待GPU处理的时间。中间有一条绿色横线,代表16ms。我们需要保证每一帧花费的总时间低于这条水平线,这样才能避免卡顿的问题。