Android AMS/WMS/Binder/Hander等原理及大厂常问面试题

149 篇文章 4 订阅
84 篇文章 3 订阅

前言

现在的移动开发人才市场上,初中级开发者几乎都是人满为患,互联网公司对移动开发人员的招聘要求也越来越高,尤其是那些大厂,非常看重开发者对底层的掌握,而底层原理,就逃不过Framework的AMS和WMS部分:。

AMS

AMS(ActivityManagerService)贯穿了Android系统组件的核心服务,主要负责Android系统中四大组件的启动、切换、调度以及应用进程管理和调度工作。
image.png

当我们深刻了解Android启动流程与AMS特性之后,就可以解决项目开发中的很多问题,比如:

屏幕适配、自定义View和ViewGroup、APK加固、热修复、组件化路由、皮肤换肤、插件化、leakCanary内存问题分析、Hilt注入、Jetpack原理、Glide原理、RXJava原理、launchModel、权限验证、四大组件等相关逻辑和代码……

深刻了解之后能帮助Android开发者更加灵活的进行项目开发。

WMS

WMS为所有窗口分配Surface。客户端向WMS添加一个窗口的过程,其实就是WMS为其分配一块Suiface的过程,一块块Surface在WMS的管理下有序的排布在屏幕上。Window的本质就是Surface。

  • 管理Surface的显示顺序、尺寸、位置
  • 管理窗口动画
  • 输入系统相关:WMS是派发系统按键和触摸消息的最佳人选,当接收到一个触摸事件,它需要寻找一个最合适的窗口来处理消息,而WMS是窗口的管理者,系统中所有的窗口状态和信息都在其掌握之中,完成这一工作不在话下。

所以,如果你的定位是做界面开发,那么界面怎么来的?如何显示的?如何布局?如何渲染……要明白这些问题,WMS就是你必须掌握的内容。

如何学习 Android Framework?

为了更好地帮助大家掌握AMS、WMS的知识,更好地理解Framework的核心底层原理,里面对相关知识点有详尽的说明,希望可以帮助大家学习提升。

由于篇幅原因,以下仅已截图展示部分内容,这份纯手写笔记已经被整理成了PDF文档,完整版《Android Framework开发揭秘》PDF电子书,文末点击卡片即可免费领取!

目录

《Android Framework 开发揭秘》

第一章:系统启动流程分析

第一节、Android启动概览
第二节、init.rc解析
第三节、Zygote
第四节、面试题

image

第二章:Binder解析

第一节、宏观认识Binder
第二节、binder的jni方法注册
第三节、binder驱动
第四节、数据结构
第五节、启动service_manager
第六节、获取service_manager
第七节、addService流程
第八节、Binder面试题全解析

image

第三章:Handler解析

第一节、源码分析
第二节、难点问题
第三节、Handler常问面试题

image

第四章:AMS 解析

第一节、概述
第二节、Android架构
第三节、通信方式
第四节、系统启动系列
第五节、AMS
第六节、AMS 面试题解析

image

第五章:WMS解析

第一节、Activity与Window相关概念
第二节、Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
第三节、Android窗口管理服务WindowManagerService对窗口的组织方式分析
第四节、Android窗口管理服务WindowManagerService对输入法窗口的管理分析
第五节、Android窗口管理服务WindowManagerService对壁纸窗口的管理分析

image

第六章:PKMS Android10.0 源码解读

第一节 前言 PKMS 是什么东西?
第二节 PKMS 概述信息
第三节 PKMS角色位置
第四节 PKMS 启动过程分析
第五节 APK的扫描
第七节 PMS之权限扫描
第八节 PackageManagerService大综合笔记

image

寄语

经验比任何东西都宝贵。不是每个人都有机会去尝试,但如果有时间,你可以试着去做一些大项目。你甚至不需要去完成它们。仅仅是尝试写一个编译器之类的东西,这就能在开始几周教你很多东西。

说实话,我很讨厌那种我不知道如何解决复杂问题的感觉。这让人很痛苦。在接近解决方案前,我必须做大量的研究和学习。有过这样的痛苦经历后,我总是可以得到提升,成为更优秀的程序员。

从学习一门新语言开始。这是帮你摆脱当前习惯和从新角度看问题的最有效方法。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值