
《Android源码分析系列》
凶残的程序员
博观而约取,厚积而薄发
展开
-
Android 消息机制——你真的了解Handler?
前言QuestionsLooper 死循环为什么不会导致应用卡死会消耗大量资源吗主线程的消息循环机制是什么ActivityThread 的动力是什么前言Android的消息机制主要是指Handler的运行机制,对于大家来说Handler已经是轻车熟路了,可是真的掌握了Handler?本文主要通过几个问题围绕着Handler展开讲解。 看该篇文章可能需要掌握一定原创 2017-10-17 16:47:27 · 28299 阅读 · 19 评论 -
Android 深入浅出AIDL(一)
前言本文主要讲述AIDL作用以及如何快速上手AIDL项目简介A [android] I [Interface] D [Definition] L [Language],Android接口定义语言。 作用:方便系统为我们生成代码从而实现跨进程通讯,仅此而已。(玉刚老师如是说也),也就是说这个AIDL就只是一个快速跨进程通讯的工具。快速上手本篇文章意在快速实现AIDL项目,更多详细内容下篇继续阐述。原创 2017-09-23 17:38:47 · 8843 阅读 · 35 评论 -
Android Binder之应用层总结与分析
概述通过前两篇( Android 深入浅出AIDL(一) Android 深入浅出AIDL(二))文章对AIDL进行运用与分析,对于Android跨进程通讯有了不少的了解,深入分析AIDL通讯过程,我们发现跨进程的主导元素是Binder,但是这个Binder是Android中很重要又很复杂的概念,本文就不深入到底层和驱动层去研究,有兴趣的童鞋可以滑动到文章底部,有详细的Binder深入探究的文章推荐原创 2017-09-25 21:48:34 · 11691 阅读 · 13 评论 -
Android 性能优化(二) —— 启动优化实战
继上一篇的 Android 启动优化(一) 小试牛刀(优化预览窗口)之后,我们再进一步优化应用。原创 2019-03-01 10:39:33 · 1306 阅读 · 0 评论 -
Android 性能优化(一) —— 启动优化提升60%
应用启动速度视觉优化视觉优化——启动主题优化1.默认情况应用启动速度一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降,或者卸载放弃该应用程序。本文将从两个方向优化应用的启动速度 : 视觉体验优化 代码逻辑优化视觉优化谷歌开发文档应用程序启动有三种状态,每种状态都会...原创 2018-08-25 18:48:23 · 47867 阅读 · 12 评论 -
Android 屏幕绘制机制及硬件加速
前言硬件加速CPU / GPU结构对比OpenGLAndroid 的图形组件画笔画纸画板合成及显示CPU / GPU 绘制过程软件绘制硬件加速视图构建前言开发手机应用最主要的两个点是 1.处理用户屏幕触碰输入 2.界面效果展示(包含动画和各种反馈) ,但是在早期的 Android 并不是那么尽人意,给用户的感觉就是卡顿,系统处理图形能力...原创 2019-03-13 10:14:51 · 17619 阅读 · 8 评论 -
Android 屏幕刷新机制
前言View的工作流程ChoreographerFrameDisplayEventReceiverVSYNCTriple Buffer前言在上一篇 View的工作流程 的博客中,分析了ViewRootImpl类中应用窗口 measure,layout 和 draw 的过程。今天这篇文章探索从ViewRootImpl 到屏幕的刷新机制之间的渊源。Vi...原创 2018-07-09 00:16:33 · 4651 阅读 · 1 评论 -
Android View的工作流程
ViewRootImpl在整个View体系中起着中流砥柱的作用,它是控件树正常运作的动力所在,并且有如下几个重要功能点。 - 连接WindowManager和DecorView的纽带。 - 向DecorView派发输入事件 - 完成View的绘制(measure,layout,draw)。 - 负责与WMS交互通讯,调整窗口大小及布局。原创 2017-12-02 19:41:20 · 6428 阅读 · 12 评论 -
Android View的事件分发机制和滑动冲突解决
我们常说的View事件是指: 从手指亲密接触屏幕的那一刻到手指离开屏幕的这个过程,该事件序列以down事件为起点,move事件为过程,up事件为终点。一次down-move-up这一个事件过程我们称为一个事件序列。原创 2017-08-23 14:29:33 · 6969 阅读 · 0 评论 -
Android Window 机制探索
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布Window的概念setContentViewinstallDecorgenerateLayoutWindow的类型应用窗口子窗口系统窗口Window的内部机制(Activity)Window的创建过程Window的添加过程Window的tokenActivity的attach...原创 2017-11-16 21:01:01 · 14329 阅读 · 21 评论 -
Android Launcher 启动 Activity 的工作过程
前言通过上一篇文章(Binder之应用层总结与分析)可以了解到进程间通讯的一个大致情况,像今天要提到的Activity启动过程,也是以Binder为通讯方式。系统对这个工作过程做了很多封装,使得启动一个Activity变得十分简单。这看似简单的背后,实际上是Activity与ActivityManagerService之间多次通讯的结果。 阅读该篇文章建议配合源码一起食用,味道更佳。Launche原创 2017-10-03 20:46:19 · 41043 阅读 · 19 评论 -
Android 深入浅出AIDL(二)
前言继上一篇AIDL的简单介绍,相信应该对AIDL有一个大致的了解,那么这一篇我们来深入探讨一下AIDL为什么能够完成这个跨进程操作,这其中是否隐藏着一些不为人知的秘密,让我们跟着笔者的思路,慢慢拨开笼罩在AIDL上的谜团。概要 先用上图整体描述这个AIDL从客户端(Client)发起请求至服务端(Server)相应的工作流程,我们可以看出整体的核心就是Binder解剖asInterface原创 2017-09-24 09:09:32 · 6299 阅读 · 1 评论