博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Aidl调用何时使用本地对象问题
阅读量:6489 次
发布时间:2019-06-24

本文共 1349 字,大约阅读时间需要 4 分钟。

hot3.png

今天系统需要采用aidl进行跨进程调用,讨论到了aidl对象调用效率问题,总结如下

1. 同一个apk,同一个进程的Activity 调用Service,系统会直接把binder这个java对象传递给Activity,会一般的回调无异

源码

/** * Cast an IBinder object into an com.example.testaidlservice.IMyAidlInterface interface, * generating a proxy if needed. */        public static com.example.testaidlservice.IMyAidlInterface asInterface(android.os.IBinder obj) {            if ((obj == null)) {                return null;            }            android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);            if (((iin != null) && (iin instanceof com.example.testaidlservice.IMyAidlInterface))) {                return ((com.example.testaidlservice.IMyAidlInterface) iin);            }            return new com.example.testaidlservice.IMyAidlInterface.Stub.Proxy(obj);        }

 

 

2. 同一个Apk,Activity 指定process a, Service process 为b, Activity aidl调用Service,当然需要进行序列化反序列化,需要创建一次对象

 

 

3.不同apk, Activity 调用另一个Apk的Service, 系统需要对Service的binder对象序列化,在

Client端进行反序列化

 

4. 不同Apk , share uid不同, process相同, 实际上还是两个进程,当然也需要binder的序列化反序列化

 

5. 不同Apk, shareuid 相同, process相同,实际上是一个进程,但是aidl调用,仍然需要 进行序列化反序列化, 在客户端创建对象

 

 

 

结论:

1.Android 为了提高aidl的效率, 对于同一个apk内,同一个进程内的aidl调用,直接转递了java对象,其他情况,需要对对象进行一次序列化和反序列化,性能比前者低

2.只有在shareuid process 都相同的情况下,组件占用的进程才相同。 更多请参考 http://www.cnblogs.com/gansc23/archive/2011/01/21/1941134.html

转载于:https://my.oschina.net/sfshine/blog/903164

你可能感兴趣的文章
一些开发遇到的"小问题",你能答对多少?
查看>>
面对前车之鉴的AR,现在的VR要做些什么?
查看>>
自然语言理解势头正强劲,可总还是缺点啥
查看>>
【python图像处理】给图像添加透明度(alpha通道)
查看>>
区块链与微服务天生是一对
查看>>
VDI市场:探寻企业影子IT风险来源|
查看>>
阿里云黄海宇:窄带高清2.0——让直播更惊艳的魔术
查看>>
SID颁发全球显示行业个人奖项
查看>>
百度地图拖动标注后获取坐标
查看>>
RAC重要概念和原理
查看>>
Mysql客户端下载地址
查看>>
高并发网络编程之epoll详解
查看>>
ORACLE SQL调优之记录一次trim函数引发的大表全表扫描
查看>>
JS编程建议——20:不要使用new
查看>>
Oracle hint之DRIVING_SITE
查看>>
深入理解计算机系统结构——链接
查看>>
阿里云盾提醒网站被WebShell木马后门分析与对策
查看>>
Java开发者福利——Java编码规范Eclipse/IDEA插件
查看>>
not accessible due to restriction on required library
查看>>
Python计算&绘图——曲线拟合问题(转)
查看>>