Android源码剖析之Framework层基础版(窗口、linux、token、Binder)

本文深入探讨Android Framework层,涉及窗口概念、Linux文件系统、启动过程、Binder通信以及Token的作用。讲解了窗口的三种类型、Linux目录结构、常用命令,以及Android中的异步信息系统和Binder在IPC中的角色。还提到了Token作为身份标识在窗口管理中的应用,并讨论了微内核和宏内核的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主 ,引用必须注明出处!

关于Framework,就是应用层底下的控制层,离应用层最近,总想找个机会,写写WindowMangerService和ActivityManagerService(注意非控件,而是指一类服务)以及其他一些东西,对底层做一个更为全面的认识。而很早以前,写过一篇文章,来简述Android系统-" Android高级之系统介绍",同样今天我们在讲Framework层时也会再对系统做一个回顾;下图是我对本节内容的一个基本介绍。

PS:W类是ViewRoot的一个内部类,ViewRoot最大作用就是把IPC调用转为本地调用。

HistoryRecord-每个Acitivty都会有一个,用来管理和记录Activity,是一个Binder对象

ViewRoot-实现View和WindowManger之间的协议,是View Hierarchy的最顶层

PhoneWindow-其中有autoManger和keyguardManager的实现对象

一、窗口

就着上图,我们会对每一条做进一步的解说(注意上图大多是包含关系,少数是关联关系,请区别对待),上图对Framework简单做了描述;同时科普一下什么叫窗口,窗口非指window类,而是指所有使用windowmanger将

其展示在用户面前的控件,如toast、activity、menu等,而这些界面通过设置window的callback来监听到wms传给view对象的信息,如手势操作。而窗口类型基本可以分为3种:

1、系统窗口,不需要父窗口-可以指定2000-2999层 

2、子窗口,依赖父窗口-1000-1999层 如Toast

3、应用窗口,对应activity-小于99层 如Activity

窗口可以说是View,而wms不直接跟view沟通,而是通过实现IWindow的ViewRoot.W类,然后再传给view。

关于Context,上下文引用,项目中使用的还比较多,是一个场景,用来配合上下文操作;一个应用中context的数量=service个数+activity个数+application个数,原因它们都继承自ContextWraper,而它继承自context。

二、linux文件系统

由于android系统基于linux࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘兆贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值