随笔分类 - Android Framework
摘要:一、什么是屏幕刷新机制 屏幕的刷新包括三个步骤: CPU 计算屏幕数据 GPU 进一步处理和缓存 Display 将缓存中(buffer)的屏幕数据显示出来。 屏幕刷新机制包含以下几点要素,需要我们了解和掌握: View 发起刷新的操作时,最终是走到了 ViewRootImpl 的 schedule
阅读全文
摘要:一、Service的启动方式 Service的启动方式主要是:startService、bindService。 binderService和startService的区别: binderService不会触发应用端的onStartCommand函数。 二、startService的流程 流程分为两
阅读全文
摘要:顾名思义,UI线程就是刷新UI所在的线程。 我们知道UI是单线程刷新的,那么UI线程是哪个线程?换一个问法:UI线程==主线程吗? 这里我们提出两个方法:Activity.runOnUiThread(Runnable)、View.post(Runnable)。 我们先看一下runOnUiThread
阅读全文
摘要:一、Activity启动步骤 Activity的启动流程为:创建Activity对象 ==> 准备好Application ==> 创建ContextImpl ==> attach应用上下文 ==> 生命周期onCreate回调。 Activity的mWinodw对象就是在attach方法执行的时候
阅读全文
摘要:Binder是Android的进程间通信核心,Android的各种核心服务都是通过Binder机制进行相互通信的。熟悉Binder机制话就会知道,Binder的client部分就是通过代理模式来访问Server端的。本文我们就结合代理模式来详细讲解一下Java层Binder机制。 一、代理模式介绍
阅读全文
摘要:一、跨进程通信方式 跨进程通信主要有以下几类:管道、Socket、共享内存、信号。 1. 管道 管道的特点是半双工&单向的,管道里面的数据只能往一个方向流动。一般情况下管道是在父子进程之间使用的。 2. socket socket的特点是全双工,即可读也可写。可以用在两个无亲缘关系的进程之间,但需要
阅读全文
摘要:1. 启动方式的区别 系统服务启动:系统服务大部分跑在system server里,一般都是在system server里面启动的,在system server启动时顺便把服务都启动了如AMS,WMS,PMS都在system server里面。 private void run(){ ... sta
阅读全文
摘要:1. Zygote是什么? Zygote是Android系统中的进程,由用户空间的第一个进程Init进程启动的,是Android系统运行的第一个AndroidRuntime进程,同时也是打通Native和Java的桥梁。 2. Zygote的作用? Zygote进程的作用主要有两个: 创建Syste
阅读全文