温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

android中ibinder有什么用

发布时间:2021-09-23 09:05:01 来源:亿速云 阅读:156 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关android中ibinder有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  IBinder就是绑定服务的方式启动服务,即服务可以通过Binder与启动service的类通信用的。IBinder是一个通信接口,Binder是个方法。

  什么是IBinder

  首先要明白,Android的远程调用(就是跨进程调用)就是通过IBinder实现的,下面是对android开发文档的翻译。

  IBinder是远程对象的基本接口,是为高性能而设计的轻量级远程调用机制的核心部分。但它不仅用于远程调用,也用于进程内调用。这个接口定义了与远程对象交互的协议。不要直接实现这个接口,而应该从Binder派生。

  IBinder的主要API是transact(),与它对应另一方法是Binder.onTransact()。第一个方法使你可以向远端的IBinder对象发送发出调用,第二个方法使你自己的远程对象能够响应接收到的调用。IBinder的API都是同步执行的,比如transact()直到对方的Binder.onTransact()方法调用完成后才返回。调用发生在进程内时无疑是这样的,而在进程间时,在IPC的帮助下,也是同样的效果。

  IBinder源码:

  packageandroid.os;

  importandroid.annotation.NonNull;

  importandroid.annotation.Nullable;

  importjava.io.FileDescriptor;

  publicinterfaceIBinder{

  /**

  *Thefirsttransactioncodeavailableforusercommands.

  */

  intFIRST_CALL_TRANSACTION=0x00000001;

  /**

  *Thelasttransactioncodeavailableforusercommands.

  */

  intLAST_CALL_TRANSACTION=0x00ffffff;

  /**

  *IBinderprotocoltransactioncode:pingBinder().

  */

  intPING_TRANSACTION=('_'<<24)|('P'<<16)|('N'<<8)|'G';

  /**

  *IBinderprotocoltransactioncode:dumpinternalstate.

  */

  intDUMP_TRANSACTION=('_'<<24)|('D'<<16)|('M'<<8)|'P';

关于“android中ibinder有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI