android gfxinfo,Android性能优化

Android性能优化

按:

App的体积越来越大,App的功能越来越多,面临同一个问题,原有的App可能不适合现在的用户使用。基于“不要过早优化”的原则,在早期快速迭代反馈确定正确的方向之后,是时候做一些优化了。

性能优化,需要在用户的角度来思考。用户理解的“性能”是快:快速打开页面,快速找到我想要的内容,页面的切换流程,等等。

从三个维度来谈性能优化:

1,技术层面(主动)

1-1 UI的优化应该分为三个层面来谈:

一个是简洁的UI代码

一个是较少的UI层数。

一个是具体view的渲染过程速度

2,工具层面(被动)

3,产品层面(主动)

一,基本技术原理篇

1,UI线程减少耗时操作

2,View层级减少(将线性布局转换为相对布局)

3,ViewStub

4,Merge

5,Include

6,Style

二,工具检测篇

1,StrictMode

1-1安卓2.3之后出现

1-2用途

探测UI线程进行的阻塞操作(网络/数据库查询)

1-3输出

Log

1-4链接

2,Systrace

2-1安卓4.1之后

2-2用途

2-2-1分析app的性能,通过分析本应用进程和其他系统进程的执行时间。

2-2-2可以很容易分析出你的程序在UI线程的哪些函数占用了过多的时间

2-3输出

通过分析android内核信息(CPU scheduler, disk activity, and application threads),输出Html网页

2-4链接

2-5 其他参考资料

2-6 局限性

必须在linux下运行

3,Traceview

3-1用途:

分析app具体方法执行所耗费app的cpu,执行时长

3-2输出

3-2-1 timeline panel 按照方法执行的先后时间顺序排列,宽度代表耗时

3-2-2 profile panel 方法栈关系,及占用cpu,时间的具体值和比例

3-3链接

3-4其他参考

4,dumpsys gfxinfo

4-1查看掉帧的情况,一般情况下1秒钟是60帧会保证流程,即一帧的渲染时间不超过16ms

5,hierarchy viewer

从整个View的图中,会有三个点,代表onMeasure onLayout onDraw效率,这样就可以看到拖累 加载速度的view,并且知道在View的那个步骤拖累了效率。

参看:http://developer.android.com/tools/debugging/debugging-ui.html

三,交互产品篇

1,进度条的显示

2,欢迎界面

3,重构导航

3-1 从Tab到Drawser的转换

4,插件化

5,功能定制化(eg,微信选择功能)

四,参考文档

五,未完待续,暂时总结这么多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值