Android Binder实战开发指南之Java层直接调用Native Binder Service

           Android Binder实战开发指南之Java层直接调用Native BinderService

Android Binder实战开发指南目录:

Android Binder实战开发指南Native层获取Process进程名和调用者进程名

Android Binder实战开发指南之Java层直接调用Native Binder Service

Android Binder开发实战指南之创建Native Binder Service

Android Binder实战开发指南之Native层使用Java层Binder服务

Android Binder实战开发指南之创建Java层Binder系统服务

 

前言

      承接上一篇文章Android Binder实战开发指南之创建Java层Binder系统服务,本篇来介绍一下怎么通过Java直接使用Native Binder Service。这里使用的是前面创建的Native Service。

 

实现步骤

     如果一直从前面的文章看过来,那么实现起来也不是很复杂,无外乎先获取Native Binder Service的远程代理,然后通过远程代理调用实际的服务端。下面直接奉上代码

    private void callNativeBinderServiceFun() {
        //获取Native Binder Service的代理
        IBinder binder = ServiceManager.getService("service.testservice");
        String DESCRIPTOR = "android.TestServer.ITestService";
        try {
            if (binder != null) {
                Parcel data = Parcel.obtain();
                Parcel replay = Parcel.obtain();
                try {
                    data.writeInterfaceToken(DESCRIPTOR);
                    //通过BpBinder进行数据交互
                    binder.transact(IBinder.FIRST_CALL_TRANSACTION, data, replay, 0);
                    int result = replay.readInt();
                    Log.e("Client","get result :" + result);
                } finally {
                    replay.recycle();
                    data.recycle();
                }
            }

        } catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

然后分别运行Native Binder Service和Android工程,具体的运行结果如下所示

                                                                                  服务端

 

                                                                               Android应用端

 

总结

    如上就是 Java直接调用Native Binder Service的具体步骤和实现原理,当前看懂这些的前提是必须对Binder的原理有一定的理解和掌握。到这里Binder实战大荟萃的四篇文章已经完全结束,这四个情景应该概括了实际使用中的绝大部分场景,掌握了这四种Binder的实际应用,我想对于Binde的实际应用开发应该不是难事了。

最后统一奉上源码Binder实战大荟萃源码,由于牵涉到公司信息所以做了些特殊处理,各位谅解!

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值