Binder在WallpaperService中的应用


         通过AIDL工具可以把IWallpaperService.aidl接口文件编译成IWallpaperService.java文件,此文件含一个进程间通讯的类IWallpaperService.Stub:

         public static abstract class Stub extendsandroid.os.Binder implements android.service.wallpaper.IWallpaperService

        该类包含了一个方法onTransact

         public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags){
              return super.onTransact(code, data, reply, flags);
         }

         该类又包含了一个内部类Proxy:

         private static class Proxy implements android.service.wallpaper.IWallpaperService
         {
             private android.os.IBinder mRemote;
             mRemote.transact(Stub.TRANSACTION_attach, _data, null, android.os.IBinder.FLAG_ONEWAY);
             .....................................................................

         }

Proxy工作在客户端,通过transact把数据发送到Stub的onTransact方法进行处理,由此可见,

 IWallpaperServiceStub类横跨了C/S的两个进程,其发送和处理请求均在此处理,这是在Binder驱动上对通信层面的一种抽象。


编译生成的相关文件路径如下:

./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/service/wallpaper/IWallpaperService.P
./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/service/wallpaper/IWallpaperService.java
./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/service/wallpaper/IWallpaperService.class
./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/service/wallpaper/IWallpaperService$Stub$Proxy.class
./out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/service/wallpaper/IWallpaperService$Stub.class


后续将主要对以下几个问题进行学习:

1.应用程序要跨进程访问核心平台服务的方法。

2.同一个进程的不同线程间使用Binder机制(直接调用,不用经过Binder驱动)

3.应用程序间互相访问



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值