2021年3月25日

Binder服务端执行服务代码一定在Binder线程吗?

摘要: 前言 在我们的印象中,服务端Binder收到请求后调用onTransact处理消息,而运行的线程处于Binder管理的线程池汇中(Binder线程的创建和销毁是在用户空间,但是管理是由Binder驱动代为管理的)。这样说在大部分情况下正确,但也不是所以的情况均是如此。比如一种“远程回调”的情况,客户 阅读全文

posted @ 2021-03-25 14:23 Sultans 阅读(1320) 评论(0) 推荐(0)

Activity类组成分析(二)mToken

摘要: 前言 继上一篇讲了Instrumentation,本文继续探究Activity的成员之mToken。 private IBinder mToken; 搜索一下mToken的使用,可以看到基本都是用来做进程间通信时传递的参数的 Line 8012: WindowManagerGlobal.getIns 阅读全文

posted @ 2021-03-25 14:21 Sultans 阅读(657) 评论(0) 推荐(0)

StartActivity之根Activity的启动过程

摘要: 前言 之前在另一篇文章中简述了应用进程的创建过程,略去了Activity的创建,本篇以从Launcher界面点击应用图标启动一个app的过程来讲述根Activity的启动过程。根Activity指一个应用启动的第一个Activity,启动根Activity的时候也需要启动应用进程。大致流程如下: L 阅读全文

posted @ 2021-03-25 14:18 Sultans 阅读(622) 评论(0) 推荐(0)

Activity类组成分析(一)Instrumentation

摘要: 前言 要了解清楚StartActivity的过程,Activity对象实例的构造过程是重要组成部分;而要弄清楚Activity实例的构造,熟知其重要成员以及设计逻辑是前提,本系列文章主要分析解构Activity类的重要组成成员,以及各成员在Activity的生命周期中扮演什么角色。 解剖 继承关系 阅读全文

posted @ 2021-03-25 14:04 Sultans 阅读(706) 评论(0) 推荐(0)

2021年3月17日

Android应用程序的进程创建过程

摘要: 前言 我们知道当startActivity的时候,除了创建Activity相关实体,系统会根据需要是否创建进程,此进程就是指的Linux层面的进程实体;后面会说到,其实创建的过程是fork,意为从父进程“copy”出一个新的进程。此过程必定经历启动者、ams、zygote等相互的进程间通信,本文主要 阅读全文

posted @ 2021-03-17 16:31 Sultans 阅读(932) 评论(0) 推荐(0)

2021年3月16日

Android中的TaskStack及启动模式

摘要: 前言 本文主要涉及android系统对于activity的组织管理。activity是死的,只有在系统的调度下,才在手机上呈现各种各样的界面,而有那么多的activity,系统是以什么样的规则去管理调度则是一个值得深入探究的问题。 首先介绍几个概念: 什么是Task? task翻译过来就是任务,好比 阅读全文

posted @ 2021-03-16 17:42 Sultans 阅读(787) 评论(0) 推荐(0)

导航