1、android散记-AIDL接口定义语言
来源:互联网 发布:淘宝专业用语 编辑:程序博客网 时间:2024/04/24 20:32
AIDL简介:
Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。
为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。
简单点说, AIDL就是跨进程通信,实现进程(应用)间的数据共享。随着应用的复杂化,单一的应用已很难满足用户的需求 ,这时IPC(进程间通信)就显得尤为重要。比如启动一个应用(进程)时连带着启动另一个应用为其处理复杂问,使应用运行起来也更流畅,用户体验也更好。
在Linux的概念空间中,Android的每个Activity都是一个独立的进程,每个Service也都是一个独立的进程,Activity,Service之间要交换数据属于IPC。IBinder就是为了Activity Service通讯而设计的一个轻量级的IPC框架。IBinder传递的数据被封装到android.os.parcel(注意parcel并非通用的序列化机制,而是专为IBinder设计的)客户端通过IBinder发送请求给服务端,服务端提供实际服务。
——————————————————————————————————————————————————————————————————
实现AIDL的步骤
1、创建AIDL文件
2、实现AIDL文件生成的java接口。
3、向客户端提供接口(一般通过Service实现)
4、客户端调用
——————————————————————————————————————————————————————————————————
创建AIDL文件
AIDL文件的语法跟Java的语法几乎一致,只是文件的扩展名不是.java而是.aidl
DataProvider是Service的子类,DataProvider类中定义了一个内嵌类(AidlImpl),该类是MyAidl.Stub的子类 。 MyAidl.Stub是根据MyAidl.aidl文件自动生成的,一般并不需要管这个类的内容,只需要编写一个继承于MyAidl.Stub类的子类(即AidlImpl)即可。onBind方法必须返回AidlImpl类的对象实例,否则客户端无法获得服务对象。
- 1、android散记-AIDL接口定义语言
- AIDL android接口定义语言
- Android接口定义语言(AIDL)
- Android接口定义语言(AIDL)
- Android AIDL接口定义语言
- aidl(android 接口定义语言)
- Android 接口定义语言 (AIDL)
- Android -- Android 接口定义语言 (AIDL)
- Android 接口定义语言(AIDL)
- Android的接口定义语言(aidl)
- Android接口定义语言---AIDL(一)
- Android接口定义语言---AIDL(二)
- Android接口定义语言---AIDL(三)
- Android接口定义语言---AIDL(四)
- Android 接口定义语言AIDL使用解说
- AIDL(AndroidInterfaceDefinitionLanguage:接口定义语言)
- android绑定远程服务以及android接口定义语言(aidl)
- Android笔记三:Android 接口定义语言 (AIDL)--基本用法
- 如何在HTML中引用jQuery函数库
- 文件重命名
- 初学Android,启动,关闭Activity(七)
- rails3项目解析之3——redis
- Objective-C/C++混编编译器设置
- 1、android散记-AIDL接口定义语言
- 项目 配置hibernate
- xmanager passive功能不能使用的问题
- 模式识别的应掌握的数学基础
- demo01_键盘管理
- .net中SessionState相关配置
- Android动态壁纸的制作教程
- Spring事务管理
- 自律