Android端跨进程通信及底层代码通信

本文详细介绍了Android端的跨进程通信技术,包括bundle、反射、AIDL、Messenger和ContentProvider。通过AIDL实现C/S架构的服务端与客户端通信,反射用于调用三方库或系统类,Messenger作为AIDL的简化封装,以及ContentProvider用于数据共享。这些技术在Android应用中起着关键作用。
摘要由CSDN通过智能技术生成

安卓Application层通常想访问framework层代码,通常需要跨进程通信

举个例子,比如framework层的某自研feature杜比音效,如何把接口暴露给系统的设置apk,这个就可以直接使用aidl在framework层做server,在需要调用的地方做client以便于调用

这中间的技术就是使用了IPC通信,可以实现跨进程通信,最常使用的是handle、aidl

1、bundle(广播、handlemessage)

这个无需多讲,apk之间通过广播,handle都可以较为简单的实现通信

2、反射:(类必须加载至JVM同一区域,通常无法跨进程,import进来的SDK jar包属于同区域)

对于apk而言,我们可以直接反射三方依赖的库或者sdk带的android.jar,这是最常反射的地方

其次手机在编译版本时也会将一些自研类库打包在system/framework , system_ext/目录下,如果条件允许的话,我们也可以ClassLoader这些jar包进来,然后直接反射调用

Class clazz = Class.forName(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值