每日一题: 性能优化
面试建议?
运行Android系统的设备类型有170+种,要在不同的设备上保持流畅运行,这是开发者的噩梦...那面试遇到这么办呢?
在回答这个问题之前,先把这个问题的概念弄清楚.
很多人看到性能优化,会很自然的联想到oom,就这样简单的概括了这个问题,其实是不谨慎的.
通常项目比较大的APP都面临着如下性能问题,APP启动慢、界面跳转慢、事件相应慢、滑动和动画卡顿、展现内容慢等,有的公司处理的很好,有的还有很大的优化空间.
对于性能优化,怎么去做才是我们要get到的.
性能优化如何入手:
- 涉及到常用内存优化工具的使用,比如Memory Monitor、MAT、Allaction Tracing、TraceView 等,
- 也涉及到如何提高应用的启动速度以及页面的渲染速度,还有流畅度的检测.
- 学会这些,基本上可以处理一般的性能问题了.
Android性能优化---Memory Monitor检测内存泄露
Android Studio自带工具Memory Monitor 检测内存泄露
Android性能优化---MAT比Menmery Monitor更强大
Android性能优化---Android渲染机制
学习一下Android渲染机制,为什么16ms没完成绘制就会卡顿?
Android性能优化---Allaction Tracing追踪内存分配的轨迹
Allaction Tracing是追踪内存分配的工具,可以很直观的看到某个操作是如何一步步分配的
Android性能优化---TraceView 分析图怎么看
TraceView 是 Android 平台特有的数据采集和分析工具,主要用做热点分析,找出最需要优化的点
我就是靠它将我公司的项目的启动速度明显的提高了。
Android性能优化---StrickMode严苛模式检测耗时与内存问题
StrictMode意思为严格模式,是用来检测程序中违例情况的开发者工具。
使用一般是场景是检测主线程中本地磁盘和网络读写等耗时的操作。注意这个StrictMode是在Anroid2.3以后引入的。严格模式主要检测两大问题,一个是线程策略,即TreadPolicy,另一个是VM策略,即VmPolicy。
Android性能优化---App启动速度优化之耗时检测处理
介绍如何统计应用的启动时间和性能检查项,并且用TraceView逐个修复
Android性能优化---App启动速度优化之启动页设计
因为启动页一般View的数量比较少,业务逻辑比较简单,启动不太费劲,但是该怎么写启动页面让应用的启动速度更快呢?
Android性能优化---布局优化
Android系统每隔16ms就重新绘制一次Activity,如果没有完成就会有丢帧的现象。为了减轻UI绘制的负担,有必要把Layout编写的一些注意事项总结一下
Android性能优化---卡顿分析,正确评测流畅度
说到应用的流畅度,都会想到FPS,FPS评测应用流畅度不准确,系统获取FPS的原理是:手机屏幕显示的内容是通过Android系统的SurfaceFLinger类,把当前系统里所有进程需要显示的信息合成一帧,然后提交到屏幕上进行显示,FPS就是1秒内SurfaceFLinger提交到屏幕的帧数。但是用FPS来评测一个应用是否真的卡顿存在两个问题,我们可以使用Choreographer帧率检测。
提问
什么是内存泄漏?
根据自己经验举个例子说明?
他为什么会造成内存泄漏?
内存泄漏是如何检查的?
如何解决内存泄漏?