掌握-Android-系统架构,看这一篇就够了!

本文详细解析了Android系统的架构,包括Zygote进程、System Server、Media Server、App层的运作,以及Binder、Socket、Handler等通信方式。介绍了Binder作为Android主要的IPC机制,Socket在系统中的应用,以及Handler在同进程线程间通信的角色。同时,文章还提出了理解Android系统需要掌握的三大通信方式,并给出了Android系统学习的核心知识点概览。
摘要由CSDN通过智能技术生成
  • 加载虚拟机

  • 提前加载类preloadClasses

  • 提前加载资源preloadResouces

  • System Server进程,是由Zygote进程fork而来, SystemServer是Zygote孵化的第一个进程,System Server负责启动和管理整个Java framework,包含ActivityManager,WindowManager,PackageManager,PowerManager等服务。

  • Media Server进程,是由init进程fork而来,负责启动和管理整个C++framework,包含AudioFlinger,Camera Service等服务。

####2.5 App层

  • Zygote进程孵化出的第一个App进程是Launcher,这是用户看到的桌面App;

  • Zygote进程还会创建Browser,Phone,Email等App进程,每个App至少运行在一个进程上。

  • 所有的App进程都是由Zygote进程fork生成的。

####2.6 Syscall && JNI

  • Native与Kernel之间有一层系统调用(SysCall)层,见Linux系统调用(Syscall)原理;

  • Java层与Native(C/C++)层之间的纽带JNI,见Android JNI原理分析。

##通信方式

无论是Android系统,还是各种Linux衍生系统,各个组件、模块往往运行在各种不同的进程和线程内,这里就必然涉及进程/线程之间的通信。对于IPC(Inter-Process Communication, 进程间通信),Linux现有管道、消息队列、共享内存、套接字、信号量、信号这些IPC机制,Android额外还有Binder IPC机制,Android OS中的Zygote进程的IPC采用的是Socket机制,在上层system server、media server以及上层App之间更多的是采用Binder IPC方式来完成跨进程间的通信。对于Android上层架构中,很多时候是在同一个进程的线程之间需要相互通信,例如同一个进程的主线程与工作线程之间的通信,往往采用的Handler消息机制。

想深入理解Android内核层架构,必须先深入理解Linux现有的IPC机制;对于Android上层架构,则最常用的通信方式是Binder、Socket、Handler,当然也有少量其他的IPC方式,比如杀进程Process.killProcess()采用的是signal方式。下面说说Binder、Socket、Handler:

####3.1 Binder

Binder作为Android系统提供的一种IPC机制,无论从系统开发还是应用开发,都是Android系统中最重要的组成,也是最难理解的一块知识点,想了解为什么Android要采用Binder作为IPC机制? 可查看这个知乎上的回答(https://www.zhihu.com/question/39440766/answer/89210950)。深入了解Binder机制,最好的方法便是阅读源码,借用Linux鼻祖Linus Torvalds曾说过的一句话:Read The Fucking Source Code。下面简要说说Binder IPC原理。

Binder IPC原理

Binder通信采用c/s架构,从组件视角来说,包含Client、Server、ServiceManager以及binder驱动,其中ServiceManager用于管理系统中的各种服务。

####3.2 Socket

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值