- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第12章Android应用的性能优化
;本章简介;12.1性能优化技术简介
;(1)应用程序的容错性
容错性仍然属于编码的范畴,它直接决定了程序能否令用户满意。如果程序经常崩溃或出错,很难引起用户的兴趣。
(2)应用程序代码中方法的执行效率
应用程序代码最基本的调用单元是方法。因此,方法的执行效率也在很大程度上决定了程序整体的效率。虽然很多代码是经过优化的,但实际上却不一定得到更高的执行效率。因此,要借助各种工具对程序中的核心方法进行调优。
;(3)应用程序的系统资源消耗
尽管应用程序的执行效率很高,但是占用大量系统资源所换来的高效率在大多数情况下却是不可取的。因此,应仔细平衡应用程序的执行效率和资源消耗。
(4)优化AndroidUI界面
不合理的UI界面设计也会占用大量系统资源,并且可能会在不同配置的手机上失真显示。例如,不同屏幕分辨率的手机需要相应分辨率的图像;如果图像色彩过于绚丽,只使用相同分辨率的图像可能会造成UI界面的图像失真。
;12.2布局优化
;Android系统提供了检测UI渲染时间的工具。打开Android设置下的“开发者选项”,选择“ProfileGPURending”,并选中“Onscreenasbars”的选项,这时在屏幕上将显示一个条形图,如图12-1所示。;12.2.2避免过度绘制;12.2.3优化布局层级
;2.使用ViewStub实现View的延迟加载
;12.3内存优化;(2)栈(Stack)
栈位于RAM中,对栈中数据的访问速度仅次于寄存器。栈主要用于存放对象引用以及基本的数据类型,不能存储Java对象。
(3)堆(Heap)
堆是一种通用的内存空间,它主要用于存储由new创建的对象和数组。在堆中分配的内存,由java虚拟机的自动垃圾回收机制(GC)管理。
(4)静态存储区域(StaticField)
静态存储区域指的是在指定的内存区域存放应用程序运行期间一直使用的数据。Java在内存中专门划分了一个静态存储区域用于管理一些特殊的数据变量(例如静态的数据变量)。
;12.3.2内存优化方法
;12.4使用TraceView工具优化App性能
;2.通过AndroidDeviceMonitor生成TraceView日志
AndroidDeviceMonitor是一个独立的工具,可以对Android应用进行调试和分析。可按照下述步骤打???AndroidDeviceMonitor生成TraceView日志文件。
从菜单项选择Tools—Android—AndroidDeviceMonitor,打开AndroidDeviceMonitor工具,如图12-4所示。
;12.4.2打开TraceView日志
;12.4.3分析TraceView日志
;1.时间轴区域
时间轴区域显示了不同线程在不同时段内的执行情况。在时间轴中,每一行都代表一个独立的线程,使用鼠标滚轮可以放大时间轴。如图12-8所示,在时间轴中不同色块代表了不同的执行方法;色块的长度代表了方法的执行时间。
;2.Profile区域
Profile区域显示了所选择的色块所代表的方法在该色块所处的时间段内的性能分析。如图12-9所示,在Profile区域主要显示下述信息:
InclCPUTime:表示某方法占用CPU的时间。
ExclCPUTime:表示某方法(不包含子方法)占用CPU的时间。
InclRealTime:表示某方法的真实执行时间。
ExclRealTime:表示某方法(不包含子方法)的真实执行时间。
Calls+RecurCalls:表示对某方法调用次数和递归回调的次数。
;12.5小结;12.6习题
您可能关注的文档
- Python程序设计基础-教案.docx
- Python程序设计基础-教学日历.doc
- Python程序设计基础课后习题答案.docx
- Python程序设计基础-教学课件 第1章 Python语言概述.pptx
- Python程序设计基础-教学课件 第2章 基础语法.pptx
- Python程序设计基础-教学课件 第3章 程序控制结构.pptx
- Python程序设计基础-教学课件 第4章 组合数据类型.pptx
- Python程序设计基础-教学课件 第5章 字符串.pptx
- Python程序设计基础-教学课件 第6章 函数.pptx
- Python程序设计基础-教学课件 第7章 文件和异常处理.pptx
文档评论(0)