-
AIDL如何实现IPC 关键学习知识
in、out、inout关键字的作用
oneway关键字的作用
AIDL如何实现callback机制
如何自己编码实现AIDL的核心功能
AIDL项目场景模拟
连接服务:子进程向主进程,提供connect建连、disconnect断连|、isConnected连接状态获取三个方法
消息服务:主进程调用sendMessage方法通过子进程的连接发送消息,也可以通过调用registerMessageReceiverListener在主进程中监听子进程的消息,也有个unRegisterMessageReceiverListener方法注销整个消息的监听
查看全部 -
进程:是系统资源分配的最小的单位。进程间的资源和数据是相互隔离的
线程:是进程内部独立执行单元,是程序执行的最小单位,进程内的线程间是共享大多数的资源和数据的
进程内可以运行多个线程,线程的崩溃会影响到进程
多进程优点:
①避免系统资源紧张,每个应用使用的资源是有限的,一旦主进程的内存资源不足,系统就会抛出oom异常,通过多进程将内存占用高的功能过滤到独立的子进程
②应用架构臃肿
多进程的缺点:
①每当一个新进程使用,Application相关的生命周期方法就会被再次执行,也就是说应用的初始化代码会被多次执行到
②进程间数据共享失败
③进程间的共享 只能通过文件、intent、AIDL
查看全部 -
Linux跨进程通行方式:
1、管道
2、消息队列
3、信号
4、共享内存
5、信号量
6、套接字
查看全部 -
linux跨进程通信方式:
1、管道
2、消息队列
3、信号
4、共享内存 多个进程同时读写同一块内存空间
5、信号量
6、套接字
查看全部 -
messenger usage
查看全部 -
Binder
查看全部 -
使用多进程的注意事项 :
查看全部 -
为什么需要多进程?
查看全部 -
进程与线程的区别。
查看全部 -
调用connect()方法会导致双方阻塞,此时发挥aidl中关键字oneway的作用,但是一旦定义了oneway,该方法便不能设置返回值,表示不关心远端执行,必须设置为boid
查看全部 -
定义aidl接口并在子进程服务中实现
在源代码目录下定义IConnetionService.aidl接口文件(src/main/aidl,与java同级)
build编译系统自动生成IConnectionServive.java实现类——其实是个interface(build/generated/下的out目录内)
在RemoteService中实现IConnectionService
(1)初始化IConnectionService对象为IConnectionService.Stub,这是IConnectionService的内部抽象类
(2)实现Stub中的方法
(3)onBind()方法返回connectionService.asBinder给主进程,这是一个IBinder对象
查看全部 -
没有源码嘛
查看全部 -
Message只能支持串行的实时通信
查看全部 -
AIDL定义介绍
定义IPC过程中接口的一种描述语言
AIDL文件在编译过程中生成的实现类用于IPC通信
其语法支持基本数据类型,实现Parcelable接口的对象(还包括List和Map)
查看全部 -
AIDL的本质基于Binder,实现IPC的方式
查看全部
举报