Android性能优化
Looper景
只有能在今天的风雨中翩翩起舞,才能期待明天的幸福生活
展开
-
Android性能优化第(八)篇---App启动速度优化上
应用的启动速度缓慢这是很多开发者都遇到的一个问题,比如启动缓慢导致的黑屏,白屏问题,大部分的答案都是做一个透明的主题,或者是做一个Splash界面,但是这并没有从根本上解决这个问题。那么如何从根本上解决这个问题或者做到一定程度的缓解?一、应用的启动方式1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会首先会创建一个新的进程分配给该应用,这种启动方式就是冷启动。2、热启动:当启动应用时,后台已原创 2016-12-21 11:16:50 · 7211 阅读 · 1 评论 -
Android性能优化第(十 一)篇---卡顿分析,正确评测流畅度
一、FPS评测应用流畅度不准确说到应用的流畅度,都会想到FPS,系统获取FPS的原理是:手机屏幕显示的内容是通过Android系统的SurfaceFLinger类,把当前系统里所有进程需要显示的信息合成一帧,然后提交到屏幕上进行显示,FPS就是1秒内SurfaceFLinger提交到屏幕的帧数。用FPS来评测一个应用是否真的卡顿存在两个问题。 - 有的时候FPS很低,APP看起来却很流畅;原创 2017-02-07 22:12:36 · 8550 阅读 · 0 评论 -
Android性能优化第(七)篇---StrickMode严苛模式检测耗时与内存问题
StrictMode意思为严格模式,是用来检测程序中违例情况的开发者工具。使用一般是场景是检测主线程中本地磁盘和网络读写等耗时的操作。注意这个StrictMode是在Anroid2.3以后引入的。严格模式主要检测两大问题,一个是线程策略,即TreadPolicy,另一个是VM策略,即VmPolicy。线程策略(ThreadPolicy)检测的内容有1、自定义的耗时调用 使用detectCustom原创 2016-12-20 10:30:29 · 2850 阅读 · 0 评论 -
Android性能优化第(十)篇---布局优化
之前在Android性能优化第(四)篇—Android渲染机制说了一下UI的渲染,我们知道Android系统每隔16ms就重新绘制一次Activity,如果没有完成就会有丢帧的现象。为了减轻UI绘制的负担,有必要把Layout编写的一些注意事项总结一下。首先说一下< include/>,< merge/>,ViewStub,如果对这部分清楚的朋友可以跳过。1、< include/>重用比如我们要写一原创 2016-12-24 18:43:56 · 1051 阅读 · 0 评论 -
Android性能优化第(九)篇---App启动速度优化之启动页设计
在上篇文章Android性能优化第(八)篇—App启动速度优化之耗时检测处理说了应用启动的拦路虎在哪里,最后给出了优化思路,如果经过第一轮的优化之后,还是不满意的话,一般我们是做个启动页,因为启动页一般View的数量比较少,业务逻辑比较简单,启动就不太费劲。一、设计思路常规启动页设计思路通常点击桌面就会执行,Application中的逻辑,这部分的逻辑优化技巧在上篇介绍过,然后会跳入启动页Spl原创 2016-12-21 20:16:16 · 1125 阅读 · 0 评论 -
Android性能优化第(六)篇---TraceView 分析图怎么看
Android性能优化系列好久没有更新了,一直在写Android源码解析的部分,附上前面性能优化文章的链接。Android性能优化第(一)篇—基本概念 Android性能优化第(二)篇—Memory Monitor检测内存泄露 Android性能优化第(三)篇—MAT比Menmery Monitor更强大 Android性能优化第(四)篇—Allaction Tracing追踪内存分配的轨迹原创 2016-12-15 19:07:16 · 1365 阅读 · 0 评论 -
Android性能优化第(五)篇---Android UI渲染机制
优化性能一般从渲染,运算与内存,电量三个方面进行,今天开始说聊一聊Android的渲染机制,我们要知道Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,即每一帧只能停留16ms,渲染机制说完之后,然后在说如何去优化UI。1、为什么是16ms16ms意味着1000/60hz,相当于60fps。这是因为人眼与大脑之间的协作无法感原创 2016-12-05 10:18:28 · 2693 阅读 · 0 评论 -
Android性能优化第(四)篇---Allaction Tracing追踪内存分配的轨迹
Allaction Tracing是追踪内存分配的工具,可以很直观的看到某个操作是如何一步步分配的。在Android性能优化第2篇—Memory Monitor检测内存泄露最后一点有简要提到过,现在具体研究一下,废话不多说,贴一下代码,我对这段代码进行内存分配追踪。public class LoginActivity extends AppCompatActivity { @Override原创 2016-12-05 10:17:18 · 1693 阅读 · 0 评论 -
Android性能优化第(三)篇---MAT比Menmery Monitor更强大
在Android性能优化第1篇—基本概念中讲了JAVA的四大引用,讲了一下GCRoot,第二篇Memory Monitor检测内存泄露仅仅说了Menmery Monitor的使用,这篇博客谈一下MAT来寻找内存泄露,相对来说,Memory Monitor没有MAT强大,但是在开始介绍MAT之前,上两篇没有说清楚的问题先说一下。 - GC回收对可回收对象的判定 什么样的对象是可以被回收的? 当然原创 2016-12-05 10:16:13 · 1610 阅读 · 0 评论 -
Android性能优化第(二)篇---Memory Monitor检测内存泄露
上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露的问题,现在通过Android Studio自带工具Memory Monitor 检测出来。性能优化的重要性不需要在强调,但是要强调一下,我并不是一个老司机,嘿嘿!没用过这个工具的,请睁大眼睛。如果你用过,那么就不用在看这篇博客了。先看一段会发生内存泄露的代码public class Us原创 2016-12-05 10:14:34 · 12506 阅读 · 2 评论 -
Android性能优化的方方面面
通常项目比较大的APP都面临着如下性能问题,APP启动慢、界面跳转慢、事件相应慢、滑动和动画卡顿、展现内容慢等,有的公司处理的很好,有的还有很大的优化空间,对于性能优化,怎么去做,我总结了一下性能优化如何入手,Android性能优化这个系列目前已经完成11篇,涉及到常用内存优化工具的使用,比如Memory Monitor、MAT、Allaction Tracing、TraceView 等,也涉及到如原创 2017-02-12 21:44:40 · 834 阅读 · 0 评论