自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 android性能优化(四)之启动优化

一. 前言当用户在手机桌面上点击一个从未打开过的App时(也就是冷启动),到进入第一个页面显示这段时间,默认情况下您的App会首先出现一个白色/黑色屏,过一段时间才是进入第一个Activity显示其具体布局内容。对于一个专业的App来说,这种用户体验肯定是不能接受的,不仅会收到用户吐槽,还会造成公司品牌受损。因此提升App的启动速度是增强用户体验的重要指标。...

2019-08-31 21:53:51 1753 2

原创 android性能优化(三)之Webview优化

阅读本文大概需要 4 分钟。这篇把Webview的优化单独拎出来,是因为Webview与其他普通view来说有自身独特的特点。在做一些native+H5应用开发时,Webview的性能问题一直是关注的重点。所谓Webview性能问题,就是从打开Webview页面开始到可以和用户交互,这期间花费的时间相对于原生页面来说过长,从直观上来讲,用户等待的时间变长了!而用户...

2019-08-25 20:01:30 9294 2

原创 android性能优化(二)之卡顿优化

阅读本文大概需要 5 分钟。相对于其他类型的性能指标,卡顿是能直接让用户产生视觉反馈的现象,比如App反应滞后于用户的操作,在严重的情况下会出现ANR。关乎用户体验的大事,是很容易遭到用户吐槽的。因此,开发人员平时写代码时必须要时刻提醒自己不要落入卡顿的陷阱之中。一. 卡顿原因在罗列卡顿可能会发生的几个点之前,先简单介绍一下发生卡顿的原因。在之前《...

2019-08-25 20:00:44 2958 1

原创 android性能优化(一)之UI渲染优化

阅读本文大概需要 2.6 分钟。在众多高频面试题中,Android性能优化几乎可以说是必问的考题。而此题一出,一场恶战已然拉开序幕,因为此话题牵扯面非常广,绝非三言两语就能够聊完。因此,非常有必要对性能优化做一下系统性的总结。此篇作为性能优化系列开篇,是因为UI渲染优化最为初级,且杂项很多,面试时可以作为回答的起点。对于UI渲染优化,记住一个宗旨:...

2019-08-25 20:00:02 573

原创 一切从android的handler说起(七)之内存泄露

阅读本文大概需要 7 分钟。作为一个客户端,UI无疑是非常重要的,因此主线程承载了非常多的任务,例如生命周期,View操作,包括Toast,View绘制,动画,等等,而这些的实现,都依赖于Android的消息机制模型。可见Handler在Android的地位是非常核心的,在源码中随处可见它的存在。另一方面,在开发中Handler也可以作为线程间通信的重要手段,比如在子...

2019-08-19 23:16:29 416

原创 一切从android的handler说起(六)之四大组件生命周期起源

阅读本文大概需要 4 分钟。上一篇,我们了解到Android里触摸事件是如何一步一步转入UI线程的message queue里被执行的,这种事件是由外部事件触发的。我接着对小张说:其实Android里还有一种UI queue里的事件更为大家熟知,你天天写代码都在与之打交道,你知道吗?小张有些丈二和尚摸不着头脑,想了一会儿问道:能给一些提示吗?我提示道:它...

2019-08-17 18:42:34 1250

原创 一切从android的handler说起(五)之触摸事件模型

阅读本文大概需要 5 分钟。在弄清楚了handler消息机制原理后,小张显得异常高兴,感觉这块儿终于像一碗清水似的看到底了。我无意间说了一句:别高兴得太早,你只清楚了一半!小张听了有点发懵:一半?啥意思,不都非常清晰了吗?我笑了笑,说道:现在你只知道UI线程是事件驱动模型,有事就干,没事就睡觉,那有没有想过事件都从何而来?为何我手指触摸UI上任何一个bu...

2019-08-17 18:42:21 616 1

原创 一切从android的handler说起(四)之postDelay原理

“阅读本文大概需要4分钟。”和小张聊完了handler底层原理后,我跟小张说:你现在知道Android的UI线程是通过事件来驱动的了吧,有消息来才干活,不然就睡大觉。小张点了点头,道:通过刚才的了解,我对事件驱动模型的概念理解更为深刻了。我接着说:恩,其实目前大部分的UI编程都是基于事件驱动模型实现的。对刚才的话题做了总结后,我又转换了话题问小张:你平...

2019-08-14 13:01:37 1844 2

原创 一切从android的handler说起(三)之UI线程为何不卡顿

“阅读本文大概需要4分钟。”和小张聊到兴起,我就问了android面试界一个众所周知的问题。我:之前说到每个线程的looper都在不断的从message queue里取message来处理,那android系统是如何做到“不断”二字的?小张快速回到答:这个我看过一些技术文章里剖析过源码,我记得是Looper是在loop()方法里通过for(;;)死循环里的...

2019-08-14 12:57:09 1483 2

原创 一切从android的handler说起(二)之threadLocal

“阅读本文大概需要2分钟。”看小张有些受惊,我打算换个新的角度。继续问道:刚才说到每个线程只能有一个唯一的looper,你知道android是怎么保证这一点的吗?小张眼睛躲避着我的视线,模糊的回答道:我好像记得有个threadLocal和这个有关。为了给小张一点鼓励,我说道:没错,你说对了,就是它!小张感觉打了一针强心剂。我继续问道:那t...

2019-08-14 12:51:47 480 1

原创 一切从android的handler说起(一)之message

“阅读本文大概需要3.2分钟。” 01工作十余年,作为android面试官面了都不下百场,handler一直都是我的经典面试题,因为这个问题不仅是android的核心之一,而且还能问得由浅入深,由窄到宽,非常能看出面试者的水平处于哪个层级。很多同学看到handler...

2019-08-14 12:45:42 442

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除