跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。

AIDL:Android Interface Definition Language,即Android接口定义语言。

什么是AIDL

Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、BroadcastReceiver和ContentProvider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。

建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下:

(1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。

(2)如果aidl文件的内容是正确的,ADT会自动生成一个Java接口文件(*.java)。

(3)建立一个服务类(Service的子类)。

(4)实现由aidl文件生成的Java接口。

(5)在AndroidManifest.xml文件中配置AIDL服务,尤其要注意的是,<action>标签中android:name的属性值就是客户端要引用该服务的ID,也就是Intent类的参数值。

转自

最新文章

  1. hello,world!
  2. 初识MongoDB
  3. Test,Nginx Hello World Module
  4. source Insight注册码
  5. android下ListView的奇异异常大集合(持续更新)
  6. WinForm DataGridView看似刷新的问题
  7. LINQ实现行列转换
  8. Binary Tree Preorder Traversal and Binary Tree Postorder Traversal
  9. IOS 时间格式 时间转换 大总结
  10. 【NOI复习】树链剖分
  11. 安卓开发_浅谈ListView之分页列表
  12. 【 Gym - 101138F 】GukiZ Height (数学)
  13. 搭建简单SBT工程实践
  14. NFS客户端阻塞睡眠问题与配置调研
  15. Javac中的nullcheck
  16. CommonsChunkPlugin知识点
  17. PHP读取excel表格,和导出表格
  18. JS 操作 checkbox(cc角色管理等)
  19. HTTP-java访问https资源时,忽略证书信任问题,代码栗子
  20. rename 批量重命名

热门文章

  1. MSF溢出实战教程
  2. DedeCms 5.x 本地文件包含漏洞(respond方法)
  3. LINUX的两种后门总结(suid shell与inetd)
  4. c# 解析JSON的几种办法(转载)
  5. Oracle 11g客户端在Linux系统上的配置步骤详解
  6. 机器学习公开课笔记(4):神经网络(Neural Network)——表示
  7. 使用Cydia Substrate 从Native Hook Android Java世界
  8. Java正则表达式的最简单应用
  9. Python配合BeautifulSoup读取网络图片并保存在本地
  10. MYSQL 删除字段值为NULL的语法