AIDL ——基础概念

转载 2016年08月29日 15:22:12

转自http://blog.csdn.net/wds1181977/article/details/51330309

通常每个应用程序都在他自己的进程内运行,但有时需要在进程之间传递对象(IPC通信)。此时可以通过应用程序UI的方式写一个运行在不同进程中的service。在Android平台中,一个进程通常不能访问其他进程中的内存区域。所以它们需要把对象拆分成操作系统能理解的简单形式,以便伪装成对象跨边界访问。而要完成这些需要AIDL机制。

        AIDL(Android接口描述语言)是一个IDL语言,它可以生成一段代码,可以是一个在Android设备上运行的两个进程使用内部通信进程进行交互。如果你想在一个进程中(例如在一个Activity中)访问另一个进程中(例如service)某个对象的方法,你就可以使用AIDL来生成这样的代码来伪装传递各种参数。

        要使用AIDL,service需要以AIDL文件的方式提供服务接口,AIDL工具将生成一个相应的Java接口,并且在生成的服务器接口中包含一个功能调用的stub()服务桩类。service的onBind方法会返回实现类的对象,之后你就可以使用它了。

 在AIDL文件中支持的数据类型包括:

  • 基本数据类型
  • String和CharSequence
  • List:只支持ArrayList,里面的元素都必须被AIDL支持
  • Map:只支持HashMap,里面的元素必须被AIDL 支持
  • 实现Parcelable接口的对象
  • 所有AIDL接口



相关文章推荐

Android基础——Binder连接池连接多个AIDL文件的处理

初学者必知的Binder连接池 事先说明: 本人也是个初学者,所以本文是从初学者的角度入手,如果有不妥的地方请留言教导我,谢谢。 如果对AIDL的使用和Binder机制不懂的,可以参照我...

Android基础——初学者必知的AIDL在应用层上的Binder机制

初学者必知的AIDL在应用层上的Binder机制 事先说明: 本人也是个初学者,所以本文是从初学者的角度入手,如果有不妥的地方请留言教导我,谢谢。 本篇文章主要针对讲解AIDL的使用和AIDL在...

Android——AIDL基础实现demo以及原理探究

最近有一段时间没写博客了,打算最近趁着有时间补补,本文是总结的AIDL的基本使用和原理。 分为两个部分:一是简单的上手demo,二是对代码逻辑进行分析。 一:简单的AIDL小Demo: ...

Android基础——AIDL进程间通信

与绑定本地的Service不同的是,本地Service的onBinde()方法会直接把IBinder对象本身传给客户端的ServiceConnection。但是远程Service的onBind()方法...

Android基础——AIDL总结篇

这篇同样是Android开发者文档的翻译总结: Android Interface Definition Language: 顾名思义AIDL是一种接口定义语言,它适用于定义不同进程间通信...

黑马程序员——Java基础语法 之面向对象(概念,特征,this,static关键字,代码块)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-面向对象概念java语言最大特点,面向对象思想。 面向过程强调的是实现功能的行为,代表语言有 C语言 例子:开...

GStreamer基础教程02——GStreamer概念

上一个教程演示了如何自动生成一个pipeline。这次我们打算用一个个element来手动搭建一个pipeline。我们这个教程会演示: 1. 什么是GStreamer的element以及如何建立一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AIDL ——基础概念
举报原因:
原因补充:

(最多只允许输入30个字)