如何在Android开发中让你的代码更有效率
最近看了一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善Android
App的性能。在这个视频里面,演讲者以一个图片app为例讲解如何应用Android中现有的东西来改善app性能问题。
这个图片app的代码:https://...
分类:
移动开发 时间:
2015-05-05 16:36:09
阅读次数:
151
下面是内存篇章的学习笔记,部分内容与前面的性能优化典范有重合,欢迎大家一起学习交流!1)Memory, GC, and Performance众所周知,与C/C++需要通过手动编码来申请以及释放内存有所不同,Java拥有GC的机制。Android系统里面有一个Generational Heap Me...
分类:
移动开发 时间:
2015-04-29 19:13:29
阅读次数:
224
下面是渲染篇章的学习笔记,部分内容和前面的性能优化典范有重合,欢迎大家一起学习交流!1)Why Rendering Performance Matters现在有不少App为了达到很华丽的视觉效果,会需要在界面上层叠很多的视图组件,但是这会很容易引起性能问题。如何平衡Design与Performanc...
分类:
移动开发 时间:
2015-04-29 19:10:54
阅读次数:
208
本文转自:http://hukai.me/android-performance-patterns/2015新年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有...
分类:
移动开发 时间:
2015-04-28 15:56:59
阅读次数:
282
为什么需要推迟视图初始化
这里谈谈为什么要推迟视图的初始化. 假设这样一个情况, 如果手机的界面包含大量的视图组件,而且数据大多都来源于服务器. 这就意味着一进入这个界面,应用就会在onCreate()方法中去初始化为数不少的layout资源, 而初始化View是一个比较耗时耗资源的操作. 然后, 应用进行几个网络链接,去获取数据回来更新填充View中的各个组件. 这样算起来, 用户从进入某个A...
分类:
移动开发 时间:
2015-04-27 09:51:02
阅读次数:
1227
Context:
继续上述文章,我们已经知道了如何收集信息找到OverDraw。现在,我们要如何解决呢?
方法:
背景色:
1.去掉多余的背景色:
在onCreate()方法中加入:getWindow().setBackgroundDrawable(null);
(我这里北京刚开始是不透明opaque)
2.找到底层View的背景色然后去掉。
Clip剪切:
Android的...
分类:
移动开发 时间:
2015-04-22 20:43:39
阅读次数:
233
Context:
我自己写下Google关于Android性能优化的视频课程的翻译,第一节课,讲述硬件和软件的知识。我连载这翻一下吧
Lesson1:Render(渲染)
1.Android设备通常16ms 更新下Activity,具体取决于手机硬件。这意味着你要在16ms内处理你所有的绘画逻辑。如果你错过了这个16ms,页面不会绘制,这就叫做 dr...
分类:
移动开发 时间:
2015-04-22 09:37:55
阅读次数:
162
一.Android相关1. 采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。2. View中设置缓存属性....
分类:
移动开发 时间:
2015-04-19 19:18:11
阅读次数:
224
过度绘制(Overdraw)是指在一帧的时间内像素被绘制了多次;
理论上一个像素每次只绘制一次是最优的,但是由于层叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,所以对重叠不可见元素的重复绘制会产生额外的计算,需要尽量减少Overdraw的发生。...
分类:
移动开发 时间:
2015-04-13 18:55:37
阅读次数:
194
Android开发者选项中提供了Profile GPU Rendering功能,用于在屏幕上实时显示GPU渲染每一帧图像花费的时间(单位:ms)。渲染时间用柱状图表示,上面的绿线代表16ms,也就是要尽量保证所有柱状图都在这条线下方。每一条柱状图都由3部分组成,蓝色、红色和黄色,代表渲染的3个不同的阶段,通过分析这三个阶段的时间就可以找到渲染时的性能瓶颈。...
分类:
移动开发 时间:
2015-04-12 13:25:35
阅读次数:
276