第16章-性能优化.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第16章 性能优化本章简介本章介绍App开发常见的性能优化技术,主要包括通过优化布局文件实现页面风格的统一、通过检测手段和预防措施处理内存泄漏的问题、运用线程池技术对线程资源进行有效管理、通过监测当前电量与屏幕事件开启省电模式。最后结合本章所学的知识演示一个实战项目“图片缓存框架”的设计与实现。本章目录16.1 布局文件优化16.2 内存泄漏处理16.3 线程池管理16.4 省电模式16.5 实战项目:图片缓存框架16.6 小 结16.1 布局文件优化本节介绍风格统一的几种方式,包括增加公共布局减少重复布局、使用占位视图自适应调整屏幕布局、自定义窗口主题等内容。16.1.1 减少重复布局16.1.2 自适应调整布局16.1.3 自定义窗口主题16.1.1 减少重复布局App内部存在多个活动页面,为了确保所有页面的风格统一,因此必须给每个页面的布局文件都添加同样的Toolbar。这些XML文件包含一模一样的Toolbar布局,不但造成重复布局,而且不易扩展。Android支持在布局文件中通过include标签导入公共布局,如下面的代码表示引用了一个名为common_title.xml的公共布局文件: !-- 在此插入common_title.xml所定义的布局 -- include layout=@layout/common_title /利用merge标签合并布局公共布局文件拥有自己的根节点,不过外部的页面布局文件往往已经有了相同的布局节点,这时子布局的根节点就变成冗余的了。但是布局文件必须有根布局节点,不能把控件作为根节点。为了解决根布局冗余的问题,Android提供了merge标签作为公共布局文件的根节点。该标签告诉编译器:我只是一个占位的合并标签,不需要对我做布局处理。布局优化后的展示效果时事频道页面体育频道页面16.1.2 自适应调整布局在页面上根据条件展示不同的视图,这常常需要设置视图的可视属性。然而gone的视图只是看不到罢了,在界面渲染时还是会被加载。要想事先不加载视图,在条件匹配时才加载,就可以使用标签ViewStub。ViewStub在提高布局性能上有以下两个特点:(1)ViewStub在加载时只占用大约一个View的内存,不占用layout整个布局需要的内存。(2)ViewStub一旦调用inflate方法,就立即显示所包含的页面内容。如果还想再次隐藏或显示布局,就要使用setVisibility方法。屏幕方向切换时的布局调整举一个ViewStub实际运用的例子,手机在竖屏和横屏之间切换时,有时希望显示不同的布局,比如竖屏显示列表、横屏显示网格。于是在页面布局中预留两个ViewStub节点,一个给ListView占位,另一个给GridView占位。相对应的,页面代码增加对横竖屏的方向判断:(1)如果当前为竖屏,就令占位视图显示列表布局;(2)如果当前为横屏,就令占位视图显示网格布局。自适应布局的展示效果占位视图展示横屏网格占位视图展示竖屏列表16.1.3 自定义窗口主题自定义主题的配置可在res/values/styles.xml中定义,配置方式同一般视图的style风格配置。对于视窗则可通过以下途径设置主题:(1)修改AndroidManifest.xml,往application节点增加android:theme属性,表示对该App的所有页面设置指定的主题。(2)打开Activity代码,在setContentView方法之前调用方法setTheme(R.style.***)完成该页面的主题设置。(3)如果是自定义对话框,就在Dialog的构造函数中传入指定主题的资源编号。窗口主题的属性定义下面介绍窗口主题经常需要自定义的属性。android:gravity:窗口内部的对齐方式。android:background:窗口内部的背景。android:windowBackground:整个窗口的背景,包括边框与内部。android:windowFrame:窗口框架图像。android:windowNoTitle:窗口是否不要默认的标题栏。android:windowFullscreen:窗口是否全屏。android:windowIsTranslucent:窗口是否半透明。android:windowIsFloating:窗口是否悬浮。窗口主题的背景设置效果windowBackground设置为半透明红色的效果windowFrame设置为半透明红色的效果background设置为半透明红色的效果16.2 内存泄漏处理内存泄漏指的是程序运行时未能正确回收部分内存,导致这些内存既不能被自身使用,又不能被其他程序使用,从而变成垃圾内存。本节首先介绍Android开发如何检测内存泄漏

文档评论(0)

yyons2019 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档