- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 Android9.0 Activity启动流程分析(三)
文章目录1、Android屏幕层级1.1、Window和PhoneWindow的概念1.2、View和ViewRootImpl的概念2、ClientLiftCycleManager3、handleLaunchActivity3.1、CreatActivity3.2、setContentView4、handleResumeActivity 本篇内容主要讲Window的描绘流程,在讲代码之前我们先了解一些基本概念。1、Android屏幕层级PhoneWindow窗口的具体实现,譬
2018-12-08 14:42:29 3256 1
原创 Android9.0 Activity启动流程分析(二)
文章目录1、ActivityThread的main函数2. AMS的attachApplication函数2.1 Part-I2.2 Part-II2.2.1 ApplicationThread的bindApplication函数2.3 Part-III 在Android9.0 Activity启动流程分析(一)中,我们最终分析到AMS通过zygote启动Activity对应的进程,接下来继续...
2018-12-08 14:39:08 2174 1
原创 Android9.0 Activity启动流程分析(一)
一、am命令我们将利用am命令启动一个Activity,来分析Activity的启动流程。am start -W -n com.android.settings/com.android.settings.Settings-W:表示等待目标activity启动的返回结果-n :后接component name用于指定启动的Activity在shell中输入如上命令之后会得到如下返回结果...
2018-12-05 15:41:09 6535 3
原创 Android跨进程通信Binder原理分析(二)
文章目录1 Binder源代码分析1.1 Service的注册流程1.2 Service的获取流程1.3 Service的使用流程1 Binder源代码分析1.1 Service的注册流程 Android 系统中将大量的核心服务以 Service 的形式来对外提供,Service 只有注册到 ServiceManager 后,Client 端才能通过 ServiceManager 获取...
2018-10-19 15:48:48 361
原创 Android跨进程通信Binder原理分析(一)
文章目录1. Linux进程基础1.1 进程隔离1.2 用户空间/内核空间1.3 系统调用/内核态/用户态1.4 内核模块/驱动1.5 图解2. Binder的Client/Server通信模型3. 为什么要使用Binder3.1 安全方面3.2 性能方面(一次数据拷贝)1. Linux进程基础 大家都知道Android是基于Linux内核的操作系统,在学习Binder通信之前需要了解一些L...
2018-10-19 15:31:40 564
原创 Android消息机制Handler原理分析
文章目录App中Handler的使用App中Handler的使用我们都知道,AndroidUI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象...
2018-10-11 17:05:11 474
原创 JAVA多线程安全的三大特性 + synchronized和volatile
线程安全的三大特性 在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1. 原子性 原子性是指一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 先来看一个例子:使用程序实现一个计数器,期望得到的结果是10000,代码如下:import java.util.concurrent.Executo...
2018-10-10 17:11:58 3212 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人