`
houchangxi
  • 浏览: 64884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android的aidl进程间通讯(一)

阅读更多



     一. 概述:
     跨进程通信(AIDL),主要实现进程(应用)间数据共享功能。
     二. 实现流程:
     1. 服务器端实现:
        (1)目录结构,如下图:

           

     (2)实现*.aidl文件:
      A. IAIDLService.aidl实现:


Java代码:

  1. import com.focus.aidl.Person;
  2. interface IAIDLService {
  3. String getName();
  4. Person getPerson();
  5. }
复制代码

      B. Person.aidl实现:

        parcelable Person;
        (3)进程间传递对象必需实现Parcelable或Serializable接口,下面是被传递的Person对象实现:

Java代码:

  1. package eoe.demo;

  2. import android.os.Parcel;
  3. import android.os.Parcelable;

  4. public class Person implements Parcelable {

  5. private String name;
  6. private int age;

  7. public Person() {
  8. }

  9. public Person(Parcel source) {
  10. name = source.readString();
  11. age = source.readInt();
  12. }

  13. public String getName() {
  14. return name;
  15. }

  16. public void setName(String name) {
  17. this.name = name;
  18. }

  19. public int getAge() {
  20. return age;
  21. }

  22. public void setAge(int age) {
  23. this.age = age;
  24. }

  25. public int describeContents() {
  26. return
  27. 0;
  28. }

  29. public void writeToParcel(Parcel dest, int flags) {
  30. dest.writeString(name);
  31. dest.writeInt(age);
  32. }

  33. public static final Parcelable.Creator<;Person> CREATOR = new Creator<;Person>() {
  34. public Person[] newArray(int size) {
  35. return
  36. new Person[size];
  37. }

  38. public Person createFromParcel(Parcel source) {
  39. return
  40. new Person(source);
  41. }
  42. };

  43. }
复制代码


      (4)实现IAIDLService.aidl文件中定义的接口,并定义Service,在Service被bind时返回此实现类:

Java代码:

  1. package eoe.demo;

  2. import com.focus.aidl.IAIDLService.Stub;
  3. import android.app.Service;
  4. import android.content.Intent;
  5. import android.os.IBinder;
  6. import android.os.RemoteException;

  7. public class AIDLServiceImpl extends Service {

  8. @Override
  9. public IBinder onBind(Intent intent) {
  10. return mBinder;
  11. }

  12. /**
  13. * 在AIDL文件中定义的接口实现。
  14. */
  15. private IAIDLService.Stub mBinder = new Stub() {

  16. public String getName() throws RemoteException {
  17. return
  18. "mayingcai";
  19. }

  20. public Person getPerson() throws RemoteException {
  21. Person mPerson = new Person();

  22. mPerson.setName("mayingcai");
  23. mPerson.setAge(24);

  24. return mPerson;
  25. }

  26. };

  27. }
复制代码


(5)在AndroidManifest.xml文件中注册Service:

Java代码:

  1. <service android:name = ".AIDLServiceImpl" android:process = ":remote">

  2. <intent-filter>
  3. <action android:name = "com.focus.aidl.IAIDLService" />
  4. </intent-filter>

  5. </service>
复制代码
分享到:
评论

相关推荐

    android aidl 不同进程间通信

    在Android系统中,进程间通信...总之,Android Aidl是实现不同进程间通信的重要手段,通过定义接口和服务,可以方便地实现跨进程调用,提升应用的功能性和交互性。理解和掌握Aidl对于开发复杂的Android应用至关重要。

    Android使用AIDL实现进程间通信

    Android提供多种IPC方式,其中AIDL(Android Interface Definition Language)是一种强大的工具,用于定义服务接口并使得不同进程间能透明地调用对方的方法。本篇文章将深入探讨如何在Android中使用AIDL来实现进程间...

    Android AIDL进程间通信例子代码

    在Android系统中,进程间通信(Inter-Process Communication, 简称IPC)是一种关键的技术,使得不同进程...通过理解并实践`AndroidAIDLClient`和`AndroidAIDL`这两个示例,你可以更深入地掌握Android的进程间通信技术。

    Android AIDL进程间通信

    综上所述,AIDL是Android平台中实现进程间通信的重要手段,通过合理的使用,可以构建出高效、稳定、可扩展的应用程序。通过阅读和理解给定的`MyTestAIDL`代码资源,开发者可以更好地掌握AIDL的工作方式,为今后的...

    android aidl跨进程通信

    标题“android aidl跨进程通信”指的是通过AIDL在Android上进行不同进程间的数据交换和功能调用的过程。在Android中,每个应用默认运行在自己的进程中,当需要不同应用间共享数据或调用对方的功能时,就需要借助IPC...

    AIDL进程间通信demo

    AIDL(Android Interface Definition Language)是Android提供的一种用于实现进程间通信的工具,它允许开发者定义接口,使得服务能够被其他应用调用,即便这些应用运行在不同的进程中。** ### AIDL简介 AIDL是一种...

    android aidl进程间通信

    在Android系统中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(IPC, Inter-Process Communication)的机制。AIDL允许一个应用服务在不同的进程中运行,使得其他应用能够与之交互,共享...

    Android AIDL 进程间通信

    Android进程间通信 AIDL Service 一、服务端结构 服务端需要处理的有: 1.处理对象,对象内方法,注意:AIDL 只能对函数起作用; 2.处理服务; 3.配置文件; 二、客户端 配置 1.对象,切记,与服务端的对象完全一致...

    Android aidl 实现进程间通信

    总结来说,Android AIDL提供了一种强大的工具,使得开发者可以方便地实现在不同进程间的通信,提高了应用程序的扩展性和灵活性。理解并熟练运用AIDL是开发高性能、多组件协作的Android应用的重要技能。通过学习和...

    Android Aidl进程间通信,实现3个app共享一个服务

    AIDL(Android Interface Definition Language)是Android提供的一个工具,用于在不同进程间定义和实现接口,使得服务可以在多个应用之间共享。本教程将深入探讨如何使用AIDL来创建一个服务,供三个不同的应用程序...

    AIDL进程间通讯demo

    AIDL进程间通讯demo,A [android] I [Interface] D [Definition] L [Language],Android接口定义语言。 作用:方便系统为我们生成代码从而实现跨进程通讯,仅此而已。(玉刚老师如是说也),也就是说这个AIDL就只是一...

    使用 AIDL实现进程间通信

    AIDL(Android Interface Definition Language)是Android提供的一种工具,用于方便开发者实现进程间通信。这篇博客“使用AIDL实现进程间通信”将深入探讨如何利用AIDL进行跨进程的交互。 首先,我们要理解AIDL的...

    Android aidl 进程通信

    总之,Android AIDL是解决进程间通信问题的有效工具,它使得服务能够被不同应用访问,增强了Android系统的交互性和可扩展性。在实际开发中,理解并熟练掌握AIDL的使用,对于构建健壮、高效的Android应用至关重要。

    Android-AIDL进程间通讯

    本文将深入探讨AIDL在Android进程间通讯中的应用。 ### 一、AIDL概述 AIDL是一种接口定义语言,它的主要任务是定义服务接口,使得服务端(服务器进程)和客户端(调用者进程)可以通过 Binder 机制进行进程间通信...

    Android安卓AIDL进程间通信Service简单例子

    本教程将通过一个简单的例子来讲解如何使用AIDL实现Android进程间的通信。 首先,我们来看服务端(AidlTestServer)的实现。创建一个服务类,比如`MyService`,在这个服务中我们需要定义一个接口,这个接口将由AIDL...

    AIDL进程间通信

    **AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于实现不同进程间的通信(IPC,Inter-Process Communication)。AIDL使得应用程序能够暴露服务,让其他应用调用,即使这些...

    android_aidl_进程间通讯demo

    在这个"android_aidl_进程间通讯demo"中,我们将探讨如何通过AIDL来构建服务并进行跨进程通信。 首先,我们来看标题"android_aidl_进程间通讯demo",它明确指出这个示例项目是关于AIDL在处理进程间通信中的应用。...

    Android之通过AIDL机制实现进程间的通讯实例

    本实例将深入探讨如何通过AIDL实现在Android应用中的进程间通讯。 首先,我们需要理解AIDL的基本概念。AIDL是一种简单的接口定义语言,类似于Java中的接口,但它的设计目标是跨越进程边界。在AIDL中,我们可以声明...

Global site tag (gtag.js) - Google Analytics