首页 > 其他分享 >Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)

时间:2023-06-22 10:33:29浏览次数:50  
标签:面试题 WMS Framework Binder Handler Android AMS


前言

业内一直有一个说法:技术好的未必底层够硬,但底层扎实的学起来进步如飞。这也是为什么如今的大厂都非常注重对底层原理的考察:除了可以看出面试者的即战力,底层原理更能看出一个开发者的发展潜力。

大家对此应该也深有感受,在面试的过程中,底层原理是无论如何都躲不过去的一关。最典型的就是Framework,很多大厂在招聘中都对此做出了明确的要求:

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_Android

众所众知,Android的Framework层主要是由WMS、AMS还有View所构成,这三个模块穿插交互在整个Framework中。Binder和Handler更是重中之重,面试必问,目前一线企业的app都是多线程和多进程的,而Android进程间通信机制就是Binder,原生的线程间通信则是Handler。

  • Android中多进程通信的方式有哪些?
  • 进程通信你用过哪些?原理是什么?(字节跳动、小米)
  • 描述下Binder机制原理?(东方头条)
  • Binder线程池的工作过程是什么样?(东方头条)
  • Handler怎么进行线程通信,原理是什么?(东方头条)
  • Handler如果没有消息处理是阻塞的还是非阻塞的?(字节跳动、小米)
  • 说下AMS startActivity流程,WMS了解吗,聊下WMS (Vivo)
  • AMS是如何启动的?(美团)
  • Zygote、SystemServer 是干什么的,这么设计的好处知道吗?(字节)
  • dumpsys的信息在哪里打印的?(百度)
  • 横竖屏切换时Activity的生命周期?(字节)
  • Activity启动模式了解吗?栈是如何管理的呢?(腾讯)

如何学习Android Framework?

为了更好地帮助大家掌握AMS、WMS的知识,更好地理解Handler、Binde原理,特此这份腾讯技术团队出品的《Android Framework 开发揭秘》,希望可以帮助大家学习提升。

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_窗口大小_02

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

第一章 系统启动流程分析

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

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_Android_03

第二章 Binder解析

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

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_窗口大小_04

第三章 Handler解析

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

第四章 AMS 解析

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

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_framework_05

第五章 WMS解析

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

第六章PKMS Android10.0 源码解读

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

Android面试题:Handler、Binder、AMS、WMS面试必问题(带答案,万字总结,精心打磨,快收藏)_framework_06


文末

其实成为一名优秀的程序员并不难。

但是怎样才能成为一名优秀的程序员?

我认为最大的阻碍在于:广度与深度难以兼顾。

计算机专业基础课,如OS,数据库,网络,算法等,抽象且难以理解,大学时不学,以后就很难拾起来。

既强调动手,又强调抽象,二者缺一不可。但善于思考的人,往往喜欢谋定而后动;善于行动的人,往往没功夫回顾思考。

对于要先理解才动手的人,是种折磨。往往做了一两年,才突然理解某个概念。

对于初学者,难以区分学的知识,还是配置。

杂讯太多,不知道学什么。

总得来说,编程里最简单的地方往往价值不高,困难的地方这次避开了,下次还是要理解,逃也逃不掉。

以上,与诸君共勉。


标签:面试题,WMS,Framework,Binder,Handler,Android,AMS
From: https://blog.51cto.com/u_16163452/6534323

相关文章

  • 20230621下午面试题
    1.数据库了解那些?2.docker了解吗?3.今后的职业规划?4.能不能写方案?5.在项目中担当的角色?6.想考那些证书?7.籍贯?空缺期?有无女朋友?住哪里?8.有什么想问我的吗?9.最低接受的薪资是?10.最快到岗时间?   xiaozimashuke......
  • 全网最全Android Framework面试汇总(内含Binder、Hinder、 AMS、WMS等核心技术)
    在如今的招聘市场中,学习Framework已经成为了一个非常重要的竞争力。许多面试官都会问到Framework相关的问题:进程通信你用过哪些?原理是什么?ThreadLocal的原理,以及在Looper是如何应用的?Handler可能会导致内存泄露,为什么?Binder机制是如何跨进程的?…同时AndroidFramework作为......
  • 2023年Android社招面试题集锦(最近准备面试的可以看看~)
    最近有不少小伙伴咨询社招,春招的事情,小编这里收纳了一篇《如何找到一份实习工作》的内容,作者是阿木(一家知名的互联网大厂),这篇内容算是他对自己找工作经历的一个总结吧,对于社招、在校生,尤其是想找实习的小伙伴会很有帮助,同时还有最新面试题汇总。顺带给大家同步一个关键的信息,暑期......
  • 线程池之 Executors(附面试题)
    线程池的创建分为两种方式:ThreadPoolExecutor和Executors,上一节学习了ThreadPoolExecutor的使用方式,本节重点来看Executors是如何创建线程池的。Executors可以创建以下六种线程池。FixedThreadPool(n):创建一个数量固定的线程池,超出的任务会在队列中等待空闲的线程,可用于控......
  • 史上最全Hadoop面试题:尼恩大数据面试宝典专题1
    文章且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪酬猛......
  • 前端面试题(css)
    1.css选择器(1)简单选择器(元素,Id,类来选取元素,通配选择器)(2)组合选择器(根据它们之间的特定关系来选取元素)(3)伪类选择器(根据特定状态选取元素)(4)伪元素选择器(选取元素的一部分并设置其样式)(5)属性选择器(根据属性或属性值来选取元素)2.层叠顺序当为某个HTML元素指定了多个样式时,会使用哪种样......
  • 前端面试题(js)
    1.this解析器在调用函数时,每次会向函数内部传递一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,根据函数调用方式的不同,函数会指向不同的对象。(1)以函数形式调用时,this永远指向window(2)以方法的形式调用时,this指向调用方法的对象(3)当以构造函数形式调用时,this指......
  • Java面试题集(136-150)
    Java程序员面试题集(136-150)摘要:这一部分主要是数据结构和算法相关的面试题目,虽然只有15道题目,但是包含的信息量还是很大的,很多题目背后的解题思路和算法是非常值得玩味的。136、给出下面的二叉树先序、中序、后序遍历的序列?答:先序序列:ABDEGHCF;中序序列:DBGEHACF;后序序列:DGHEBFCA。补......
  • Java面试题集(131-135)
    131、请对以下JavaEE中的名词进行解释答:容器:容器为JavaEE应用程序组件提供了运行时支持。容器提供了一份从底层JavaEEAPI到应用程序组件的联合视图。JavaEE应用程序组件不能直接地与其它JavaEE应用程序组件交互。它们通过容器的协议和方法来达成它们之间以及它们与平台服......
  • Java面试题集(116-135)
    Java程序员面试题集(116-135)摘要:这一部分讲解基于Java的Web开发相关面试题,即便在Java走向没落的当下,基于Java的Web开发因为拥有非常成熟的解决方案,仍然被广泛应用。不管你的Web开发中是否使用框架,JSP和Servlet都是一个必备的基础,在面试的时候被问到的概率还是很高的。116、说出Servl......