Android 面试必备:Android Framework 高频面试题——Binder 篇

本文详细探讨了Android中的Binder机制,包括进程和线程的区别、IPC的需求与问题、Binder作为主要IPC方式的原因以及Binder的工作原理。讨论了Binder在效率、稳定性和安全性上的优势,并介绍了AIDL在Binder通信中的作用和使用步骤。通过对Binder的深入理解,有助于准备Android高级面试。
摘要由CSDN通过智能技术生成
1. Android中进程和线程的关系,区别
  • 进程是什么?
    它是系统进行资源分配和调度的一个独立单位,也就是说进程是可以独立运行的一段程序。

  • 线程又是什么?
    线程进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自
    己基本上不拥有系统资源。在运行时,只是暂用一些计数器、寄存器和栈 。

区别:

  • 进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数
    器为其执行上下文。
  • 进程间相互独立,同一进程的各线程间共享。
  • 进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互
    斥手段的辅助,以保证数据的一致性。
2. 为何需要进行IPC,多进程通信可能会出现什么问题

为了保证进程空间不被其他进程破坏或干扰,Linux中的进程是相互独立或相互隔离的。在Android系统
中一个应用默认只有一个进程,每个进程都有自己独立的资源和内存空间,其它进程不能任意访问当前
进程的内存和资源。这样导致在不同进程的四大组件没法进行通信,线程间没法做同步,静态变量和单
例也会失效。所以需要有一套IPC机制来解决进程间通信、数据传输的问题。

开启多进程虽简单,但会引发如下问题,必须引起注意:

  • 静态成员和单例模式失效
  • 线程同步机制失效
  • SharedPref
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值