提高android应用ui运行效率
2015-07-31 16:23
501 查看
大家可以先参考一下这边文章,先发开文章里面提到的overdraw功能,这样你可以看到屏幕的overdraw情况
http://hukai.me/android-performance-render/
由于我们公司奇葩的设计(有一个接近全屏的drawerlayout!!!内容还和drawerlayout下的内容一样!!!只是排版不用!!!),我们的app一直都十分的卡!!!
打开app一看,吓尿了,几乎整个屏幕都是红的!也就是overdraw的情况十分十分严重!!
原来即使是躲在drawerlayout底下,下面的内容仍然是会被绘制的。
尤其是在android 5.0新组件的运用下(虽然我还没用到),在多个layout叠加的情况下,可以通过将下层的layout.setvisibility(View.GONE)让它们暂时消失,等再次出现的时候再让他们visible。
另外,在红色海洋中,我发现一个神奇的现象——fragment并没有死去!
我们在layout中有一个fragment,每次都是调用fragmentManager.replace更换fragment
通过别人的文章发现,这样的话只是将新的fragment覆盖在旧fragment上面,点击新fragment的空白区域时甚至可以点到旧fragment的按钮。
正确的做法应该是在layout中使用framelayout,每次通过replace(R.id.framelayout_name,fragment)更新fragment
这样就能让旧fragment彻底消失。
http://hukai.me/android-performance-render/
由于我们公司奇葩的设计(有一个接近全屏的drawerlayout!!!内容还和drawerlayout下的内容一样!!!只是排版不用!!!),我们的app一直都十分的卡!!!
打开app一看,吓尿了,几乎整个屏幕都是红的!也就是overdraw的情况十分十分严重!!
原来即使是躲在drawerlayout底下,下面的内容仍然是会被绘制的。
尤其是在android 5.0新组件的运用下(虽然我还没用到),在多个layout叠加的情况下,可以通过将下层的layout.setvisibility(View.GONE)让它们暂时消失,等再次出现的时候再让他们visible。
另外,在红色海洋中,我发现一个神奇的现象——fragment并没有死去!
我们在layout中有一个fragment,每次都是调用fragmentManager.replace更换fragment
通过别人的文章发现,这样的话只是将新的fragment覆盖在旧fragment上面,点击新fragment的空白区域时甚至可以点到旧fragment的按钮。
正确的做法应该是在layout中使用framelayout,每次通过replace(R.id.framelayout_name,fragment)更新fragment
这样就能让旧fragment彻底消失。
相关文章推荐
- Error:Cannot build Artifact :war exploded because it is included into a circular depency
- iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )
- (转)UIViewController中各方法调用顺序及功能详解
- hdu 4396 More lumber is required(最短路)
- [leetcode] Implement Stack using Queues
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- break和continue
- UI控件---CollectionView
- MenuInflater用法
- 设置UITableviewCell的separatorStyle左边顶格
- easyui combogrid 的查询
- 响应式web设计之CSS3 Media Queries
- Target runtime com.genuitec.runtime.generic.jee50 is not defined
- ue怎样取消保存生成的.bak文件
- HDOJ 题目4339 Query(线段树,单点更新)
- ubuntu-64位 error while loading shared libraries: libuuid.so.1: wrong ELF class: ELFCLASS64
- iOS开发 扩大UIButton的响应区域
- measure_circuit_width_lines_gauss.hdev检测pcb线宽 相关例程学习
- requireJs详解(二)
- POJ 3080 Blue Jeans(字符串处理)