美文网首页
AIDL 服务支持的数据类型

AIDL 服务支持的数据类型

作者: TomHu_blog001 | 来源:发表于2019-08-18 08:51 被阅读0次

萧瑟年月-AIDL 服务支持的数据类型·一位站在后端和前端交界点的男孩个人博客网站

AIDL 服务只支持有限的数据类型,如果用AIDL服务传递一些复杂的数据就需要做更一步处理,  AIDL 服务支持的数据类型如下:

1. Java

的原生类型

2. String

和CharSequence

3. List

和 Map ,List和Map 对象的元素必须是AIDL支持的数据类型;  以上三种类型都不需要导入(import)

4. AIDL

自动生成的接口  需要导入(import)

5.

实现android.os.Parcelable 接口的类.  需要导入(import)。 

要传递一个需要import 的数据类型的值(如: 实现Parcelable接口的类),除了要建立一个实现Parcelable 接口的类外, 还需要为这个类单独建立一个aidl 文件, 并使用parcelable 关键字进行定义.

一. 服务器端

具体步骤如下:

1.  建立一个IMyService.aidl 文件,代码如下:

package net .blogjava.mobile.complex.type.aidl;

import  net.blogjava.mobile.complex.type.aidl.Produce;

interface  IMyService  {

     Map  getMap(in String country,  in  Product  product);

     Product  getProduct();

}

注意:   如果方法参数的类型不是原生类型,如String,List或自定义实体类,需要使用in、 out或 inout 修饰,in表示这个值被客户端设置; out  表示这个值被服务端设置,inout 表示这个值既被客户端设置,又被服务端设置.

2. 编写 Product  类,该类是用于传递的数据类型,它实现了Parcelable接口,用于序列化对象,之所以不用java.io.Serializable 接口,是因为Serializable 接口序列化的效率没有Parcelable接口高

(1)  在Product 类中必须有一个静态常量,常量名必须为CREATOR,而且CREATOR 常量的数据类型必须是Parcelable.Creator

(2) 在writeToParcel 方法中需要将要序列化的值写入 Parcel 对象

3.  建立一个Product.aidl 文件,代码: parcelable Product;

4.  编写一个MyService类

5.  在AndroidManifest.xml文件中配置MyService 类,代码:

<service android:name=".MyService">

     <intent-filter><action android:name="net.blogjava.mobile.complex.type.aidl.IMyService"/></intent-filter>

</service>

二.客户端

首先将IMyService.java和Product.java文件复制到客户端工程(ch08_complextypeaidlclient),然后绑定AIDL服务,并获得AIDL服务对象,最后调用AIDL服务的方法

运行时,先运行服务器端,再运行客户端程序,先单击绑定AIDL 服务按钮,待成功绑定后,单击调用 AIDL服务按钮.

http://blog.csdn.net/aduovip/article/details/6703516 原文

相关文章

  • AIDL 服务支持的数据类型

    萧瑟年月-AIDL 服务支持的数据类型·一位站在后端和前端交界点的男孩个人博客网站 AIDL 服务只支持有限的数据...

  • 使用AIDL(二)传递数据

    AIDL默认支持的数据类型 IData.aidl 除short外的Java八大基本数据类型,String、Char...

  • 关于AIDL中Map参数传递的问题

    我们都知道aidl是支持map作为参数传递的,但前提是map不能是泛型并且数据类型必须是aidl所支持的Strin...

  • AIDL使用详解

    1.创建实体bean,继承Parcelable序列化接口 2.编写AIDL文件 AIDL支持的类型基本数据类型St...

  • Android AIDL

    AIDL支持的参数类型 八种基本数据类型;byte boolean char short int float lo...

  • AIDL详解

    aidl支持基本数据类型和实现了parcelable接口的对象。 ps:实现了parcelable接口的对象的文件...

  • Android中的AIDL

    AIDL是为了实现进程间通信,尤其是在涉及多线程,多客户端并发情况下的进程间通信。 AIDL默认支持的数据类型包括...

  • AIDL

    创建AIDL通讯的步骤: 1.服务端编写AIDL文件(自定义的数据类型要手动导包import com.你的自定义数...

  • AIDL 简单总结

    纯粹是个人学习总结,如有不对的地方请吐槽。 AIDL文件中支持的数据类型包括:

  • android进阶-AIDL之自定义数据类型

    系列文章 AIDL的基本使用AIDL之自定义数据类型AIDL之重连方法-待AIDL之接口注册/解注册-待AIDL之...

网友评论

      本文标题:AIDL 服务支持的数据类型

      本文链接:https://www.haomeiwen.com/subject/laalsctx.html