Android系统面经_140道面试题答案解析

140道安卓系统Framework面试题答案链接:《Android系统面试题全解析》

本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,该专栏整理本人对常见安卓系统Framework开发面试题的理解;

1、 Binder

● 请介绍什么是Binder机制 ⭐⭐⭐⭐

● 请介绍Binder机制流程 ⭐⭐⭐⭐

● Binder有什么优势?(字节跳动)⭐⭐⭐⭐⭐

● Binder机制需要多少次内存拷贝 ⭐⭐⭐

● Binder是如何做到一次拷贝?(腾讯) ⭐⭐⭐

● Android有很多跨进程通信方法,为何选择Binder?⭐⭐⭐

● MMAP的原理讲解(腾讯)⭐⭐

● Binder机制是如何跨进程的(阿里)⭐⭐⭐

● 描述AIDL生成的java类细节(字节跳动)⭐⭐⭐

● 为什么Intent不能传递大数据(阿里)⭐⭐⭐

2、JNI

● 阐述你对JNI的理解⭐⭐⭐⭐⭐

● 使用JNI有什么优点⭐⭐⭐⭐⭐

● JNI的应用场景⭐⭐⭐

● 什么是JNI?具体说说如何实现Java与C++的互调⭐⭐⭐⭐⭐

● 什么是NDK?为什么要使用NDK?⭐⭐

● JNI开发的一般步骤是?⭐⭐⭐⭐

● JNI函数的注册方法都有什么?⭐⭐⭐⭐

● 谈谈你对JNI静态注册和动态注册的区别。⭐⭐

3、Android系统启动流程

  1. 你了解Android系统启动流程吗?⭐⭐⭐⭐⭐
  2. system_server 为什么要在 Zygote 中启动,而不是由 init 直接启动呢?⭐⭐⭐
  3. 能说说具体是怎么导致死锁的吗?⭐⭐⭐
  4. Zygote 为什么不采用 Binder 机制进行 IPC 通信?⭐⭐⭐⭐
  5. 请简述从点击图标到app启动的流程。⭐⭐⭐⭐⭐
  6. 说说Activity加载的流程。⭐⭐⭐⭐⭐
  7. Zygote为什么需要用到Socket通讯而不是Binder?⭐⭐⭐⭐⭐
  8. Zygote进程最原始的进程是什么进程(或者Zygote进程是怎么来的)?⭐⭐⭐

4、AMS深入浅出

  1. AMS是什么?⭐⭐⭐⭐⭐
  2. AMS在Android起到什么作用,简单的分析下Android的源码。⭐⭐⭐⭐⭐
  3. 简述ActivityManagerService是什么时候初始化的?⭐⭐⭐
  4. 简述Binder、ActivityManagerNative、ActivityManagerService三者的关系⭐⭐⭐⭐
  5. 简述AMS的注册流程⭐⭐⭐⭐
  6. 简述ActivityThread和ApplicationThread,以及关系和区别⭐⭐⭐
  7. ActivityManagerService和zygote进程通信是如何实现的⭐⭐⭐
  8. 系统是如何存AMS服务对象的,以及应用层如何拿到AMS应用的?⭐⭐
  9. AMS与servicemanage进程是什么关系,app启动流程讲一讲。⭐⭐⭐⭐⭐
  10. 简述从点击图标到app启动的流程。⭐⭐⭐⭐⭐

5、深入理解WMS

1.简述PMS是什么?有什么作用?⭐⭐⭐⭐⭐

2.分别就应用接口层、Framework层、HAL层、内核层介绍下Android电源管理系统?⭐⭐⭐

3.PMS的作用是什么?PMS跟咱们的安装速度和启动速度有关系吗?⭐⭐⭐⭐

4.PMS被谁启动的,它是一个单独进程运行吗?如果不是,又是在哪个进程呢?⭐⭐⭐

5.PMS的启动过程是怎么样的?⭐⭐⭐

6.应用要怎么样才能调用PowerManager进行系统休眠或者唤醒呢?⭐⭐⭐⭐⭐

6、WMS深入浅出

  1. WMS是什么?有什么功能?⭐⭐⭐⭐⭐
  2. WMS、AMS与Activity间的联系是什么?⭐⭐⭐
  3. Activity应用进程在什么时候会调用addView,进而由WMS来处理addWindow 呢?⭐⭐⭐

7、Sensor传感器系统架构

  1. 简述Android系统关机流程⭐⭐⭐⭐⭐
  2. 以应用调用Shutdown为例,分析下系统的关机流程?⭐⭐⭐
  3. 简单说下Android上层都有哪些触发关机的方法?⭐⭐⭐
  4. 如果你遇到一个系统异常关机的问题,请简述下你的分析思路,以及可以通过获取什么log进行分析?⭐⭐⭐⭐⭐

8、音频系统框架

  1. 简述声卡的添加流程。⭐⭐⭐
  2. 简述Android音频系统框架。⭐⭐⭐⭐
  3. 调节音量,系统流程是怎么走的?⭐⭐⭐⭐⭐
  4. 简述插入一个音频设备,系统流程是怎么走的?天翼云 ⭐⭐⭐⭐⭐
  5. 如果插入一个设备没有声音,怎么debug?天翼云 ⭐⭐⭐⭐⭐

9、Kernel dts解析(设备树)

1) 设备树是什么?它在嵌入式系统中扮演什么角色?⭐⭐⭐⭐⭐ 2) 什么是DTS和DTSI文件?它们有什么不同?⭐⭐⭐⭐ 3) 在设备树中,什么是节点?什么是属性?⭐⭐⭐ 4) 什么是设备树的兼容性字符串?它们的作用是什么?⭐⭐ 5) 在设备树中,如何使用`#include`语句引用其他DTS和DTSI文件?⭐⭐⭐⭐ 6) 什么是DTB文件?它们在嵌入式系统中扮演什么角色?⭐⭐⭐⭐⭐ 7) 请描述一个Android设备的设备树结构,并解释每个节点和属性的作用。⭐⭐⭐ 8) 在设备树中,如何描述和配置设备的中断信息?⭐⭐⭐⭐ 9) 如何使用设备树在内核中注册硬件设备驱动程序?⭐⭐⭐⭐ 10) 设备树的使用有哪些优势?如何使设备树更加灵活和易于开发?⭐⭐⭐⭐⭐

10、Recovery框架

1) Recovery框架在Android系统中扮演什么角色?(有什么作用)⭐⭐⭐⭐⭐ 2) Android系统OTA升级和Recovery有什么关联?⭐⭐⭐⭐ 3) 讲述下Recovery的启动流程?⭐⭐⭐⭐⭐ 4) Android Recovery框架在应对系统故障和异常情况方面有何优点?请简述其优点和具体应用场景。⭐⭐⭐⭐⭐ 5) Android Recovery框架中的recovery分区包含哪些内容?请说明其作用。⭐⭐

11、按键与遥控

12、HDMI CEC框架

13、网络模块

牛客高级系列专栏

安卓(安卓系统开发也要掌握)


嵌入式

全部评论
只有问题嘛?
1 回复 分享
发布于 2023-02-20 17:48 浙江
请问解析在哪?
1 回复 分享
发布于 2023-02-20 18:15 山东

相关推荐

怎么起名字:学历不足,
点赞 评论 收藏
分享
点赞 评论 收藏
分享
12-21 21:50
门头沟学院 Java
计算机大四找实习还来得及吗,学校大四才防实习,假期还安排实训,焦虑
找工作的图奇:准备明年春招吧,这个点基本找不到实习的
点赞 评论 收藏
分享
评论
10
42
分享
牛客网
牛客企业服务