aidl 订阅
AIDL:Android Interface Definition Language,即Android接口定义语言。 展开全文
AIDL:Android Interface Definition Language,即Android接口定义语言。
信息
外文名
Android Interface Definition Language
简    称
aidl
中文名
Android接口定义语言
系    统
Android
aidl什么是AIDL
Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、BroadcastReceiver和ContentProvider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。
收起全文
精华内容
参与话题
问答
  • AIDL

    2016-11-13 15:34:43
    AIDL

    什么是 AIDL 以及如何使用

    1、AIDL是 Android interface definition Language 的英文缩写,意思 Android 接口定义语言。
    2、使用 AIDL可以帮助我们发布以及调用远程服务,实现跨进程通信。
    3、将服务的 AIDL放到对应的 src 目录,工程的 gen 目录会生成相应的接口类我们通过 bindService(Intent,ServiceConnect,int)方法绑定远程服务,在 bindService中 有 一 个 ServiceConnec 接 口 , 我 们 需 要 覆 写 该 类 的onServiceConnected(ComponentName,IBinder)方法,这个方法的第二个参数 IBinder 对象其实就是已经在 AIDL中定义的接口,因此我们可以将 IBinder 对象强制转换为 aidl 中的接口类。我们通过 IBinder 获取到的对象(也就是 AIDL文件生成的接口)其实是系统产生的代理对象,该代理对象既可以跟我们的进程通信, 又可以跟远程进程通信, 作为一个中间的角色实现了进程间通信。

    AIDL的创建方法

    AIDL语法很简单,可以用来声明一个带一个或多个方法的接口,也可以传递参数和返回值。 由于远程调用的需要, 这些参数和返回值并不是任何类型.下面是些AIDL支持的数据类型:
    1. 不需要import声明的简单Java编程语言类型(int,boolean等)
    2. String, CharSequence不需要特殊声明
    3. List, Map和Parcelables类型, 这些类型内所包含的数据成员也只能是简单数据类型, String等其他比支持的类型.

    AIDL 的全称是什么?如何工作?能处理哪些类型的数据?

    AIDL 全称 Android Interface Definition Language(AndRoid 接口描述语言) 是一种接口描述语言; 编译器可以通过 AIDL文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程跨界对象访问的目的。
    需要完成两件事情:
    1. 引入 AIDL 的相关类.;
    2. 调用 AIDL产生的 class.理论上, 参数可以传递基本数据类型和 String, 还有就是 Bundle 的派生类, 不过在 Eclipse 中,目前的 ADT 不支持 Bundle 做为参数。

    展开全文
  • aidl

    2016-11-08 13:40:56
    aidl

    aidl

    1、自定义类型需要序列化并新建aidl文件
    2、aidl文件在接口中声明方法
    3、服务端在Service中新建MyAIDL.Stub 并实现方法,然后在onBind中返回Stub对象
    4、客服端在ServiceConnection的成功回调中获取Stub对象,并调用相关方法。
    5、client每发出一个请求便生成一个新的自线程执行,而Messenger会在一个子线程中维护一个MessageQueue。

    展开全文
  • Aidl

    2019-01-07 13:42:00
    Aidl aidl是什么 aidl:android interface definition language android接口定义语言 aidl 有什么用 aidl专门用来解决进程间通信(IPC) aidl 怎么用 实现步骤 直接main目录下创建一个aidl文件 点击同步按钮 ...

    Aidl 

    • aidl是什么 aidl:android interface definition language android接口定义语言 
    • aidl 有什么用 aidl专门用来解决进程间通信(IPC) 
    • aidl 怎么用 
    • 实现步骤 
      • 直接main目录下创建一个aidl文件 点击同步按钮 让系统帮助我们生成一个iservice.java文件 
      • 在iservice.java文件里面系统会自动生成一个stub类 stub类默认继承binder并且实现了iservice接口 
      • 把我们定义的中间人对象继承Stub 
      • 直接把aidl文件拷贝到另外一个应用程序 点击同步按钮 直接也会生成iservice文件 
      • 获取中间人对象的方式不一样了
                iService = IService.Stub.asInterface(service);

     

    • aidl应用场景 
      • 新浪:微博 通过aidl接口对外暴漏数据 api开发接口. 天气应用:墨迹天气 
      • 支付宝暴漏支付接口 ,斗地主买豆. 
    • 具体使用可参考:https://www.cnblogs.com/huangjialin/p/7738104.html

    转载于:https://www.cnblogs.com/nangongyibin/p/10232782.html

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 12,914
精华内容 5,165
关键字:

aidl