安卓题目-线程、进程、通信

线程、进程、通信

请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系。

AIDL 的全称是什么?如何工作?能处理哪些类型的数据?

AIDL 是一种接口定义语言,用于约束两个进程间的通信规则,供编译器生成代码,实现Android 设备上的进程间通信。
进程之间的通信信息首先会被转换成 AIDL 协议消息,然后发送给对方,对方受到 AIDL 协议消息后再转换成相应的对象。
AIDL 支持的类型包括 Java 基础类型和 String,List,Map,CharSequence,如果使用自定义类型,必须实现 Parcelable 接口。

对多线程的运用和理解,及多线程之间 handle 的传值。

handler 机制的原理。

Andriod 提供了 Handler 和 Looper 来满足线程间的通信.Handler 先进先出原则.Looper 类用来管理特定线程内对象之间的消息交换(Message Exchange).
1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 MessageQueue(消息队列).
2)Handler:你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 MessageQueue 里;或者接收 Looper (从 MessageQueue 取出)所送来的消息.android 中线程与线程,进程与进程之间如何通信。线程通信使用 Handler,

Linux 中跨进程通信的几种方式 。

dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念

DVM 指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例.而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念.