AIDL注意细节 简单Demo
服务端
服务端注意细节
- 不支持short数据类型
- 支持的数据类型有:int、long、char、boolean、float、double、String、CharSequence、List、Map
- 除了基本类型外,自定的类型需要我们通过实现Parcelable来序列化
- 自定义的数据类型所在的包必须与aidl下文件拥有相同的包名
- 除基本类型外,自定的类型必须标注in、out、inout标示数据的方向。基本类型默认方向为in。(通常报错就处于此条)
AIDL文件
package com.android.server;import android.os.Parcel;
import android.os.Parcelable;/*** 自定义数据类型*/
public class Rectangular implements Parcelable{public int left;public int right;public int top;public int bottom;public Rectangular(){}public Rectangular(Parcel in){readFromParcel(in);}@Overridepublic int describeContents() {return 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeInt(left);dest.writeInt(right);dest.writeInt(top);dest.writeInt(bottom);}public void readFromParcel(Parcel in){left = in.readInt();right = in.readInt();top = in.readInt();bottom = in.readInt();}public static final Parcelable.Creator<Rectangular> CREATOR = new Parcelable.Creator<Rectangular>(){@Overridepublic Rectangular createFromParcel(Parcel source) {return new Rectangular(source);}@Overridepublic Rectangular[] newArray(int size) {return new Rectangular[size];}};
}
Rectangular.aidl
package com.android.server;parcelable Rectangular;
IRemoteService.aidl
package com.android.server;import com.android.server.Rectangular;interface IRemoteService {void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,double aDouble, String aString);int getArea(in Rectangular rect);}
客户端
客户端注意细节
- aidl文件必须与服务端一致,包括包名
服务端每次修改aidl文件之后,必须更新客户端的aidl文件,负责会服务绑定到服务端的服务。
Demo完整实现
https://github.com/xkck/AIDLServer
AIDL注意细节 简单Demo相关推荐
- JavaWeb开发:从购买服务器到简单demo运行
写这篇文章的目的: 一个是为了记录实施过程,方便自己日后查阅: 另一个是给项目组成员提供一个参考,方便他们以后搭建自己的项目环境: 当然若能帮助到更多的朋友,那就再好不过了:D 需要注意: 我本身也是 ...
- EPSON机器人建立TCP/IP通讯的简单demo
以下为我近期研究EPSON机器人通讯的经验总结,主要实现机械手接收相机发送过来的数据,从而达到对应的位置,及其简单demo. 欢迎加入知识星球[3D视觉工坊],进行交流学习.
- Solr配置与简单Demo[转]
Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...
- VC++ 拖放编程简单Demo
微软的编程类库都带有拖放编程的接口:下面看一个最简单demo:win7, vc6:新建一个对话框工程: 添加一个列表框控件:设置 接受文件 属性: 在 类向导-Class Info 做如下选择: 为W ...
- win32汇编定时器简单Demo
timer.asm: .386.model flat,stdcalloption casemap:noneinclude windows.inc include user32.inc includel ...
- win32汇编创建线程简单Demo
代码如下:thread.asm: .386.model flat,stdcalloption casemap:noneinclude windows.inc include user32.inc in ...
- rabbitMQ消息队列 – 面板介绍及简单demo
首先rabbit安装好之后,运维会给一个控制面板. 默认账号密码为guest 登入以后可以看到具体界面. 在此鸣谢百度翻译给予的大力支持.. ###写一个简单的demo 编写之前..虽然说可以直接用底 ...
- python wpf教程_WPF使用IronPython库的简单Demo
WPF使用IronPython库的简单Demo 一.IronPython和C#交互 IronPython是一个.NET平台上的Python实现,包括了完整的编译器.执行引擎与运行时支持,能够与.NET ...
- Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
来源:https://www.cnblogs.com/7tiny/p/10493805.html [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请 ...
最新文章
- 【机器学习基本理论】详解最大后验概率估计(MAP)的理解
- Sales and Distribution (SD)
- 量子计算101:浅谈其需求、前景和现实
- Maven 学习 (0) Maven 简介
- oracle设置开机启动,linux下oracle设置开机自启动实现方法
- 简单的单臂路由的配置实验 (思科)
- ASP.NET中下载文件的几种方法
- python绘画音频_人工智能下的音频还能这样玩!!!!
- react中的state详解
- 2018福大软工实践第八次作业
- 查看和设置tomcat内存
- python显示当前日期_python显示当前时间
- AcWing 870. 约数个数(唯一分解+组合数)
- python函数参数是数据库表名_Python-sqlite中的变量表名称
- 国外 Warez 网站 杂集
- (待补充)【读书笔记】20190816《码农翻身》——刘欣
- Testng的简介和使用
- Copy and Paste GAN: Face Hallucination from Shaded Thumbnails
- Vray材质学习笔记08——陶瓷材质
- 嵌入式开发对学历门槛要求高吗?
热门文章
- java equal 不等于_java Integer判断相等只能使用equals(不能使用==)
- 【Linux】5.linux下的export命令和环境变量
- 锁优化:逃逸分析、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁
- 系统分析师零散知识点
- MySQL 覆盖索引
- java设计模式5--原型模式(Prototype)
- 程序员面试题精选100题(30)-赋值运算符重载函数[C/C++/C#]
- 2015年山石网科面试题
- Nginx安装echo模块
- [十三]JavaIO之PushBackInputStream