AIDL
2016-02-26 11:33
821 查看
在Android中每一个应用程序独自拥有一个虚拟机,应用程序之间没法直接进行通信。
跨进程如何通通信?
1.两个进程无法直接通信
2.通过Android系统底层间接通信
AIDL:Android Interface Definition Language
IPC:interprocess communication 进程间通信
AIDL IPC 多个应用程序 多线程
Binder 只有IPC 没有多线程 多个应用程序
Messenger 只有IPC 没有多线程
AIDL案例:操作流程
1.定义AIDL文件
2.实现服务端
3.实现客户端
默认支持的数据类型:
基本数据类型,除了short
String,CharSequence
List,Map
Parcelable
操作系统底层在传输数据时把大的数据,如List集合,拆分为小的基本数据,传输到的时候再封装。
所有的非基本类型数据都需要一个方向标签来标明数据流向。有in,out,inout 如in List list
AIDL基本语法:
语法和Java的接口相似
AIDL只支持方法,不能定义静态成员
AIDL运行方法有任何类型的参数和返回值
出默认的类型外,均需要导包
跨进程如何通通信?
1.两个进程无法直接通信
2.通过Android系统底层间接通信
AIDL:Android Interface Definition Language
IPC:interprocess communication 进程间通信
AIDL IPC 多个应用程序 多线程
Binder 只有IPC 没有多线程 多个应用程序
Messenger 只有IPC 没有多线程
AIDL案例:操作流程
1.定义AIDL文件
2.实现服务端
3.实现客户端
默认支持的数据类型:
基本数据类型,除了short
String,CharSequence
List,Map
Parcelable
操作系统底层在传输数据时把大的数据,如List集合,拆分为小的基本数据,传输到的时候再封装。
所有的非基本类型数据都需要一个方向标签来标明数据流向。有in,out,inout 如in List list
AIDL基本语法:
语法和Java的接口相似
AIDL只支持方法,不能定义静态成员
AIDL运行方法有任何类型的参数和返回值
出默认的类型外,均需要导包
相关文章推荐
- 探寻main函数的“标准”写法,以及获取main函数的参数、返回值
- Mybatis原理分析一 从JDBC到Mybaits
- hdu-5009-Paint Pearls-dp
- masonry mas_updateConstains
- maven 打包【error】Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
- A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
- Virtualization Support for RHEL High Availability and Resilient Storage Clusters
- linker command failed with exit code 1
- elgnairT.120
- 使用email-ext替换Jenkins(Hudson)的默认邮件通知
- 领域模型驱动设计(Domain Driven Design)入门概述 -----DDD 解释
- MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划
- elasticsearchException[Failed to load logging configuration]
- TIME_WAIT问题小结
- Cordova各个插件使用介绍系列(三)—$cordovaImagePicker从手机图库选择多张图片
- 【Maven进阶三】 Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4……
- bind:address already in use的深刻教训以及解决办法
- Cordova各个插件使用介绍系列(三)—$cordovaImagePicker从手机图库选择多张图片
- mailto的使用技巧分享
- 表单 action mailto发邮件