Gityuan

Keep on going never give up

[置顶]Android开篇

基于Android 6.0的源码,专注于分享Android系统原理、架构分析的原创文章,这是Android系列文章的开篇。

Android图形系统概述

基于Android 6.0源码, 简述Android图形系统 frameworks/native/services/surfaceflinger/ frameworks/native/libs/gui/ 一. 概述 Android系统中图形系统是相当复杂的,包括WindowManager,SurfaceFlinger,Open GL,GPU等模块。 其中SurfaceFli...

以Window视角来看startActivity

基于Android 6.0源码, 从Window角度来分析Activity启动过程。 一. 概述 前面的文章startActivity启动过程分析,已从AMS的角度讲述了Activity启动过程,那么本文从WMS的角度说一说这个过程。 先用上一篇文章的流程图来简单回顾一下:点击查看大图 接下来,从文章startActivity启动过程分析的小节[2.10] AS.star...

WMS—启动窗口(StartingWindow)

基于Android 6.0源码, 分析启动窗口的启动和结束过程。 一. 概述 Activity组件启动后,窗口并非马上显示,而是先显示starting window,作为Activity的预览窗口。 startActivity启动过程分析介绍了Activity 的启动过程,那么本文将从window角度再来说说这个过程。 二. 启动startingWindow AMS.sta...

WMS—启动过程

基于Android 6.0源码, 分析WMS的启动过程。 一. 概述 Surface:代表画布 WMS: 添加window的过程主要功能是添加Surface,管理所有的Surface布局,以及Z轴排序问题; SurfaceFinger: 将Surface按次序混合并显示到物理屏幕上; 1.1 WMS全貌 说明: 点击查看大图 WMS继承于IWind...

Input系统—ANR原理分析

基于Android 6.0源码, 分析Input事件发生ANR的原理 一. 概述 当input事件处理得慢就会触发ANR,那ANR内部原理是什么,哪些场景会产生ANR呢。 “工欲善其事必先利其器”,为了理解input ANR原理,前面几篇文章疏通了整个input框架的处理流程,都是为了这篇文章而做铺垫。在正式开始分析ANR触发原理以及触发场景之前,先来回顾一下input流程。 ...

Input系统—事件处理全过程

基于Android 6.0源码, 分析Input系统的进程交互过程分析InputManagerService的启动过程. 一. 概述 先简单总结和回顾以下前几篇文章的内容: Input系统—InputReader线程:通过EventHub从/dev/input节点获取事件,转换成EventEntry事件加入到InputDispatcher的mInboundQueue。 ...

Input系统—UI线程

一. 概述 前面文章都是介绍了两个线程InputReader和InputDispatcher的工作过程。在InputDispatcher的过程讲到 调用InputChanel通过socket与远程进程通信,本文便展开讲解这个socket是如何建立的。 对于InputReader和InputDispatcher都是运行在system_server进程; 用户点击的界面往往可能是某一个app...

Input系统—InputDispatcher线程

基于Android 6.0源码, 分析InputManagerService的启动过程 一. InputDispatcher起点 上篇文章输入系统之InputReader线程,介绍InputReader利用EventHub获取数据后生成EventEntry事件,加入到InputDispatcher的mInboundQueue队列,再唤醒InputDispatcher线程。本文将介...

Input系统—InputReader线程

基于Android 6.0源码, 分析InputManagerService的启动过程 一. InputReader起点 上一篇文章Input系统—启动篇,介绍IMS服务的启动过程会创建两个native线程,分别是InputReader,InputDispatcher. 接下来从InputReader线程的执行过程从threadLoop为起点开始分析。 1.1 threadLo...

Input系统—启动篇

基于Android 6.0源码, 分析InputManagerService的启动过程 frameworks/native/services/inputflinger/ - InputDispatcher.cpp - InputReader.cpp - InputManager.cpp - EventHub.cpp - InputListener.cpp fr...