`
ai_longyu
  • 浏览: 479759 次
社区版块
存档分类
最新评论

android开发AIDL实例

 
阅读更多

由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间。但是android提供了AIDL可以用来进程间数据传递。

AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。
AIDL IPC机制是面向接口的,像COM或Corba一样,但是更加轻量级。它是使用代理类在客户端和实现端传递数据。

下面通过一个实例来演示AIDL,因为是进程之间数据传递,所以这里要使用建立android工程,一个是AIDL的服务端另一个是客户端.

服务端的实现步骤:

1.创建.aidl文件 IMyService.aidl


因为这里用到了Peson对象,所以要创建一个person类。Person类,是一个序列化的类,这里使用Parcelable 接口来序列化,是Android提供的一个比Serializable 效率更高的序列化类。

然后创建Person.aidl文件,注意这里的parcelable小写。

上面的IMyService.aidl保存以后会在gen的相应目录下启动生成如下代码:

Binder

因为sub类实现了Binder接口,所以以后会使用这个类。

2.实现service类


3.客户端实现步骤:

首先建立一个项目,把服务端的

包和类一起拷贝到客户端项目中。因为客户端要和服务端通信,必须要使用同一个aidl。

然后构造客户端的activity类:


最后不要忘记注册service:


启动service的时候使用了隐士意图。

运行服务端工程.

服务端已经启动,然后运行客户端工程:

OK,已经从服务端得到了数据,第一句话就是从服务端得到的,下面看看,传递对象和获取对象与服务端。

点击添加联系人,然后点击获取联系人按钮:



分享到:
评论

相关推荐

    aidl实例代码(android开发艺术探索)

    android开发艺术探索一书中aidl的相关代码,主要功能是服务端向客户端提供服务端的图书信息,以及每5秒向客户端推送新书。

    Android中AIDL的Binder连接池Demo

    Android中AIDL的Binder连接池Demo。可通过该真实的实例来真正了解实际开发过程中AIDL的Binder连接池的使用。

    Android程序设计之AIDL实例详解

    通常来说,AIDL这项技术在我们的应用开发过程中并不是很常用,虽然新浪微博提供了SSO登录,但是其原理就是使用AIDL。本文就以完整的实例形式讲述了AIDL的原理及实现方法。 AIDL(AndRoid接口描述语言)是一种借口描述...

    AIDL实例代码

    AIDL实例, 313093960 android开发群 培训实例

    android ndk开发实例代码

    android ndk 开发入门小例子。 博客地址http://blog.csdn.net/u014702653/article/details/51861013

    android项目之aidl跨进程调用举例Demo

    android项目之aidl跨进程调用举例Demo,开发aidl跨进程调用,主要分以下步骤: 1. 创建.aidl文件-该文件(YourInterface.aidl)定义了客户端可用的方法和数据的接口。 2. 在makefile文件中加入.aidl文件-(Eclipse...

    android开发资料大全

    android开发环境搭建篇详尽的教程实例汇 图形图像之图像处理(缩放 旋转 转化) android开发之【腾讯微博android客户端开发】Parameter类和SyncHttp 网友自己写的Android腾讯微薄客户端开发教程 Android 所有...

    Android Studio创建AIDL文件并实现进程间通讯实例

    Binder机制会开放一些接口给Java层,供android开发工程师调用进程之间通信。这些接口android封装到了AIDL文件里,当我们项目用到跨进程通信时可以创建.aidl文件,.aidl文件可以协助我们达到跨进程的通信。下面简单...

    AIDL实现Binder通信简单实例(Android Studio开发)

    写好aidl 文件以后,利用Android Studio自动生成代码,并通过两个app实现简单的binder通信

    AIDL监听器回调

    自己写的一个通过AIDL进行注册的小实例 需要将4个项目都导入开发工具中 其中项目分别为 register_service 后台服务 register_service_aidl 外部API与service的AIDL接口 register_service_api 外部API(即暴露给UI的...

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    Android使用AIDL方式实现播放音乐案例

    本文实例为大家分享了Android使用AIDL方式实现播放音乐的具体代码,供大家参考,具体内容如下 思路: ① 新建两个APP项目或者Module,一个作为服务端,一个作为客户端,在服务端创建service  ② 在两个module的...

    android上百实例源码及分析

    android上百实例源码及分析 360新版特性界面源代码.rar 888个经典 Logo.rar aidl跨进程调用.rar Android模仿乐淘的应用程序分析源码.zip Android应用开发揭秘源码 .zip Android游戏源码——忍者快跑.rar Android有未...

    android游戏开发从入门到应用实例

    3-13-1(AIDL_Service测试例子) 3-3(ImageButton图片按钮) 3-4(EditText文本编辑) 3-5(CheckBox与监听) 3-6(RadioButton与监听) 3-7(ProgressBar进度条) 3-8(SeekBar 拖动条) 3-9(Tab分页式菜单) 4-10(可视区域) 4-11...

    Android音乐播放器实例教学Demo

    仿某知名音乐播放器的Android版本app Demo+源码,适合新手和进阶人员使用同时学习代码

    Android 远程Service调用实例

    实现了android的远程service调用哪个,使用了AIDL,并且提供了一个自定义类型的参数

    Android实例代码

    第2章、Android应用程序界面设计,即View 2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本界面组件:TextView、EditText; Button、ImageButton; 9Patch; RadioButton...

    Android高级编程--源代码

    因为没有了人为制造的障碍,所以Android开发人员可以自由地编写能够充分利用日益强大的手机硬件的应用程序。因此,对Android感兴趣的开发人员都把Google在2008年发布Android这一举措作为移动技术发展史上的一个非常...

    Android IPC机制Messenger实例详解

    Android IPC机制Messenger实例详解 前言: Messenger可以翻译成信使,通过它可以在不同进程间传递Message对象有了它就可以轻松实现进程间的数据传递了。 Messenger使用的方法相对AIDL比较简单,它对AIDL做了一层封装...

Global site tag (gtag.js) - Google Analytics