没有合适的资源?快使用搜索试试~ 我知道了~
android framework 开发揭秘
需积分: 5 30 下载量 174 浏览量
2023-11-09
10:36:37
上传
评论 1
收藏 11.9MB PDF 举报
温馨提示
试读
411页
android framework 实现细节,常见面试问题汇总
资源推荐
资源详情
资源评论
Android Framework 开发揭秘
前言
本书通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及
主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲
解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。
其中的主要内容包括:通过启动程序了解Android框架的概要,移植Android以及如何
开发适合各种机器的应用程序,分析Android框架所需的基础知识,JNI (Java Native
Interface)与Binder基础知识,Zygote. Service Manager. Service Server等Android
核心组件,Android服务框架的结构与理解,通过经典Binder、Handler、AMS等面试题
解析加深你对Android Framework框架层的理解,为你的大厂面试保驾护航。
本书不仅可以供具备一定开发经验的Android开发人员参考阅读,也可作为Android
开发初学者的Android框架入门教材使用。
前言
............................................................................................................................................................
1
第一章 系统启动流程分析
....................................................................................................................
4
第一节 Android启动概览
................................................................................................................
4
1.1 Linux 内核
......................................................................................................................
5
1.2 init进程分析
....................................................................................................................
8
第二节 init.rc解析
.....................................................................................................................
15
2.1 Action
.............................................................................................................................
17
2.2 Service
...........................................................................................................................
17
2.3 Command
...........................................................................................................................
17
2.4 Options
...........................................................................................................................
19
2.5 service解析流程
...........................................................................................................
19
第三节 Zygote
...............................................................................................................................
23
3.1 Zygote概叙
....................................................................................................................
24
3.2 Zygote触发过程
...........................................................................................................
25
3.3 Zygote启动过程
.............................................................................................................
27
3.4 System Server 启动流程
...........................................................................................
51
3.5 什么情况下Zygote进程会重启呢?
..........................................................................
54
3.6 fork函数
........................................................................................................................
54
3.7 子进程与父进程的区别
.................................................................................................
55
3.8 写时拷贝 (copy- on-write)
..................................................................................
55
3.9 孤儿进程、僵尸进程
.....................................................................................................
55
3.10 多线程进程的Fork调用
.............................................................................................
55
第四节 面试题
...............................................................................................................................
56
4.1 你了解 Android 系统启动流程吗?
...........................................................................
56
4.2 system_server 为什么要在 Zygote 中启动,而不是由 init 直接启动呢?
.....
56
4.3 为什么要专门使用 Zygote 进程去孵化应用进程,而不是让 system_server 去孵
化呢?
.....................................................................................................................................
56
4.4 能说说具体是怎么导致死锁的吗?
.............................................................................
56
4.5 Zygote 为什么不采用 Binder 机制进行 IPC 通信?
.............................................
56
享学课堂
第二章 Binder解析
...............................................................................................................................
57
第一节 宏观认识Binder
...............................................................................................................
57
1.1 binder框架
.....................................................................................................................
57
1.2 binder涉及到的类
.........................................................................................................
58
1.3 binder驱动
.....................................................................................................................
58
第二节binder的jni方法注册
.......................................................................................................
58
2.1 zygote启动
.....................................................................................................................
58
2.2 register
android
os_Binder
.........................................................................................
60
第三节binder驱动
.........................................................................................................................
62
3.1 binder_init
...................................................................................................................
62
3.2 binder_open
...................................................................................................................
63
3.3 binder_mmap
...................................................................................................................
63
3.4 binder_ioctl
.................................................................................................................
65
第四节 数据结构
...........................................................................................................................
65
4.1 file_operations
...........................................................................................................
65
4.2 binder_proc
...................................................................................................................
66
4.3 binder_node
...................................................................................................................
66
第五节 启动service_manager
.....................................................................................................
67
5.1启动servicemanager进程
...............................................................................................
67
5.2 main
.................................................................................................................................
68
第六节获取service_manager
.......................................................................................................
71
6.1 defaultServiceManager
...............................................................................................
71
第七节 addService流程
...............................................................................................................
74
7.1 SytemServer
...................................................................................................................
75
7.2 getIServiceManager
.....................................................................................................
75
7.3 SMP.addService--1
.......................................................................................................
77
7.3 SMP.addService--2
.......................................................................................................
78
第八节 Binder面试题全解析
.......................................................................................................
86
8.1 Binder有什么优势
.........................................................................................................
86
8.2 Binder是如何做到一次拷贝的
.....................................................................................
86
8.3 MMAP的内存映射原理了解吗
.........................................................................................
87
8.4 Binder机制是如何跨进程的
.........................................................................................
88
8.5 说说四大组件的通信机制
.............................................................................................
88
8.6 为什么Intent不能传递大数据
.....................................................................................
89
第三章 Handler解析
.............................................................................................................................
90
第一节 源码分析
...........................................................................................................................
90
1.1 Handler机制的相关类
...................................................................................................
90
1.2 创建Looper
.....................................................................................................................
90
1.3 Looper.loop()
...............................................................................................................
92
1.4 创建Handler
...................................................................................................................
93
1.5 创建Message
...................................................................................................................
93
1.6 Message和Handler的绑定
.............................................................................................
94
1.7 Handler发送消息
...........................................................................................................
94
1.8 Handler处理消息
...........................................................................................................
94
1.9小结
...................................................................................................................................
94
第二节 难点问题
...........................................................................................................................
95
2.1线程同步问题
...................................................................................................................
95
2.2消息机制之同步屏障
.......................................................................................................
97
2.3小结
.................................................................................................................................
101
第三节Handler常问面试题
.........................................................................................................
101
3.1 HandlerThread是什么?为什么它会存在?
.............................................................
101
3.2简述下 Handler 机制的总体原理?
...........................................................................
103
3.3 Looper 存在哪?如何可以保证线程独有?
.............................................................
103
3.4如何理解 ThreadLocal 的作用?
...............................................................................
103
享学课堂
3.5主线程 Main Looper 和一般 Looper 的异同?
.......................................................
103
3.6 Handler 或者说 Looper 如何切换线程?
...............................................................
104
3.7 Looper 的 loop() 死循环为什么不卡死?
.............................................................
104
3.8 Looper 的等待是如何能够准确唤醒的?
.................................................................
104
3.9 Message 如何获取?为什么这么设计?
...................................................................
104
3.10 MessageQueue 如何管理 Message?
.......................................................................
104
3.11理解 Message 和 MessageQueue 的异同?
.............................................................
105
3.12 Message 的执行时刻如何管理?
.............................................................................
105
3.13 Handler、Mesage 和 Runnable 的关系如何理解?
.............................................
105
3.14 IdleHandler 空闲 Message 了解过吗?有什么用?
...........................................
105
3.15 异步 Message 或同步屏障了解过吗?怎么用?什么原理?
...............................
105
3.16 Looper 和 MessageQueue、Message 及 Handler 的关系?
...............................
106
3.17 Native 侧的 NativeMessageQueue 和 Looper 的作用是?
...............................
106
3.18 Native 侧如何使用 Looper?
.................................................................................
106
3.19 Handler 为什么可能导致内存泄露?如何避免?
.................................................
107
3.20 Handler 在系统当中的应用
.....................................................................................
107
3.21 Android 为什么不允许并发访问 UI?
...................................................................
107
第四章 AMS 解析
.................................................................................................................................
107
第一节 引言
.................................................................................................................................
107
第二节 Android架构
...................................................................................................................
108
第三节 通信方式
.........................................................................................................................
110
第四节 系统启动系列
.................................................................................................................
112
第五节 AMS
...................................................................................................................................
113
第六节 AMS 面试题解析
.............................................................................................................
121
6.1 ActivityManagerService是什么?什么时候初始化的?有什么作用?
...............
121
6.2 ActivityThread是什么?ApplicationThread是什么?他们的区别
.........................
121
6.3 Instrumentation是什么?和ActivityThread是什么关系?
.................................
121
6.4 ActivityManagerService和zygote进程通信是如何实现的。
...............................
121
6.5 ActivityRecord、TaskRecord、ActivityStack,
.................................................
122
ActivityStackSupervisor,ProcessRecord
...................................................................
122
6.6 ActivityManager、ActivityManagerService、
.....................................................
126
ActivityManagerNative、ActivityManagerProxy的关系
.............................................
126
第五章 WMS解析
...................................................................................................................................
128
第一节Activity与Window相关概念
...........................................................................................
128
1.1 Window
...........................................................................................................................
128
1.2WindowManager
...............................................................................................................
129
1.3WindowManagerService
.................................................................................................
129
1.4Token
...............................................................................................................................
129
1.5Window的type
.................................................................................................................
129
第二节 Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析132
第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析
.....................
154
第四节 Android窗口管理服务WindowManagerService对输入法窗口(Input Method
Window)的管理分析
...................................................................................................................
176
第五节 Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的
管理分析
.......................................................................................................................................
191
第六节Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
...........
217
第七节Android窗口管理服务WindowManagerService显示Activity组件的启动窗口
(Starting Window)的过程分析
.............................................................................................
233
第八节Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)
的过程分析
...................................................................................................................................
256
第九节 Android窗口管理服务WindowManagerService显示窗口动画的原理分析
...............
277
第六章PKMS Android10.0 源码解读
.................................................................................................
295
第一节 前言 PKMS 是什么东西?
.............................................................................................
295
第二节 PKMS 概述信息
...............................................................................................................
295
享学课堂
第三节 PKMS角色位置
...............................................................................................................
297
第四节 PKMS 启动过程分析
.....................................................................................................
298
第五节 APK的扫描
.....................................................................................................................
323
第六节- APK的安装
.....................................................................................................................
335
第七节 PMS之权限扫描
...............................................................................................................
358
第八节 PackageManagerService大综合笔记
...........................................................................
365
第一章 系统启动流程分析
第一节 Android启动概览
享学课堂
众所周知,Android是谷歌开发的一款基于Linux的开源操作系统,下图所示为 Android 平台的主要组件
1.1 Linux 内核
Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功
享学课堂
剩余410页未读,继续阅读
资源评论
guoyunfeng
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功