Framework 底层学习:一个浅显易懂的WMS介绍,2024年最新教资面试心得体会

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

==================================================================================

每个App的Activity对应一个AppWindowToken。其中的appToken为IApplicationToken类型,连接着对应的AMS中的ActivityRecord::Token对象,有了它就可以顺着AppWindowToken找到AMS中相应的ActivityRecord。其中allAppWindows是一个无序的列表,包含该Activity中所有的窗口。用dumpsys window display可以查看z-ordered的AppWindowToken列表:

AMS主要类关系图


WMS主要类关系图


AMS、WMS数据结构关系


TaskStack


AppWindowToken保存了属于它的WindowState的有序列表,而它本身也作为一个列表被管理在TaskStack中的mTasks成员中。

TaskStack中有个重要的变量mBounds,在相同Task里的AppWindowToken对应的Activity的大小是相同的,所以mBounds代表的就是Activity对应的大小。

DisplayContent:

==================================================================================

表示一个显示设备上的内容,这个显示设备可以是外接显示屏,也可以是虚拟显示屏。其中 mWindows是一个WindowState的有序(Z-ordered,底部最先)列表。mStackBoxes包含了若干个StackBox,其中 一个为HomeStack,另一个是App的StackBox。所有的StackBox被组织成二叉树,StackBox是其中的节点,其中有三个重要成 员变量,mFirst和mSecond指向左和右子结点(也是StackBox),StackBox的成员mStack才是我们真正关心的东西 -TaskStack。可以看到,为了要把TaskStack存成树的结构,需要一个容器,这个容器就是StackBox。

ActivityRecord:

==================================================================================

描述单个Activity,Activity堆栈中的基本单元。

TaskRecord:

==============================================================================

TaskRecord中的mActivities是ActivityRecord的列表,它们是按照历史顺序排序的。

ActivityStack:

=================================================================================

Activity堆栈,其中的ActivityRecord是通过TaskRecord这一层间接地被管理着。

Framework 层系统学习

==================================================================================

这里想和大家分享的是一个阿里的朋友分享给我的一份阿里内部的 Android Framework 层学习手册。这是他们那里的一个P7大佬每天熬夜到凌晨,肝了半个月才整理成的。

这位大佬把Android Framework 内核解析精编成了452页的PDF!现在这份资料开放下载了!

有需要的朋友可以点击【这里】进入我们两千人的技术交流圈的共享文件夹自取。

Framework 手册整理详情

===================================================================================

第一章 深入解析Binder


  • 第一节 Binder系列—开篇

image

  • 第二节 Binder Driver初探

Binder 驱动概述

Binder 核心方法

……

image

  • 第三节 Binder Driver再探

Binder 通信简述

Binder 通信协议

场景总结

Binder 内存机制

……

image

  • 第四节 Binder启动ServiceManager

启动过程

核心工作

……

image

  • 第五节 获取ServiceManager

获取 ProcessState 对象

获取 BpBinder 对象

获取 BpServiceManager

……

image

  • 第六节 注册服务(addService)

ProcessState

服务注册

Binder Driver

ServiceManager

……

image

  • 第七节 获取服务(getService)

image

  • 第八节 framework层分析

  • 第九节 如何使用Binder

image

  • 第十节 如何使用AIDL

  • 第十一节 Binder总结

image

  • 第十二节 Binder面试题全解析

第二章 深入解析Handler消息机制


  • 第一节 宏观理论分析与Message源码分析

image

  • 第二节 MessageQueue的源码分析

  • 第三节 Looper的源码分析

  • 第四节 handler的源码分析

  • 第五节 Handler机制实现原理总结

  • 第六节 Handler面试题全解析

第三章 Dalvik VM进程系统


  • 第一节 Android系统启动-综述

image

  • 第二节 Init篇

  • 第三节 zygote篇

  • 第四节 SystemServer上篇

  • 第五节 SystemServer下篇

第四章 深入解析WMS


image

第五章 PackageMS启动


image

由于篇幅原因,这里就不一一进行展示,这份由阿里P7大佬整理的 Android Framework 内部学习手册已经被整理成了PDF文档。

有需要的朋友可以点击【这里】进入我们两千人的技术交流圈的共享文件夹自取。

最后

=====================================================================

大家可以关注我的B站,定期分享移动开发技术学习视频和其他学习资源!

image

学习推荐


视频系列:

技术文系列:

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

底该怎样回答]( )

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-CveiNJl7-1713473005018)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值