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接口



基础网络概念

摘自《鸟哥的 Linux 私房菜-网络篇》 局域网络 (Local Area Network, LAN) 广域网 (Wide Area Network, WAN) MAC (Media Ac...
  • breeze_life
  • breeze_life
  • 2013年08月07日 18:17
  • 1899

cocos2dx学习之基本概念

转载自 http://blog.csdn.net/bill_man/article/details/7214035 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色。 导...
  • chan70707
  • chan70707
  • 2016年07月08日 11:11
  • 331

Java学习的基础概念和知识点

static 1、随着类的加载而加载 2、优先于对象存在 3、被所有对象所共享 4、可以直接被类名调用 使用注意: 1、静态方法只能访问静态成员 2、非静态成员可以访问静态成员 3、静态方法中不可以...
  • wj610671226
  • wj610671226
  • 2016年08月15日 21:45
  • 1100

ORACLE基础概念

数据库实例    用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。其实就是用来访问和使用...
  • Z_T_T
  • Z_T_T
  • 2017年05月10日 17:33
  • 153

mysql数据库基础概念

MYSQL是支持sql(structured Query Language,结构化查询语言)数据库语言的一个关系数据库...
  • happy_cheng
  • happy_cheng
  • 2014年07月27日 22:04
  • 588

数据库基础概念

DBMS基础概念;E-R模型的应用;将E-R图映射到表中的步骤;处理数据冗余的范式应用...
  • heart_1014
  • heart_1014
  • 2016年08月07日 15:27
  • 654

SQL(一)-基本概念

1:(数据库简介 数据库是以便于访问的方式组织的数据的集合,方便有效的管理和更新。 数据库由存储相关信息的表组成。 例如,如果您要创建包含大量信息(如视频,用户名,密码和评论)的YouTube网站,您...
  • cho3en1
  • cho3en1
  • 2016年11月21日 13:43
  • 246

C++ 基础概念

pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造)- 再沒有比这些更基础的议题了。几乎最简单的C++ 程序也会用到其...
  • qq_34882983
  • qq_34882983
  • 2017年01月11日 18:44
  • 598

算法系列(一)基本概念

一、什么是算法 算法是完成一个任务所需的一系列步骤,计算机解决计算机问题,我们希望从一个计算机算法中获得两个结果,给定一个输入,它应该总能够产生该问题的正确输出结果,并且在运行该算法时,能够有效的利...
  • robertcpp
  • robertcpp
  • 2016年05月29日 10:17
  • 1920

C++基本概念和常识

C++基本数据类型: 整形,字符型,实型,逻辑型(布尔型)   数据类型修饰符: short  long  unsigned    signed 注意: 1. 布尔型: 布尔型(bool):  ...
  • ztli_xd
  • ztli_xd
  • 2016年05月23日 16:43
  • 395
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AIDL ——基础概念
举报原因:
原因补充:

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